|
この章では、WebLogic Workshop のマッパー機能で使用できる XQuery ノード関数について説明します。マッパー機能を使用してクエリを生成し、クエリを編集して、提供されている XQuery 関数への呼び出しを追加します。詳細については、「クエリ内での関数または演算子の呼び出し」を参照してください。
マッパー機能で使用できる XQuery 関数および演算子以外にも、数多くの追加の関数および演算子が用意されています。これらの関数、および XQuery ノード関数 リファレンスの呼び出しは、手動でクエリに追加できます。
この節では、WebLogic Workshop のマッパー機能で使用できる XQuery ノード関数について説明します。マッパー機能を使用してクエリを生成し、クエリを編集して、提供されている XQuery 関数への呼び出しを追加します。詳細については、クエリ内での関数または演算子の呼び出しを参照してください。
マッパー機能で使用できる XQuery 関数および演算子以外にも、数多くの追加の関数および演算子が用意されています。マッパー機能のソース ビューを使用すると、これらの関数および演算子の呼び出しを手動でクエリに追加できます。追加の関数と演算子のリストについては、次の URL にある W3C Web サイトで、
XQuery 1.0 and XPath 2.0 Functions and Operators - W3C Working Draft 16 August 2002 を参照してください。
http://www.w3.org/TR/2002/WD-xquery-operators-20020816
この節では、マッパー機能で使用できるノード関数のリストを示します。
$node-var
がノードでない場合、マッパーには次のエラーが表示されます。
XQuery を実行中にエラーが発生しました : このメソッドに XQuery または XSLT をロードしている際にエラーが発生しました。
Type error in function node-kind invocation: expected type node, given type
[string@http://www.w3.org/2001/XMLSchema]
$node-var
の値が空のシーケンスである場合、マッパーには次のエラーが表示されます。
XQuery を実行中にエラーが発生しました : このメソッドに XQuery または XSLT をロードしている際にエラーが発生しました。
Type error in function node-kind invocation: expected type node, given type empty
空のシーケンスとは項目を含まないシーケンス「()
」であり、SQL の null のようなものです。
xf:
node-kind(xf:
node $node-var)
—>xs:
string
$node-var
の種類を表す文字列が返されます。document、element、attribute、text、namespace、processing-instruction、comment の文字列のいずれかが返されます。
return <type>{xf:node-kind($x)}</type>
return <type>{xf:node-kind($x/@a)}</type>
return <type>{xf:node-kind($x/text())}</type>
W3C の
node-kind 関数の説明。
$node-var
の展開された QName が返されます。展開された
QName には、ネームスペース URI とローカル名が含まれています。
$node-var
の値が空のシーケンスである場合は、次のエラー メッセージが表示されます。
XQuery を実行中にエラーが発生しました : このメソッドに XQuery または XSLT をロードしている際にエラーが発生しました。
Type error in function node-name invocation: expected type node, given type empty
空のシーケンスとは項目を含まないシーケンス「()
」であり、SQL の null のようなものです。
$node-var
がノードでない場合、マッパーには次のエラーが表示されます。
XQuery を実行中にエラーが発生しました : このメソッドに XQuery または XSLT をロードしている際にエラーが発生しました。
Type error in function node-name invocation: expected type node, given type
[string@http://www.w3.org/2001/XMLSchema]
xf:
node-name(xf:
node $node-var)
—> xs:
QName?
$node-var
の展開された QName が返されます。展開された
QName には、ネームスペース URI とローカル名が含まれています。
名前を持たないノード (document、text、processing-instruction、comment) に対しては、空のシーケンスを返します。空のシーケンスとは項目を含まないシーケンス「()」であり、SQL の null のようなものです。
let $x := <elem xmlns:foo="http://www.acme.org/"><foo:subelem/></elem>,
$name := xf:node-name(children($x))
xf:get-namespace-from-QName($name)
xf:get-local-name-from-QName($name)
<?xml version="1.0" encoding="UTF-8"?>
<uri>http://www.acme.org/</uri>
W3C の
node-name 関数の説明。
xf:
local-name(xf:
node? $node-var)
—> xs:
string
次の XML ドキュメントでは、xacme
というネームスペースが定義されています。
<mydoc xmlns:xacme="http://www.acme.com/foo"> <xacme:n/> </mydoc>
上の XML ドキュメントでは、ネームスペース プレフィックス xacme
が URI http://www.acme.com/foo
に関連付けられています。文字列 xacme:n
は URI とローカル名のペア ("http://www.acme.com/foo"と "n")
の修飾名です。
次のクエリ例では、以下の XQuery コードに示すように、URI とローカル名のペアのローカル部分が返されます。
let $a := <mydoc xmlns:xacme="http://www.acme.com/foo"> <xacme:n/> </mydoc>
return <name>{xf:local-name($a/*[1])}</name>
W3C の
local-name 関数の説明。