2016-03-18 68 views
1

我想這樣定義的元素:XSD:與屬性和其他子元素定義複雜的元素

<A id='1'> 
    <name>jack</name> 
</A> 

有了這個下面我可以定義元素A的屬性id

<xs:complexType name="A"> 
    <xs:simpleContent> 
     <xs:extension base="xs:string"> 
     <xs:attribute type="xs:int" name="id"/> 
     </xs:extension> 
    </xs:simpleContent> 
    </xs:complexType> 

其實它不正確,上面的XSD定義了一個元素<A id="1">hi</A>。我不知道如何丟棄<xs:extension>元素的基本屬性。

並與XSD下面我可以定義裏面元素<name>

<xs:element name = "A"> 
    <xs:complexType> 
     <xs:sequence> 

      <xs:element name = "name" type="xs:string"/> 

     </xs:sequence> 
    </xs:complexType> 
</xs:element> 

我能合得這種兩人一起這樣的下面?我無法獲得正確的語法。

<xs:element name = "A"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name = "name" type="xs:string"/>      
      </xs:sequence> 
     </xs:complexType> 
     <xs:simpleContent> 
      <xs:extension> 
      <xs:attribute type="xs:int" name="id"/> 
      </xs:extension> 
     </xs:simpleContent> 
    </xs:element> 

回答

2

在XML或聲明的約束沒有證據表明xs:extension這裏需要。

下面這個簡單的XSD,

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="A"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="name" type="xs:string"/> 
     </xs:sequence> 
     <xs:attribute name="id" type="xs:int"/> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

將驗證您的XML,

<A id='1'> 
    <name>jack</name> 
</A> 

的要求。

相關問題