Десериализация 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>

Оцени полезность:

6   голосов , оценка 3.5 из 5
Похожие ответы