2014-01-09 68 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

相关问题