昨日と今日で、XmlReaderSettingsとXmlWriterSettingsの実にどうでもいいサポートをあらかたやっつけた。コレは実にくだらない機能だ。ていうか、System.Xml 2.0に魅力を感じている人って、一体どれだけいるのだろうか? XmlReader.Create()を見たとき、これを素晴らしいと思うか、それとも今までのXmlValidatingReaderがいかに不自由であったかということに気づくか、その違いは大きい。
最近、XmlDocumentを利用したobject mappingは出来ないかなあと考えている。ある要素の内容をnon-deterministicに2通りに解釈しうる場合に、relaxerモデルというかXmlDocumentをツリーコンテナにして、オブジェクトは必要に応じて生成しキャッシュする。何でもかんでもmappingしないと成り立たず、クラスの拡張とも相性の悪いXmlSerializerよりは、実際的なんじゃないかなあと思っている。
XmlReaderを任意の文書構造向けに拡張するという方法でも、それなりに良いと思うけど、解釈が後戻りできない点が劣る。それに、XPathNavigatorを選んで、単なる参照のためだけに生成されるインスタンスをmapped objectごとに保持して、ツリーと合わせて実質2倍のオブジェクトを保持するよりは、navigatorではなくツリーノード参照だけを保持すれば足りるXmlDocumentの方が、ずっとセンスがあると考えている。
って、まだまだぜんぜん試案段階なのだけど。