2012-04-04 13 views
0

に私のようなXMLS受け入れるXMLスキーマ記述する必要が配列の一部を可能にするXMLスキーマ書き込む方法:だから、一般的にはない場所

<?xml version="1.0" encoding="utf-8"?> 
<Data> 
    <NodeA>something</NodeA> 
    <NodeB>something</NodeB> 
    <NodeC>something</NodeC> 
    <NodeD>something</NodeD> 
</Data> 

<?xml version="1.0" encoding="utf-8"?> 
<Data> 
    <NodeA>something</NodeA> 
    <NodeC>something</NodeC> 
    <NodeB>something</NodeB> 
    <NodeD>something</NodeD> 
</Data> 

を、私は、リスト内の要素をしたいですリストの一部が任意の順序で出現することができることを除いて、配列されていてもよい。

しかし、私はxsdファイル用にいくつかのアタックを試みましたが、どれも動作しません。

<xs:complexType name="Data"> 
    <xs:sequence> 
    <xs:element name="NodeA"/> 
    <xs:all xmlns:xs=""> 
     <xs:element name="NodeB"/> 
     <xs:element name="NodeC"/> 
    </xs:all> 
    <xs:element name="NodeD"/> 
    </xs:sequence> 
</xs:complexType> 

グループにNodeBとNodeCを配置することもできません。

私はこれらのエラーメッセージを探知しましたが、何も役に立たなかった...なぜこれらのxsdsが失敗し、どのように書き込むべきですか?ありがとう!

+0

同じ問題が原因で発生する問題の異なるいくつかのスレッドを見つけます。 XMLスキーマの欠点のようです。 http://stackoverflow.com/questions/839079/middle-way-between-xsd-all-and-xsd-sequence http://stackoverflow.com/questions/2408095/xml -schema-put-both-sequence-and-all-under-one-complextype-node http://stackoverflow.com/questions/7420512/how-to-mix-xsdsequence-with-xsdall – Jimbo

答えて

1

これはいかがですか?

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xs:element name="Root"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element name="NodeA"/> 
       <xs:choice> 
        <xs:sequence> 
         <xs:element name="NodeB"/> 
         <xs:element name="NodeC"/> 
        </xs:sequence> 
        <xs:sequence> 
         <xs:element name="NodeC"/> 
         <xs:element name="NodeB"/> 
        </xs:sequence> 
       </xs:choice> 
       <xs:element name="NodeD"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
</xs:schema> 
+0

ありがとう!しかし、私も前にこれを試してみましたが、エディタもエラーをスローします...そして、この問題は、選択肢の数が組み合わせのスピードで増えてしまうので、ノードが増えると問題になるでしょう – Jimbo

+0

xs:choice正しい方法です。

+0

私が使用した完全なXSDスキーマを含むように私の答えを編集しました。 –

関連する問題