2011-11-15 9 views
1

次のXMLスニペットのXSDを作成しようとしています。同じ名前で異なる属性値を持つ繰り返し要素のXSD

<loop id="1000" name="loop 1000" /> 
<loop id="1000" name="loop 1000" /> 
<loop id="2000" name="loop 2000" /> 
<loop id="2000" name="loop 2000" /> 
<loop id="2000" name="loop 2000" /> 

私は、次のXSD

<xs:element name="loop" maxOccurs="3"> 
    <xs:simpleType> 
    <xs:attribute use="required" fixed="1000" type="xs:string" name="id" /> 
    </xs:simpleType> 
</xs:element> 
<xs:element name="loop" maxOccurs="3"> 
    <xs:simpleType> 
    <xs:attribute use="required" fixed="2000" type="xs:string" name="id" /> 
    </xs:simpleType> 
</xs:element> 

を書いたしかし、これはXMLの検証に失敗しているようです。

XMLは自分のコントロール下にありません。これをどうすれば処理できますか?

EDIT:

私は、XMLパーサ+ジェネレータを書いて、今、私はこのために簡単にXSDを書くことができます

<_1000>...</_1000> 
<_1000>...</_1000> 
<_2000>...</_2000> 
<_2000>...</_2000> 
<_2000>...</_2000> 

のようなものを受け取ったXMLを変更しました。

+0

あなたはユニークな属性値について言及しましたが、繰り返し表示されています。 – Swanand

+0

ユニークなことは、異なる属性値を区別することを意味します。だから1000と2000は2つの異なる値です –

答えて

1
<xs:element name="loop" minOccurs="3" maxOccurs="3"> 
      <xs:simpleType> 
       <xs:attribute use="required" fixed="1000" type="xs:string" name="id" /> 
       <xs:attribute use="required" fixed="loop 1000" type="xs:string" name="name" /> 
      </xs:simpleType> 
     </xs:element> 
     <xs:element name="loop" minOccurs="3" maxOccurs="3"> 
      <xs:simpleType> 
       <xs:attribute use="required" fixed="2000" type="xs:string" name="id" /> 
       <xs:attribute use="required" fixed="loop 2000" type="xs:string" name="name" /> 
      </xs:simpleType> 
     </xs:element> 
+0

こんにちはSwati、投稿されたXMLは、完全なXMLの単なるスニペットです。達成する必要があるのは、私が試したXSDです。 id 1000のループは3回、id 2000のループは3回繰り返すことができます。私はあなたのxsdがそれを正確に検証しないと感じます。 –

+0

次に、 ''のコードが役に立つはずです。やってみて。 –

+0

それを更新します。 –

関連する問題