2012-11-17 177 views
0

我創建了一個XML架構如下圖所示:XML schema聲明類型

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> 
<xs:element name="fruitName" type="xs:string"/> 
<xs:element name="fruitCategory" type="xs:string"/> 
<xs:element name="fruitColor" type="xs:string"/> 
<xs:element name="farm"> 
    <xs:complexType> 
     <xs:sequence maxOccurs="unbounded"> 
      <xs:element ref="fruitName"/> 
      <xs:element ref="fruitCategory"/> 
      <xs:element ref="fruitColor"/> 
     </xs:sequence> 
     <xs:attribute name="farmLocation" type="xs:string" use="required"/> 
     </xs:attribute> 
     <xs:attribute name="farmAge" type="xs:Integer" use="required"/> 
    </xs:complexType> 
</xs:element> 

從我的理解,我認爲這是使用完全全局類型聲明XML模式作爲fruitName的元素,fruitCategory而fruitColor是全局聲明的,並且在複雜類型中使用ref =「」來調用。請告訴我,這個模式是使用全局聲明類型完全創建的,還是我誤解了全局聲明類型是什麼。如果我錯了,請告訴我如何我應該使用完全全局類型聲明正確編碼它。

回答

0

的模式似乎除了額外的結束屬性標記罰款:

</xs:attribute> 
0

我不認識的術語「完全全局類型聲明XML模式」,但我會想到它的意思架構中所有的類型聲明都是全局的。這顯然不適用於您的模式,因爲所聲明的唯一複雜類型是嵌入在元素聲明中的匿名類型。但是,這是一個有效的模式。