2016-04-16 8 views
1

test2.xqy:Wie importiere ich externe Variablen und Funktionen von externen Modulen?

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; 

Befehlszeile:

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

ich doc nicht darüber, wie VARs und Funktionen von externen Modulen importieren . Also versuche ich es auf eine intuitive Art und Weise. Der Fehler besagt, dass es keine Definition für $defaultXMLNS gibt. Ich habe es definiert, aber mit einem Namespacepräfix.

Antwort

0

Sie haben vergessen, den Namespace auf der rechten Seite der Zuweisung zu definieren:

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

So $defaultXMLNS im Standard-Namespace gesucht wird, wo es nicht registriert ist. Wenden Sie den Namespace statt:

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

Wenn Sie dies tun, können Sie später den Wert wie folgt zugreifen:

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

element test 
{ 
    $myNS:srcDoc 
} 
Verwandte Themen