[英]Unable to generate proper classes from xsd
我正在尝试从Question.xsd生成Question和Tag类。 但我无法在问题中添加2个(或更多)标签。 如果执行<xs:element ref="schemas:Tag">
它可以工作(但仅限于添加一个标签)。 如果我删除<xs:element name="Tag">
并将名称放在<xs:complexType >
而不是Tag节点中,它也可以工作,但是生成的ArrayOfTag包含字符串列表而不是标签列表。 实现此目的的正确方法是什么?
<xs:element name="Question">
<xs:complexType>
<xs:all>
**<xs:element name ="tag1" type="schemas:Tag"/>
<xs:element name ="tag2" type="schemas:Tag"/>**
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="ArrayOfTag">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="schemas:Tag"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Tag">
<xs:complexType >
<xs:all>
<xs:element name="tagCode" type="xs:string" />
<xs:element name="tagName" type="xs:string" />
</xs:all>
</xs:complexType>
</xs:element>
这将满足您的需求。 不要将Tag设置为元素,而应将其设置为复杂类型,以便可以在需要标签类型的元素的任何地方使用type而不是使用ref。
<xs:element name="Question">
<xs:complexType>
<xs:all>
<xs:element name="tag1" type="Tag" />
<xs:element name="tag2" type="Tag"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="ArrayOfTag">
<xs:complexType>
<xs:sequence>
<xs:element name="ArrayofTag" maxOccurs="unbounded" type="Tag"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="Tag">
<xs:all>
<xs:element name="tagCode" type="xs:string" />
<xs:element name="tagName" type="xs:string" />
</xs:all>
</xs:complexType>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.