- - PR -
complexTypeのチェックについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-12-05 21:04
以下のチェックをXml Schemaにて
記述したいのですが、行き詰っております。 識者の方々に何かヒントを頂ければと思い、 投稿致しました。 【実現したい内容】 ・AAAタグとBBBタグは同一階層に存在する ・AAAタグとBBBタグの記述順は不定である ・AAAタグとBBBタグはそれぞれ最低1回は記述される必要がある ・AAAタグとBBBタグは複数回の記述を許容する 【現在までに試行した内容】 案1:(maxOccurs部分がSchemaの仕様に違反⇒NG) <xsd:complexType> <xsd:all> <xsd:element name="AAA" minOccurs="1" maxOccurs="unbounded"/> <xsd:element name="BBB" minOccurs="1" maxOccurs="unbounded"/> </xsd:all> </xsd:complexType> 案2:(AAA・BBBタグが記述されていなくても、OKとなる⇒NG) <xsd:complexType> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element name="AAA" minOccurs="1" maxOccurs="unbounded"/> <xsd:element name="BBB" minOccurs="1" maxOccurs="unbounded"/> </xsd:all> </xsd:complexType> 何かご存知の方がおられましたら、アドバイスを頂けると幸いです。 よろしくお願いいたします。 |
|
投稿日時: 2005-12-06 12:31
XML Schemaでは無理な気がしますね。mixed="true"にして、「空白以外のテキストが入ってたらエラー」「AAAかBBBが存在しないならエラー」はアプリケーションでチェックするのが良いのではないでしょうか。
|
|
投稿日時: 2005-12-06 15:06
クレイサーさま、こんにちは。
>・AAAタグとBBBタグは同一階層に存在する >・AAAタグとBBBタグの記述順は不定である >・AAAタグとBBBタグはそれぞれ最低1回は記述される必要がある >・AAAタグとBBBタグは複数回の記述を許容する この4つの条件すべてを満たすスキーマをW3C XML Schemaで書くのはやはり無理かと思います。 私でしたら、「AAAタグとBBBタグはそれぞれ最低1回は記述される必要がある」の条件についてをあきらめて、どうしてもこれをチェックしたい場合についてはSchematronのような別の手段でチェックできないかどうかを考えます。 またこの場合、choiceを使っても悪くないのですが、代替グループのテクニック http://www.cityfujisawa.ne.jp/~yanai/xml/schema/step31.html を使うほうが、個人的にはすっきりした感じがあって好きだったりします。 _________________ |
|
投稿日時: 2005-12-06 20:43
スフレ様 TAKABE様
XML Schema単独では無理でしたか。。。 ・プログラム内での自前でのチェックと並行して実施 ・記述順固定としてSequenceで記述 の2点で再検討してみます。 的確なご解答、ありがとうございました。 |
|
投稿日時: 2005-12-15 17:14
8. 順序なし内容モデル
http://www.kohsuke.org/relaxng/tutorial.ja.html#IDAA1YR 記述できそうな pho |
1