プロローグ

プロローグにいろいろ書けるらしい。

関数

関数名は特定の名前空間に属する必要がある。ただし、クエリー内のみで使用する場合、定義済みの接頭辞「local」を使える。別モジュールで使うときはダメー。

引数リスト

「,」で区切って並べる。データ型とか、アイテムタイプとか、明記できる。

param as element()
ひとつの要素
param as attribute()
ひとつの属性
param as element()*
0個以上の要素シーケンス
param as attribute()*
0個以上の属性シーケンス
戻り値

{}内の式の評価結果が勝手に戻り値になる。引数同様、「as」でデータ型とか、アイテムタイプとか、明記できる。

declare function 関数名(引数リスト) as element() { 式 };

変数

declare variable $変数名 := 単一式;

スコープは宣言以降。

名前空間

declare namespace 名前空間接頭字 = "名前空間URN";

スコープは宣言以降。ただし、コンストラクタ(あとで書く)で上書きできる。

デフォルト名前空間
declare default element namespace "名前空間URN";
declare default function namespace "名前空間URN";
...