- - PR -
(混在要素|要素)が通らない
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2002-03-05 13:46
はじめまして
Webアプリケーションの中で、ユーザ定義のメニューを作らせるため、XMLでメニュー定義用の言語を定義して見ました。 #嗚呼、メタな文章・・・ その中でひとつはまりかけたのが次の定義(DTD) <!ELEMENT menu ((#PCDATA|button|textbox)*|submenu) > 「menuは#PCDATAかbuttonかtextboxのどれでも0個以上の子を持つか、またはsubmenuを1個持つ」 という定義なのですが、JAXB(スキーマコンパイラ)にかけても、パーザにかけてもエラーが出てしまいました。 DTDの制限かと思ったのですが、いろいろ調べた挙句に、(混在要素|要素)の組み合わせはXMLで許されていないことが分かりました。 結局 <!ELEMENT controls (#PCDATA|button|textbox)*> <!ELEMENT menu (controls|submenu) > と、一旦混在要素を要素に挟み込むことで解決しました。 混在要素|要素って使いそうなものなのに、意外に通らないんですね #ちなみにSGMLでは通ってたらしいです |
1