2012-04-04 5 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

関連する問題