2015-10-27 68 views
0

我試圖從Question.xsd生成問題和標記類。但我無法在問題中添加2個(或更多)標籤。如果我做<xs:element ref="schemas:Tag">它的作品(但將限於添加一個標籤)。如果我刪除<xs:element name="Tag">並將地名命名爲<xs:complexType >而不是標記節點,它也可以工作。但生成的ArrayOfTag包含字符串列表而不是標記列表。什麼是實現這一目標的正確方法?無法從xsd生成適當的類

<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> 

回答

1

這就足夠了你的需要。不要使Tag成爲一個元素,而要使它成爲複雜類型,以便不使用ref就可以在任何需要類型標記的元素的地方使用type。

<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> 
+0

是的,我能夠弄清楚這一點。感謝您發佈正確的答案。 – Forkmohit