• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:子要素が順不同の場合のXML Schema の定義)

XML Schema の定義方法について

このQ&Aのポイント
  • XML Schema の定義では、子要素の出現順序が不定の場合でも対応する方法があります。
  • 具体的には、sequence、choice、all のいずれかを使用することで、順不同の子要素を定義することができます。
  • xsd:? の部分には、sequence、choice、all のいずれかを使用すればよいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

>解決方法についてご教示いただけないでしょうか。 私が質問を読み足りなかったようで申し訳ありません。 ><OpenSearchDescription> の各子要素について、出現回数の定義があるのですが、各要素の出現は順不同なのです。 出現回数だけ決まってて順番はめちゃくちゃでいいってことですか? 例えば <OpenSearchDescription> <Description /> <ShortName /> </OpenSearchDescription> <OpenSearchDescription> <ShortName /> <Description /> <Query /> </OpenSearchDescription> <OpenSearchDescription> <Image /> <Description /> <Query /> <Image /> <Image /> <ShortName /> <Query /> </OpenSearchDescription> の、どれもOKとしたいと。 私がわからないだけかもしれないですが xml schemaでは表現できない気がします。 出現回数は別のチェック方法を考えた方がいいかもしれません。

qq542vev
質問者

お礼

ご回答頂きましてありがとうございます。 > 出現回数だけ決まってて順番はめちゃくちゃでいいってことですか? ご指摘の通りです。仕様に出現回数についての規定はあるのですが、順番についての規定はなくどう表してよいか、迷っていたところです。 やはり XML Schema では難しいですか。他のスキーマ言語では表現可能だったりするのでしょうか。

その他の回答 (1)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

choice にも属性に minOccurs, maxOccurs がありますよ。

qq542vev
質問者

補足

ご回答頂きましてありがとうございます。 例えば <xsd:choice minOccurs="3" maxOccurs="unbounded"> と記述した場合、対象の XML 文書内に <ShortName/><ShortName/> との記述があってもスキーマをすり抜けてしまいます。 解決方法についてご教示いただけないでしょうか。

関連するQ&A