XMLツール

XQueryテスト手元の文書でクエリを確かめる

並べ替えと要素生成を含むサンプルを用意。編集後はCtrl/Cmd+Enterでも再実行できます。

XQueryテスト

XML入力

XQueryプログラム

結果

XMLと式はこのブラウザーで処理し、文書をサーバーへ送信しません。

単純な名前は32個まで。値は文字列、有限数、真偽値とし、式内でexternalと宣言します。

XQuery 3.1の一部に対応。XML一件のみ。doc()、モジュール、更新は不可。実行上限3秒。

結果が古くなりました。書き出すには再評価してください。

ノードを選ぶだけでなく、条件を付けて並べ替え、新しいXMLを作りたいときにXQueryテストを使います。最初のサンプルは実際のXQuery 3.1エンジンで二つの結果要素を生成します。

小さなXQueryエディターとして、データベースへ移す前に文書一件で再現できます。XQuery実行の対象は貼り付けたXMLだけで、URLやコレクションは読み込みません。 XQueryオンラインの手軽さを保ちつつ、外部文書は読み込みません。

XQueryテストが役立つ場面

構文だけでなく、結果と参照範囲を確認します。

選択した値で新しい要素を作る

XQueryテストではfor、where、order by、returnを実行します。書籍の例は価格で絞り込み、順序を変えてからresult要素を作るので、XPathの単なるノード選択とは異なります。

書籍のXMLツリーから二冊を選び、並べ替えて新しい結果の枝を作る図。

文書の参照範囲を固定する

クエリが参照できるのは入力したXML一件です。doc()や外部モジュールはエラーになり、長引く処理はWorkerを停止します。

XMLとクエリがブラウザー内の区画へ入り、外部文書への経路は遮断される図。

結果を読む前に確認する三点

01

サンプルの種類を切り替える

FLWORのほか、外部変数、名前空間、意図的な構文エラーを選べます。読み込みは三つの入力をプレビューしてから適用し、一度だけ元に戻せます。

  • エラー例は診断位置を確かめるためのものです。
02

変数を宣言して渡す

JSONに{"minimum":20}を入力し、式にはdeclare variable $minimum external;と書きます。値は文字列連結ではなく変数として渡されます。

  • 使用できる値は文字列、有限数、真偽値です。
03

編集したら明示的に再実行する

XQuery構文では短い式でも大量の結果を作れます。そのため自動実行はせず、入力変更時は古い結果のコピーと保存を止めます。

  • 空の結果は成功、タイムアウトは失敗です。

式と結果を照らし合わせる

FLWORと要素コンストラクター

XML問い合わせの結果を抽出、整列し、新しい要素に組み立てられます。生成ノードはテキストとして表示し、HTMLとして実行しません。

外部変数の束縛

宣言済み変数へJSONの値を渡します。同じ式のしきい値だけ変更でき、クエリ文字列へ値を埋め込む必要がありません。 XQuery変数の値だけを変えて結果を比較できます。

空シーケンスとエラーの区別

一致がなければ0件で正常終了します。不正なXML、未宣言変数、構文エラーは別のエラーとして表示します。

対応範囲と実行上限

XQuery 3.1の対応部分のみ
FontoXPath 3.34.0で確認したFLWORと要素生成を使います。group by、count句、ウィンドウ句、スキーマ型付け、製品固有の拡張は保証しません。
外部文書と更新は扱わない
doc()、collection()、unparsed-text()、モジュール読み込み、XQuery Updateは利用できません。入力欄のXMLだけが文書コンテキストです。
XMLと処理量を制限する
整形式のXML 1.0のみ受け付け、DOCTYPEと外部実体を拒否します。XMLは10万文字、式と変数は各1万文字、ノード5,000、深さ100、変数32、出力100万文字、実行3秒が上限です。
途中結果は書き出さない
上限を超えると失敗し、切り詰めた結果を保存できません。サンプルとクリアは置換前に確認でき、元の入力と結果を一度復元できます。

XQueryテストのよくある質問

XMLに対してXQueryを実行するには?

XMLファイルの中身を入力欄へ貼り、別の欄に式を書いて実行します。ファイルパスやURL、コレクションから文書を取得する機能はありません。

XQueryで外部変数を使うには?

式でdeclare variable $minimum external;と宣言し、変数欄に{"minimum":20}を入力します。値は式へ文字列として挿入されず、変数として束縛されます。

名前空間付きXMLをXQueryで検索するには?

先頭で名前空間URIに接頭辞を宣言し、その接頭辞をパスで使います。名前空間のサンプルは既定の名前空間があるXMLを検索します。

XQueryの結果をXMLで出力するには?

return句で<result>{$book/title/text()}</result>のような要素を作ります。戻ったノードはXML文字列として表示し、HTMLとして実行しません。

XPathとXQueryの違いは?

XPathは文書内の位置指定や値の計算が中心です。XQueryには変数、FLWOR、要素生成があり、結果の形を作り替えられます。

想定外の結果でしたか?

XQueryテストで次の式を検証

原因調査ではXMLのサンプルと式を一緒に残してください。XQueryテストは失敗と最後に完成した結果を分け、編集後の古い出力を書き出させません。