2012-04-04 56 views
2

我想定義第一個元素是特定類型的,下面是一些元素的順序。像這樣:XML架構中的訂單定義

<node> 
<!-- always at first --> 
<node-data> 
... 
</node-data> 

<!-- other nodes in any order--> 
<node3></node3> 
<node1></node1> 
<node2></node2> 
</node> 

我不能使用<xsd:sequence>,因爲它會強制所有節點按順序排列。

感謝您的幫助。對不起,我的英語。

回答

2

一個很好的起點佈局看起來是這樣的:

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="node"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="node-data"/> 
     <xs:choice minOccurs="0" maxOccurs="unbounded">   
      <xs:element name="node3" /> 
      <xs:element name="node1" /> 
      <xs:element name="node2" /> 
     </xs:choice> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

你可以再細化的種類,添加更多節點的選擇下,等等。如果你想支持通配符,然後使用xs:any將需要。

+0

非常感謝,它幫助了我。奇怪的是,xsd的作者沒有給出更簡單的方法來完成這個基本功能。 – RoadBump 2012-04-04 23:11:39