2012-06-28 126 views
2

我是xsd規範領域的新人,我需要從stackoverflow社區獲得幫助。我想要做的是定義一個類別層次結構。如何在XSD規範中設置層次結構?

實施例:

  1. A類
    1.1。 B類
    1.1.1 C類

我怎麼能在一個XSD規範定義呢? 也許有一些最佳實踐解決方案。

Chris

我試圖用這種方式指定它。但我不確定這是否可行。

<xs:element name="category"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="maincategory"> 
     <xs:complexType> 
      <xs:sequence> 
      <xs:element name="subcategory"> 
       <xs:complexType> 
       <xs:sequence> 
        <xs:element ref="subcategory"/> 
       </xs:sequence> 
       </xs:complexType> 
      </xs:element> 
      </xs:sequence> 
     </xs:complexType> 
     </xs:element> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 

<xs:element name="maincategory" type="xs:string"/> 
<xs:element name="subcategory" type="xs:string"/> 

克里斯

+0

我已經在問題 – user1489543

+0

中添加了我已經嘗試過的內容它是否按原樣工作?你需要幫助修復它,還是你想讓它更清潔? – robert

+0

我想讓它更乾淨。它的工作原理,但我不滿意該解決方案。 – user1489543

回答

0

您有一個名爲 「子類別」 兩件事情。我已將元素重命名爲「元素」。

這是我會做:

<xs:complexType name="category_t"> 
    <xs:sequence> 
    <xs:element name="maincategory" type="main_category_t" /> 
    </xs:sequence> 
</xs:complexType> 

<xs:complexType name="main_category_t"> 
    <xs:sequence> 
    <xs:element type="subcategory_t" /> 
    </xs:sequence> 
</xs:complexType> 

<xs:complexType name="subcategory_t"> 
    <xs:sequence> 
    <xs:element name="element" type="xs:string" /> 
    </xs:sequence> 
</xs:complexType> 

<xs:element name="category" type="category_t" /> 

我想你可能並不需要使用ref屬性。這有一個非常具體的用例,並且type屬性看起來更接近你想要的。

+0

你好羅伯特!抱歉回覆晚了。但這就是我正在尋找的東西。感謝您的幫助。 – user1489543