これに似たxmlのスキーマを作成しようとしています
<?xml version="1.0" encoding="ISO-8859-1"?>
<store>
<book>title1</book>
<poster>some text</poster>
<poster>some text</poster>
<book>title1</book>
<poster>some text</poster>
</store>
「book」タグと「poster」タグを最小 0 回、最大回数無制限で表示できるようにする complexType がスキーマにあるかどうかを知りたいです。本、ポスター、本のポスター、ポスターのようなカジュアルな順序で表示できるようにする必要があります。
私は単にシーケンスを入れて、このようなスキーマを書くことはできませんでしたが
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="store" type="TStore"/>
<xs:complexType name="TStore">
<xs:element name="book" type="xs:string" maxOccurs="unbounded"/>
<xs:element name="poster" type="xs:string" maxOccurs="unbounded"/>
</xs:complexType>
</xs:schema>
しかし、これは有効なスキーマではありません。"xs:all" は、本とポスターのタグがカジュアルな順序で表示される場合に適していますが、1 回だけです。どうすれば修正できますか?編集: maxOccurs="unbounded" を指定した xs:choice はうまく機能します。
また、このような単純な繰り返しにシーケンスが必要な理由もわかりません。いくつかのチュートリアルを参照しましたが、この単純なケースのリファレンスが見つかりません。
<?xml version="1.0" encoding="ISO-8859-1"?>
<tags>
<tag>text1</tag>
<tag>text2</tag>
<tag>text3</tag>
</tags>
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="tags" type="complexType">
<xs:sequence>
<xs:element name="tag" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:element>
</xs:schema>