无法从 xsd 生成正确的 类

Unable to generate proper classes from xsd

我正在尝试从 Question.xsd 生成问题和标签 类。但我无法在问题中添加 2 个(或更多)标签。如果我这样做 <xs:element ref="schemas:Tag"> 它会起作用(但会限制为添加一个标签)。如果我删除 <xs:element name="Tag"> 并将名称放在 <xs:complexType > 而不是标签 node.But 中,生成的 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 设为一个元素,而是将其设为 complextype,这样您就可以在任何需要 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>