Десериализация XML файла с многократной вложенностью - C#
Формулировка задачи:
Здравствуйте. Возникла следующая проблема.
Есть XML файл с ограниченным количеством типовых блоков.
Например в файле ниже может добавиться ещё один xmlarray блок <Enum> <value> </Enum> или наоборот удален весь блок <EnumList> </EnumList>
Соответственно его нужно десериализовать. Я долго гуглил инфу и не нашёл практически ничего стоящего. Нету нормальных описаний технологии сериализации/десериализации, а есть куча примеров часто противоречащих друг другу и к тому же намного легче в исполнении. Все те примеры не имели тройной вложенности и не сработали на моём примере.
Может быть у кого то есть нормальная информация по сериализации или примеры выполнения подобных задач?
Буду благодарен.
<ARINC825Profile version="1.0" id="987.654" name="Profile"> <EnumList> <Enum name="Enum_Operation_State"> <Value val="0" label="Normal"></Value> <Value val="1" label="Warning: Ready To Disconnect for 12 sec" /> <Value val="2" label="Warning: Ready To Disconnect for 60 sec" /> <Value val="4" label="Alarm: Disconnected Immediately" /> <Value val="5" label="Alarm: Disconnected for 12 sec Timeout" /> <Value val="6" label="Alarm: Disconnected for 60 sec Timeout" /> </Enum> <Enum name="Enum_Load_Current_State"> <Value val="0" label="Normal" /> <Value val="1" label="Overcurrent: less 25%" /> <Value val="3" label="Overcurrent: over 25%" /> <Value val="7" label="Fault: Shorted" /> </Enum> </EnumList> <ParameterList> <Sfid comment="Main Parameters" id="13" name="Electrical Power"> <Parameter nme="Operation State" lcc="NOC" rsd="0" lcl="0" pvt="0" doc="640" rci="1" spp="0.2"></Parameter> <Parameter nme="Cooling State" lcc="NOC"></Parameter> <Parameter nme="Load Current State" lcc="NOC" rsd="0" lcl="0" pvt="0" ></Parameter> </Sfid> <Sfid comment="Main Parameters" id="13" name="Electrical Power"> <Parameter nme="Operation State" lcc="NOC"></Parameter> </Sfid> </ParameterList> </ARINC825Profile>
Решение задачи: «Десериализация XML файла с многократной вложенностью»
textual
Листинг программы
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="Value"> <xs:complexType> <xs:attribute name="val" use="required" type="xs:string" /> </xs:complexType> </xs:element> <xs:element name="EnumList"> <xs:complexType> <xs:sequence> <xs:element ref="Enum"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Enum"> <xs:complexType> <xs:sequence> <xs:element ref="Value"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ARINC825Profile"> <xs:complexType> <xs:sequence> <xs:element ref="EnumList"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>