次のような XML の非常に単純な XML スキーマを作成しようとしています。
<messages>
<item>
<important_tag></important_tag>
</item>
<item>
<important_tag></important_tag>
<tag2></tag2>
</item>
<item>
<tag2></tag2>
<tag3></tag3>
</item>
</messages>
アイデアは<important_tag>
、特定の定義を持ち、下に表示される場合と表示されない場合があるということ<item>
です。複数回出現することもあります。また、その前後に他のタグがあるかもしれ<important_tag>
ませんが、事前に名前を付けることができません.
について具体的に定義したいと思い<important_tag>
ます。たとえば、含まれている必要がある属性を定義します。つまり、重要なタグが存在する場合、それは私の定義に準拠している必要があります。その他のタグは、定義に準拠する必要はありません。
次のスキームを使用してみました。
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="messages">
<xs:complexType>
<xs:sequence>
<xs:element ref="item" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="item">
<xs:complexType>
<xs:sequence>
<xs:element ref="important_tag" minOccurs="0"/>
<xs:any minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="important_tag">
<xs:complexType>
<xs:simpleContent>
... specific definitions for important_tag ...
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:schema>
これにより、スキーマがあいまいであるというエラーが発生します。
正確なエラー メッセージは次のとおりです。
cos-nonambig: '<xs:element ref="important_tag">' makes the content model non-deterministic against '<xs:any>'. Possible causes: name equality, overlapping occurrence or substitution groups.
Altova の XML Spy を使用しています。
これを解決するにはどうすればよいですか?
ありがとう、ダナ