XSD类生成器:跟踪元素顺序

时间:2013-09-02 15:54:19

标签: xsd xsd.exe xsd2code

我在XSD架构中获得了以下复杂类型

<xs:complexType name="structure" mixed="true">
  <xs:choice maxOccurs="unbounded">
    <xs:element type="b" name="b" />
    <xs:element type="a" name="a" />
  </xs:choice>
</xs:complexType>

允许我说明这样的XML定义:

<structure>
    Hello <b>World</b> 
    Hello 2 <b>World 2</b> 
    <a>Hello3</a> <b>World3</b>
</structure>

现在我尝试从我的架构中生成XSD类,我尝试了XSD.exe和XSD2Code。他们都生成类似

的东西
class structure {
    List<a> a;
    List<b> b;
    List<string> text;
}

我的问题是,我需要跟踪那些在XML结构内容中定义的元素的顺序。参考上面的例子,我想知道内部文本“Hello”就在第一次出现b元素之前出现。

因为这显然需要更专业的生成器策略,也许我期望太多,但是:是否有任何XSD生成器可以处理对象顺序或者我是否必须编写自己的类?

提前谢谢

1 个答案:

答案 0 :(得分:1)

我从未见过XSD代码绑定工具,它可以在这里做你需要的东西,当然不是在.NET平台上 - 你似乎暗示它是目标。这是无法在不丢失保真度的情况下往返XML的情况之一(反序列化,序列化然后比较,它失败)。只是为了完整性,/ order选项不适用于xsd.exe,只是因为就你定义的XSD而言,实际上没有订单。它也是XSD可以描述的限制,它不可避免地反映在工具实现中。