-1

我的 *.xsd 文件中有以下代码

  <xs:element name="node">
    <xs:complexType>
      <xs:sequence>
        ...
      </xs:sequence>
      <xs:attribute name="id" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="foo">
    <xs:complexType>
      <xs:sequence>
        <!-- this should be lists of bar and baz and NOT of node -->
        <xs:element ref="bar" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="baz" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="bar">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="node" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="baz">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="node" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

但是当我用 xsd2code 生成这段代码时,我得到一些奇怪的输出,其中 foo 中的 bar 和 baz 属性是节点列表。我需要 bar 和 baz 作为包含节点列表的类。我怎样才能做到这一点 ?

public partial class foo { // generated class

    private List<node> barField; // ?!

    private List<node> bazField; // ?!

    // ...
}
4

1 回答 1

0

为我的问题找到了解决方案。我只需要设置混合=“真”。这是代码:

  ...
  <xs:element name="bar">
    <xs:complexType mixed="1">
      <xs:sequence>
        <xs:element ref="node" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  ...


public partial class foo { // generated class

        private List<bar> barField;

        private List<baz> bazField;

        // ...
}
于 2016-09-28T11:22:02.963 回答