XSD生成器对选项使用错误的顺序顺序

时间:2015-02-24 20:23:42

标签: xml xsd code-generation xsd.exe

使用XSD.exe / c / l:CS / o:temp / order时,它不会为Items[]数组中的选项生成正确的顺序。

XSD:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xsd:group name="Group">
        <xsd:sequence>
            <xsd:element name="BItem2"/>
            <xsd:element name="AItem1"/>
        </xsd:sequence>
    </xsd:group>

    <xsd:element name="MyElement" type="MyClass"/>
    <xsd:complexType name="MyClass">
        <xsd:sequence>
            <xsd:choice>
                <xsd:element name="Whatever"/>
                <xsd:group ref="Group"/>
            </xsd:choice>
        </xsd:sequence>
    </xsd:complexType>
</xsd:schema>

将输出:

    [System.Xml.Serialization.XmlElementAttribute("AItem1", typeof(object), Order=0)]
    [System.Xml.Serialization.XmlElementAttribute("BItem2", typeof(object), Order=0)]
    [System.Xml.Serialization.XmlElementAttribute("Whatever", typeof(object), Order=0)]
    [System.Xml.Serialization.XmlChoiceIdentifierAttribute("ItemsElementName")]
    public object[] Items {
       // ..
    }

在这种情况下,XSD为所有XmlElementAttribute生成Order = 0,并按字母顺序排序。 BItem2应该在AItem1之前。

有没有办法让这个工作正常?我无法更改XSD,因为它来自第三方。

0 个答案:

没有答案