Я так понимаю, вы имеете в виду, где каждое свойство из XML является своим собственным элементом в массиве?
Это не похоже на очень хорошую структуру данных, особенно потому, что определения схемы XML позволяют элементам поступать в любом порядке; Ваши ожидаемые индексы могут быть испорчены. Сильно типизированный объект кажется более подходящим и хорошо поддерживается в .Net. По крайней мере, вы должны использовать словарь, чтобы ключи были сохранены.
В этом случае количество элементов в каждом дереве очень мало, и вы можете получить множество из них, поэтому словарь, вероятно, не лучший выбор. Вы могли бы делать объекты, но это было бы много лишнего кода просто для его настройки, и у меня сложилось впечатление, что xml может исходить из разных источников и отличаться в зависимости от источника (или что-то , где структура может регулярно меняться, отсюда и первоначальное желание свободно проверенного подтверждения).
В конечном итоге ваш пункт назначения - база данных, поэтому я думаю, что в этом случае я покажу вам пример использования набора данных:
string xml = GetXmlString(); // <Demo><JobOperatives><Operative><Clock>aaaa</Clock>...
StringReader sr = new StringReader(xml);
DataSet ds = new DataSet();
ds.ReadXml(sr);
Поэкспериментируйте с этим: посмотрите коллекцию .Tables
набора данных, свойства .TableName
каждой таблицы, коллекцию .Columns
и коллекцию .Rows
, а также свойства .ColumnName
и .DataType
каждого столбца.