|
この章ではサポートされる XQuery オカレンス インジケータを定義します。オカレンス インジケータは、項目の出現回数を定義するためのものです。オカレンス インジケータは、引数に渡すことのできる項目の数や関数から返すことのできる項目の数を定義するために、XQuery 関数シグネチャで使用します。
オカレンス インジケータを指定しない場合は、次の関数シグネチャの例で示すように、項目は 1 回だけ出現する必要があります。
bea-xf: trim-left(xs:
string $string-var) —>xs:string
上記の例では、trim-left 関数の $string-var1 引数に対して、項目を 1 つだけ指定する必要があります。たとえば、次の場合は normalizedString 関数の有効な呼び出しになります。
<result>{bea-xf:trim-left(" abc ")}</result>
次の場合は、$string-var 引数のオカレンス インジケータの指定によって、normalizedString 関数の呼び出しは無効になります。
<result>{bea-xf:trim-left(())}</result>
<result>{bea-xf:trim-left(" abc "," def ")}</result>
? オカレンス インジケータは、項目が 1 回または 0 回出現することを定義します。項目が 0 回出現するということは、引数に空のシーケンスが渡されることを意味します (詳細については以下の例を参照してください)。空のシーケンスとは項目を含まないシーケンス「()」であり、SQL の null のようなものです。
次の XQuery 関数シグネチャの例では、? オカレンス インジケータが引数 $string-var1 と $string-var2 の両方に対して指定されています。
xf: tokenize(xs:
string?$string-var1,xs:string?$string-var2) —>xs:string*
? オカレンス インジケータが引数 $string-var1 に対して指定されているため、次の表に示すように、項目が 1 回または 0 回出現できることが定義されています。
* オカレンス インジケータは、項目に 0 個以上の項目を含めることができることを定義します。次の XQuery 関数シグネチャの例では、戻り値に * オカレンス インジケータが指定されています。
xf:tokenize(xs:
string? $string-var1, xs:string? $string-var2) —> xs:string*
関数の戻り値の一部である * オカレンス インジケータは、次の表に示すように、この関数からは 0 個以上の項目が返されることを定義しています。
+ オカレンス インジケータは、項目が 1 回以上出現しなければならないことを定義します。
|