使用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,因为它来自第三方。