- ベストアンサー
XML Schema の定義方法について
- XML Schema の定義では、子要素の出現順序が不定の場合でも対応する方法があります。
- 具体的には、sequence、choice、all のいずれかを使用することで、順不同の子要素を定義することができます。
- xsd:? の部分には、sequence、choice、all のいずれかを使用すればよいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>解決方法についてご教示いただけないでしょうか。 私が質問を読み足りなかったようで申し訳ありません。 ><OpenSearchDescription> の各子要素について、出現回数の定義があるのですが、各要素の出現は順不同なのです。 出現回数だけ決まってて順番はめちゃくちゃでいいってことですか? 例えば <OpenSearchDescription> <Description /> <ShortName /> </OpenSearchDescription> <OpenSearchDescription> <ShortName /> <Description /> <Query /> </OpenSearchDescription> <OpenSearchDescription> <Image /> <Description /> <Query /> <Image /> <Image /> <ShortName /> <Query /> </OpenSearchDescription> の、どれもOKとしたいと。 私がわからないだけかもしれないですが xml schemaでは表現できない気がします。 出現回数は別のチェック方法を考えた方がいいかもしれません。
その他の回答 (1)
- wormhole
- ベストアンサー率28% (1626/5665)
choice にも属性に minOccurs, maxOccurs がありますよ。
補足
ご回答頂きましてありがとうございます。 例えば <xsd:choice minOccurs="3" maxOccurs="unbounded"> と記述した場合、対象の XML 文書内に <ShortName/><ShortName/> との記述があってもスキーマをすり抜けてしまいます。 解決方法についてご教示いただけないでしょうか。
お礼
ご回答頂きましてありがとうございます。 > 出現回数だけ決まってて順番はめちゃくちゃでいいってことですか? ご指摘の通りです。仕様に出現回数についての規定はあるのですが、順番についての規定はなくどう表してよいか、迷っていたところです。 やはり XML Schema では難しいですか。他のスキーマ言語では表現可能だったりするのでしょうか。