ものがたり(旧)

atsushieno.hatenablog.com に続く

XmlSchemaValidator

まだmono 1.1.3のパッケージングは終わっていない。というより、昨日終わらなかった。

ということで、今月はXSLT/XPathを最適化しようと思っていたけど、Alpがちょうどユーザーになってくれそうな感じなので、何か意味もなくやる気が出てきて、XmlSchemaValidatorを実装してみる事にした。んで、まずMSDNドキュメントを眺めて「何じゃこの意味不明な設計は?」と思いつつ、publicとprotectedのAPIを再現する。その僕のソース中には、LAMESPECと書かれた項目がたくさんあるわけです。たとえばbaseUriをXmlSchemaValidatorのコンストラクタで渡したらentityから生成されたノードのbase URIはどうすんだよ、とか。そんで、これを追加してgmcsでSystem.Xml.dllをビルドして、同じくgmcsでビルドしたcorcompareを使って、mono/web/webでmakeすると、古いwebサイトのスタイルのclass statusのページ出来上がるわけです(実際には他にもいろいろやんなきゃいけないんだけど)。その中のAPI情報は.NET 2.0のAPIになるわけです(これが僕がsys.xml 2.0のAPIを実装するときに普段やっている作業のひとつ)。

で、出来たページを眺めてみると…ドキュメントされているAPIと実物が全然違う(-_-# 今の実装はbaseUriをコンストラクタで渡したりはしないわけです。もともと内容が空白なのにAPIすら古いdexplore...って何かmonodocの話をしているような気分になってきた。閑話休題APIから作り直し。そして、新しいAPIに置き換えていった時点で、とりあえず3,4件あったLAMESPECは全部消えました。とりあえずXmlSchemaValidator自体は15くらいの未実装APIで足りているのだけど、これを使ったXmlReaderもやっぱ作らないといけないだろう。

ということで、まあもしかしたら今月中に出来るかもしれないです、と彼に伝えたところで気付いた。おれXML Schema検証系を2週間ちょっとで実装しようとか思ってる?