2011-03-23 29 views
0

不同片段我有此架構:
片段1:XML模式表示與參考

<fragments> 
<a> 
<item></item> 
<item></item> 
<item></item> 
</a> 
<a> 
<item></item> 
<item></item> 
<item></item> 
</a> 
<a> 
<item></item> 
<item></item> 
<item></item> 
</a> 
</fragments> 

fragment2:

<fragments> 
<b> 
<item></item> 
<item></item> 
<item></item> 
</b> 
<b> 
<item></item> 
<item></item> 
<item></item> 
</b> 
<b> 
<item></item> 
<item></item> 
<item></item> 
</b> 
</fragments> 

fragment3:

<fragments> 
<c> 
<item></item> 
<item></item> 
<item></item> 
</c> 
<c> 
<item></item> 
<item></item> 
<item></item> 
</c> 
<c> 
<item></item> 
<item></item> 
<item></item> 
</c> 
</fragments> 


    <xs:element name="Fragments"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element ref="A"/> 
      <xs:element ref="B"/> 
      <xs:element ref="C"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
<xs:element name="A"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element ref="item" minOccurs="0" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
<xs:element name="B"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element ref="item" minOccurs="0" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
<xs:element name="C"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element ref="item" minOccurs="0" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 
<xs:element name="item"> 
    <xs:complexType> 
     <xs:sequence> 
      <xs:element name="location"/> 
      <xs:element name="quantity"/> 
      <xs:element name="name"/> 
      <xs:element name="payment"/> 
      <xs:element name="description"/> 
      <xs:element name="shipping"/> 
      <xs:element name="incategory" maxOccurs="unbounded"/> 
      <xs:element name="mailbox"/> 
     </xs:sequence> 
     <xs:attribute name="id" type="xs:ID" use="required"/> 
     <xs:attribute name="featured" type="xs:anySimpleType"/> 
    </xs:complexType> 
</xs:element> 

從問題的答案how xsd can represent different xml file? 我可以說我可以代表通過使用架構中的ref,nt A和B和C在不同分區中但是我的問題架構使用Item與ref來減少重複的名稱定義。我該如何區分代表其他片段的ref和用於模式的ref,以避免重複 我的問候

+0

我還沒有看到任何答案..我希望很快看到:) – Dena 2011-03-24 06:49:30

回答

0

你的問題對我來說還不清楚,但我想你在問:「我怎麼能指出A, B和C可以是文檔根目錄,但item不能是文檔根目錄嗎?「

沒有辦法指出哪些全局元素可以成爲文檔根。但是,您可以將「內部」元素聲明用於模型組本地,並引用該模型組。

也許是這樣的:

<xs:element name="A"> 
    <xs:complexType> 
     <xs:sequence> 
      <group ref="itemgroup" minOccurs="0" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

<xs:group name="itemgroup"> 
    <xs:sequence> 
     <xs:element name="item> 
      ... 
     </xs:element> 
    </xs:sequence> 
</xs:group> 

順便說一句,如果我理解正確你的目標,你實際上並不需要Fragments元素。只有A,B和C的「頂級」聲明的存在才能使他們成爲文件室的候選人。

+0

Dena 2011-03-27 23:41:32

+0

我曾試着寫,我希望的模式來表示我的意思在這裏。什麼XML數據我用REF來減少項目的定義,但我可以用它來表示不同的數據模式像這個片段.. Dena 2011-03-27 23:44:23

+0

@Dena您試圖避免使用哪種XML? A,B和C在同一個片段中?或交錯? – xan 2011-03-28 11:43:06