XQuery

なんだか必要そうなのでこれも手をつけた。
しかし、Webで引っ張ってきた記事を参考にしてもXMLSpyが文法エラーで動かない。なぜかと思って調べてみると……記事が古すぎた。どうもXMLSpyが採用している版が記事が参照している版より新しいようで、関数の名前が変わっていた。*1
手元にあるXMLSpyも最新版じゃないので、微妙にやりづらい。というか、XQueryの記事が少ない。


XQuery 1.0: An XML Query Languageが割と明快なサンプルだったりするぐらい、見つからない。現在、returnするエレメントを操作するためのパーツがないのかを検索中。何もないと結構煩雑なので、策定されていそうなものなのだが。まぁ、「一つ一つくみ上げろ」ということかもしれない。*2


とりあえず、XSLTでは出来ない「複数の文書をつなげた処理」は問題なく書けるので当初の目的は果たした。


文法を見ると、「XML文書を処理するXQueryの式」をさらに「XQueryの式で処理」してさらに…という形が許されているので、かなり潜在力は高いだろう。declare function文とかもあるのだが、さすがにそこまでを「英語の規格書だけ」でいじるのはいやかも(笑)

*1:具体的にはdocumentがdocに短縮されていたようだ。キーワードリストにはdocumentがあったので間違っていないと思ったのだが、関数リストにはdocがあった…。

*2:そういえば、正式なSQL文にはアスタリスクで全部のカラムを選択する、という機能はあるのだろうか?機械が処理した後のものを見ると、いつもカラム名が実際の名前に展開されているのだが…