xsd2code 元素被列表替换
xsd2code element gets replaced by list
我的 *.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; // ?!
// ...
}
找到了解决我的问题的方法。我只需要设置 mixed="true"。这是代码:
...
<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;
// ...
}
我的 *.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; // ?!
// ...
}
找到了解决我的问题的方法。我只需要设置 mixed="true"。这是代码:
...
<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;
// ...
}