ものがたり(旧)

atsushieno.hatenablog.com に続く

NvdlValidatingReader alpha4

Commons.Xml.Nvdl-20050306.zip

  • createPlaceHolder()
  • attBubble[I]

TODO:

  • schema rewriting for attribute sections (8.7.3)

これが何を意味するのかまだよく分かってないんだけど…。ていうかそれ以前にcreatePlaceHolder()もattBubble[I]もuntestedだし。まあその辺が出来たらbetaとして表に出します。ってもう出してるじゃんよ。

追記。意味は分かった(ていうか何も難しいことじゃなかった)。これはNvdlValidatorGeneratorにCreateAttributeValidator()という抽象メソッドを追加するだけで、形式的には90%解決しそうだ。

しかーし。このインターフェースだけで実装が問題なく出来るかというと、どうもそんな感じはしない。なぜなら…スキーマ文書をXmlReaderで提供するということは、普通に考えたら1つの読み込み処理*1ので、XmlDocumentに読み込んでXmlNodeReaderを渡すとか、メモリを無駄に食う設計を強制してしまう、というおそれがある。

うーん、まあ、いいか。そもそもPlanAttなんて滅多に使わんだろうし。

*1:たとえばXmlSchema.Read()))にしか使えない。とすると、スキーマ自体がICloneableとは限らない((というかSystem.Xml.Schema.XmlSchemaもCommons.Xml.Relaxng.RelaxngPatternもClone()できない