2016-03-11 23 views
1

我找不到如何爲我的元素shop-offer添加必需的屬性。我試圖把如何定義根元素的必需屬性?

<xs:attribute name="id" type="xs:integer" use="required"/> 

架構中的根以及在元件的<xs:complexType>,但它不工作。我總是收到這裏不允許的錯誤。

那麼我該怎麼做呢?

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

    <xs:element name="shop-offer"> 

    <xs:complexType mixed="true"> 

     <xs:sequence> 
     <xs:choice maxOccurs="unbounded"> 
      <xs:element name="tool"> 
      <xs:complexType> 
       <xs:attribute name="id" type="xs:integer" use="required"/>  
      </xs:complexType>  
      </xs:element>  
      <xs:element name="widget"> 
      <xs:complexType> 
       <xs:attribute name="id" type="xs:integer" use="required"/>  
      </xs:complexType> 
      </xs:element> 
     </xs:choice> 
     </xs:sequence> 
    </xs:complexType> 

    </xs:element> 
</xs:schema> 

回答

0

xs:attribute聲明都很好,但他們的展示位置需要的id屬性上toolwidget元素的存在。

如果你也想id要在shop-offer根元素需要,你必須把另一隻內xs:complexType(後xs:sequence)爲shop-offer

這XSD,

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

    <xs:element name="shop-offer"> 
    <xs:complexType mixed="true"> 
     <xs:sequence> 
     <xs:choice maxOccurs="unbounded"> 
      <xs:element name="tool"> 
      <xs:complexType> 
       <xs:attribute name="id" type="xs:integer" use="required"/> 
      </xs:complexType>       
      </xs:element>     
      <xs:element name="widget"> 
      <xs:complexType> 
       <xs:attribute name="id" type="xs:integer" use="required"/> 
      </xs:complexType> 
      </xs:element> 
     </xs:choice> 
     </xs:sequence> 

     <!-- This @id is for the shop-offer root element --> 
     <xs:attribute name="id" type="xs:integer" use="required"/> 

    </xs:complexType> 
    </xs:element> 
</xs:schema> 

將成功驗證此XML,

<shop-offer id="1"> 
    <tool id="2"/> 
</shop-offer> 

根據要求。


注:你確定要mixed="true",這將使這個XML是有效的,

<shop-offer id="1"> 
    Text here. 
    <tool id="2"/> 
    And more text here. 
</shop-offer> 

也許不理想。

+0

+ facepalm + ..這是正確的。謝謝^^ – displayname

相關問題