XQuery 3.1
Der XQuery 3.1-Prozessor von RaptorXML Server entspricht der XQuery 3.1 Recommendation vom 21. März 2017 des World Wide Web Consortium (W3C) und unterstützt XPath- und XQuery-Funktionen 3.1. Die XQuery 3.1-Spezifikation ist eine Übermenge der 3.0-Spezifikation. Daher unterstützt der XQuery 3.1-Prozessor XQuery 3.0-Funktionen..
Namespaces
In Ihrem XQuery 3.1 Stylesheet sollten die folgenden Namespaces deklariert sein, damit Sie die in XQuery 3.1 verfügbaren Typ-Konstruktoren und Funktionen verwenden können. Normalerweise werden die unten aufgelisteten Präfixe verwendet; bei Bedarf können Sie auch andere Präfixe verwenden.
Namespace Name | Präfix | Namespace URI |
XML Schema-Typen | xs: | http://www.w3.org/2001/XMLSchema |
XPath/XQuery 3.1-Funktionen | fn: | http://www.w3.org/2005/xpath-functions |
Mathematische Funktionen | math: | http://www.w3.org/2005/xpath-functions/math |
Zuordnungsfunktionen | map: | http://www.w3.org/2005/xpath-functions/map |
Array-Funktionen | array: | http://www.w3.org/2005/xpath-functions/array |
XQuery-, XSLT- und XPath-Fehlercodes | err: | http://www.w3.org/2005/xpath-functions/xqt-errors |
Serialisierungsfunktionen | output | http://www.w3.org/2010/xslt-xquery-serialization |
Beachten Sie die folgenden Punkte:
•Der Altova XQuery 3.1-Prozessor ist so konfiguriert, dass die oben aufgelisteten Präfixe an die entsprechenden Namespaces gebunden sind.
•Da der oben angeführte Namespace für vordefinierte Funktionen (siehe fn:) der Standard-Funktions-Namespace in XQuery ist, muss beim Aufruf von vordefinierten Funktionen das Präfix fn: nicht verwendet werden (string("Hello") ruft z.B. die Funktion fn:string auf). Das Präfix fn: kann jedoch verwendet werden, um eine vordefinierte Funktion aufzurufen, ohne die Namespace im Abfrage-Prolog deklarieren zu müssen (z.B.: fn:string("Hello")).
•Sie können den Standard-Funktions-Namespace durch Deklarierung des default function namespace-Ausdrucks im Abfrageprolog ändern.
•Bei Verwendung von Typen aus dem XML Schema-Namespace kann das Präfix xs: verwendet werden, ohne dass Sie den Namespace explizit deklarieren müssen und dieses Präfix im Abfrageprolog daran binden müssen. (Beispiel: xs:date und xs:yearMonthDuration.) Wenn Sie ein anderes Präfix für den XML-Schema-Namespace verwenden möchten, muss dieses im Abfrageprolog explizit deklariert werden. (Beispiel: declare namespace alt = "http://www.w3.org/2001/XMLSchema"; alt:date("2004-10-04").)
Wenn Namespaces für Funktionen, Typ-Konstruktoren, Node Tests usw. falsch zugewiesen wurden, wird ein Fehler ausgegeben. Beachten Sie jedoch, dass einige Funktionen denselben Namen wie Schema-Datentypen haben, z.B. fn:string und fn:boolean. (Sowohl xs:string als auch xs:boolean ist definiert.) Das Namespace-Präfix legt fest, ob die Funktion oder der Typ-Konstruktor verwendet wird.
Implementierungsspezifisches Verhalten
Die implementierungsspezifischen Eigenschaften sind dieselben wie für XQuery 1.0.
Zusätzlich dazu kann die Altova-spezifische Kodierung x-base64tobinary verwendet werden, um ein Binärdokument wie z.B. ein Bild zu erzeugen.