NvdlValidatingReader alpha1
ハマりにハマった挙句、原因がRelaxngValidatingReaderのバグだったことに気付いて、直したらようやくちょいと動くようになりました。とりあえずnvdl.nvdlと仕様書に載っているサンプルは動作するみたい。
とりあえず何の説明書きもないファイル群:
- Commons.Xml.Nvdl-20050301.zip - ソース
- nvdltests.zip - 仕様書に載ってるサンプルをでっちあげたもの
TODO:
context pathのチェック。これはdispatcherのrule探索の関数を1つ直すだけ(といってもパスのスタックがいるけど…)→alpha3で対応- 属性セクションのフィルタリング。これは検証系に食わせるXmlReader(今のところこれはPlaceHoldableXmlReaderという謎の名前になっているが、変える予定)のMoveTo*Attribute()とGetAttribute()にフィルタをかける
だけだけじゃなくて、schema rewriteもしないと…(すっかり忘れてた)。 - createPlaceHolder()。検証系にダミーの要素を食わせる。ただしDepthなどの調整が必要。
mime typeとスキーマを解決するprovider interface(設計間違ってたので全部やり直し)→alpha2で対応
うひょー、これ先月のそのままコピーしただけじゃん。って、何も進んでいないかのようだけど、先月の設計はinterpretationの扱いに問題ありありだったのです。いや、まだ問題が無いとはちと考えにくいですが…。ともあれ、上記のいくつかを終えたらsvnにcheckinしようと思います。
alpha2
validation providerインターフェースをMIME対応
alpha3
context/pathに対応。本当かなあ。何一つ例がないのできわめてuntestedです。ていうか、↑ruleの解決云々って書いているのは明らかに仕様を誤解してますねえ。
というわけで
めんどくさいXSLTの作業が残っている現状、2日もCommons.Xml.Relaxngに費やすわけにもいかないので、とりあえずここまででcheckinしました。あーXSLTやりたくねー。