繁体   English   中英

无法从xsd生成适当的类

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM