2014-10-08 50 views
2

我有這樣的XML架構:任何添加到複雜類型

<xs:element name="lineinfo"> 
     <xs:complexType> 
     <xs:all> 
      <xs:element name="done" type="xs:unsignedInt" /> 
     </xs:all> 
     <xs:attribute name="id" type="xs:long" /> 
     <xs:anyAttribute processContents="skip" /> 
     </xs:complexType> 
    </xs:element> 

,但我想允許任何其他額外的元素在lineinfo標籤:

<lineinfo state="assigned" id="175"> 
     <done>4</done> 
     <todo>6</todo> 
    </lineinfo> 

我嘗試添加<xs:any /><xs:all>內,但它似乎不被允許。

回答

1

<xs:any>的父標籤僅爲choicesequencew3cschools #el_any

要使用<xs:any>請將<xs:sequence>代替<xs:all>w3cschools #any

否則你可以使用的xs:anyType的

的xs:anyType的是一種類型的,像XS:整數(雖然XS:anyType的是,它可以作爲一個簡單的或複雜類型行動特別 ,和它將 對它驗證的樹進行基本上的限制 - 將它看作是Schema語言的java.lang.Object模擬的鬆散的 )。

的樣本用法是:

<xsd:element name="value" type="xs:anyType"/> 

無論如何,如果你想使用下面從w3cschools #anyattribute

SCHEMA

<xs:element name="person"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="firstname" type="xs:string"/> 
     <xs:element name="lastname" type="xs:string"/> 
    </xs:sequence> 
    <xs:anyAttribute/> 
    </xs:complexType> 
</xs:element> 

<xs:attribute name="gender"> 
    <xs:simpleType> 
    <xs:restriction base="xs:string"> 
     <xs:pattern value="male|female"/> 
    </xs:restriction> 
    </xs:simpleType> 
</xs:attribute> 

XML

採取的一個例子0
<person gender="female"> 
    <firstname>Hege</firstname> 
    <lastname>Refsnes</lastname> 
</person> 
+0

我得到的,但'sequence'將描述元素的順序。我想要訂單是免費的。 – 2014-10-08 10:07:45

+0

是的,你是對的。您是否嘗試過爲您的解決方案使用xs:anyType,以便移除xs:sequence。 – Xstian 2014-10-08 10:10:13

+0

我仍然需要標籤的名稱。我只是希望模式驗證'done'是在'lineinfo'裏面,並忽略其中的任何其他標籤。 – 2014-10-08 10:12:39

2

我無法找到一個方法來做到我想要的東西,所以我最終將所有「不必要的」標籤在我的名單,與minOccurs設置爲0:

<xs:element name="lineinfo"> 
     <xs:complexType> 
     <xs:all> 
      <xs:element name="done" type="xs:unsignedInt" /> 
      <xs:element name="todo" minOccurs="0" /> 
      <xs:element name="error" minOccurs="0" /> 
     </xs:all> 
     <xs:attribute name="id" type="xs:long" /> 
     <xs:anyAttribute processContents="skip" /> 
     </xs:complexType> 
    </xs:element> 
相關問題