コンテンツへスキップ
ものがたり
戻る

XQuery implementation in progress

1日でComparisonExpressionsとArithmeticExpressionsとGroupExpressionをやっつけた。これで全然出来ていない式はvalidate()とordered(), unordered()だけだ。関数とExpressionsOnStaticTyping (typeswitchとか)はすぐに例外を投げるし、positional predicateはEBVと勘違いしてしまうし、他にもAttributeValueTemplateとかDoubleLiteralとかNamespaceConstructorとか解析できていないし、FLWORは上手く結果が返ってこないし、関数はたくさん実装されていないけど。今までは出来ている部分の方が少なかったけど、↑ではもう出来ていない部分を列挙するような書き方になっている。

実装を見直して、設計を落ち着かせて、大部分を動作可能にするには、やっぱもうひと月は必要だろう。ていうか、それをやるためにはSystem.Xml.Schemaの一部を再設計しなければならない。それに、XQueryにはフリーで公開されているテストが存在しないので(テストが有償で販売されているという有様)、自分で書き上げにゃならないだろう。しかし、Mono 1.2が登場する時には、かなりの部分が出来上がっている自信がある。

その後に、CLIランタイムとXQueryコンパイラの辻褄を合わせるという、あまりやりたくない仕事が残っている。この辺はXSLTをやっつけたBen Maurerが「たぶんDynamicMethodとか使えば、高速なものが出来ると思うんだよね〜」と、ちょっと興味を示していたので、もう丸投げしちゃうかも…と言いたいところだけど、丸投げするには下地になっているコードがヘチョいと困るので、その辺も少し面倒を見ないといけない。ていうか、System.Reflection.Emitって真面目に見たこと一度もないんですけど…

XQueryをMono 1.2にあえて間に合わせるような作業をする予定は、今のところは無い。もしかしたらXML 2.0を「見せつける」ためにやるかもしれないけど。


この記事を共有:

前の記事
Chris Anderson on Miguel's Longhorn changes
次の記事
conferences