2014-01-09 86 views

回答

0

你不能有兩個全球xsd:complexType命名相同。您不能有兩個全球xsd:complexType元素命名相同。

但是,您可以區分使用不同的名稱空間。

您還可以將非全局的xsd:complexType元素命名爲相同。在以下示例中參見Book

<?xml version="1.0"?> 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsd:element name="BookStore"> 
    <xsd:complexType> 
     <xsd:sequence> 
     <xsd:element name="Book" maxOccurs="unbounded"> 
      <xsd:complexType> 
      <xsd:sequence> 
       <xsd:element name="Author"/> 
       <xsd:element name="Title"/> 
      </xsd:sequence> 
      </xsd:complexType> 
     </xsd:element> 
     </xsd:sequence> 
    </xsd:complexType> 
    </xsd:element> 
    <xsd:element name="Shelf"> 
    <xsd:complexType> 
     <xsd:sequence> 
     <xsd:element name="Book" maxOccurs="unbounded"> 
      <xsd:complexType> 
      <xsd:sequence> 
       <xsd:element name="Author"/> 
       <xsd:element name="ISBN"/> 
      </xsd:sequence> 
      </xsd:complexType> 
     </xsd:element> 
     </xsd:sequence> 
    </xsd:complexType> 
    </xsd:element> 
</xsd:schema> 
+0

很好的例子來解釋答案。爲了增加你的答案,我們應該單獨編寫複雜類型,並在定義一個元素時使用這些類型的引用。因爲複雜的類型可以在需要時重複使用。 – Joshi

+0

@Joshi,如果我理解你的建議,當然,在這裏用來定義兩個不同的'Book'元素的匿名'complexTypes'可以在全局定義,並給定(不同的)名稱,如果我們希望它們可用於其他元素。 – kjhughes

相關問題