чтение файла xml и переупорядочение элементов на основе схемы xsd

1

У меня есть файл XML, который создается моим приложением. Проблема в том, что элементы в XML файле не совпадают с файлом XSD (требование для того, чтобы файл обрабатывался поставщиком).

Мой XSD-фрагмент файла:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="Vehicle">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Ford" minOccurs="0" maxOccurs="1">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="SectionA" minOccurs="0" maxOccurs="1">
                                <xs:complexType>
                                    <xs:sequence>
                                        <xs:element name="AX010_1" type="Dollar" minOccurs="0" maxOccurs="1"/>
                                        <xs:element name="AX040_1" type="Dollar" minOccurs="0" maxOccurs="1"/>
                                        <xs:element name="AX050_1" type="Dollar" minOccurs="0" maxOccurs="1"/>
                                        <xs:element name="AX190_1" type="Dollar" minOccurs="0" maxOccurs="1"/>
                                        <xs:element name="A080_1" type="Dollar" minOccurs="0" maxOccurs="1"/>
                                        <xs:element name="AX230F_1" type="Dollar" minOccurs="0" maxOccurs="1"/>
                                        <xs:element name="AX230G_1" type="Dollar" minOccurs="0" maxOccurs="1"/>
                                        <xs:element name="AX230GNOTE_1" type="ExplanatoryText" minOccurs="0" maxOccurs="1"/>
                                        <xs:element name="AX230H_1" type="Dollar" minOccurs="0" maxOccurs="1"/>
                                        <xs:element name="AX230HNOTE_1" type="ExplanatoryText" minOccurs="0" maxOccurs="1"/>
                                        <xs:element name="AX230J_1" type="ExplanatoryText" minOccurs="0" maxOccurs="1"/>
                                    </xs:sequence>
                                </xs:complexType>
                            </xs:element>  

мой XML-фрагмент файла:

<SectionA>
   <AX010_1>121</AX010_1>
   <AX050_1>334122</AX050_1>
   <AX090_1>113</AX090_1>
   <AX040_1>334477</AX040_1>
   <AX230H_1>301</AX230H_1>
   <AX230F_1>3651122</AX230F_1>
</SectionA> 

Как я могу прочитать XML файл и перенастроить элементы, чтобы они были в той же последовательности, что и файл XSD?

Я просмотрел похожие сообщения на SO, но мне не удалось решить мою проблему (предпочитайте использовать LINQToXML).

Теги:
xsd

1 ответ

0

Если вы сериализуете класс aС# и из него, установите свойство "Заказ" в XmlElementAttribute. xsd.exe будет генерировать эти атрибуты для вас с параметром /order.

[System.Xml.Serialization.XmlElementAttribute(Order=0)]
public string AX010_1 { get; set; }
[System.Xml.Serialization.XmlElementAttribute(Order=1)]
public string AX040_1 { get; set; }

Используя System.Xml.Serialization.XmlSerializer мы позаботимся о заказе ваших узлов при его сериализации.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню