とめどもSeasar日誌

2004 | 05 |

2004-05-17

[]DTDはどうなる? 18:10

S2.0.8でネストしたincludeがサポートされなくなり、app.diconファイルだけでincludeが出来る、という仕様になりましたが、.diconファイルのDTD(components.dtd)は変わらないのでしょうか?この仕様では、app.diconではincludeのみ記述し、他の.diconではcomponentのみ記述する、という形式になるんじゃないかと(勝手に)思ってるのですが、app.diconとそれ以外の.diconで別々のDTDを用意するか、もしくはDTDは1つだけだけど、1つの.diconファイル内にはincludeかcomponent要素のどちらかのみを記述できるようにするか。

後者の例を具体的に言うと、現状のDTDはこうなってますが、

<!ELEMENT components (
        description?,
        include*,
        component+
)>

これを修正して、以下のようにする(DTDの定義をちゃんと知らないので、こんなん書けないかも知れませんけど……)。

<!ELEMENT components (
        description?,
        (include+ |
        component+)
)>

こうじゃなくてもいいんですが、ネストしたincludeをサポートしないのであれば、実行前にXMLのスキーマを元にある程度validationできるようにしておいて欲しいなぁ、と思います。どうでしょう?>d:id:higayasuoさん。

higayasuohigayasuo2004/05/17 19:23ネストしたincludeのサポートの復活を検討中です。

zwfkzwfk2004/05/17 20:37了解です。それならそれでいいんですが、component+をcomponent*に変えません?app.diconではcomponentを定義しない、という状況も十分あるでしょうから。

higayasuohigayasuo2004/05/17 20:51了解しました。DTD相変わらず効いてないなぁ。component1つもなくてもエラーにならないし。

zwfkzwfk2004/05/17 21:06XMLBuddyではエラー出ますけど、余裕で実行できますね。