2014-01-09 3 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, если я понимаю ваше предложение, конечно, анонимные «complexTypes», используемые здесь для определения двух разных элементов «Книги», могут быть определены глобально и заданы (отличными) именами, если мы хотим, чтобы они были доступны для определений другие элементы. – kjhughes

Смежные вопросы