2016-04-16 26 views
1

test2.xqy:外部モジュールから外部変数と関数をインポートするにはどうすればいいですか?

import module namespace myNS = "http://test.org/module1" at "./namespace.xqy"; 

element test 
{ 

} 

namespace.xqy:

module namespace myNS = "http://test.org/module1"; 

declare variable $myNS:srcDoc:="test2.xml"; 
declare variable $myNS:defaultXMLNS:="http://www.test.com#"; 
declare variable $myNS:defaultXMLBase:=$defaultXMLNS; 

コマンドライン:

$ basex test2.xqy 
Stopped at /Users/jack/Documents/xqy/namespace.xqy, 5/53: 
[XPST0008] Undefined variable $defaultXMLNS. 

私は外部のモジュールからVARSと関数をインポートする方法についてのドキュメントを見つけることができませんでした。だから私は直感的な方法でそれを試してみる。エラーは、$defaultXMLNSの定義がないことを示しています。私はそれを定義しましたが、名前空間接頭辞を付けました。

答えて

0

あなたは代入の右辺の名前空間を定義するのを忘れ:

declare variable $myNS:defaultXMLBase:=$defaultXMLNS; 
            (:^no namespace defined :) 

したがって、$defaultXMLNSは、それが登録されていないデフォルトの名前空間で検索されます。代わりに、名前空間を適用します。

declare variable $myNS:defaultXMLBase:=$myNS:defaultXMLNS; 

その場合、後でこのように値にアクセスすることができます。

import module namespace myNS = "http://test.org/module1" at "./namespace.xqy"; 

element test 
{ 
    $myNS:srcDoc 
} 
関連する問題