Atomare Werte
Atomare Werte sind Instanzen eines einfachen Typs im Sinne von XML Schema, also zum Beispiel Zeichenketten wie "Emma Müller" oder Zahlen wie zum Beispiel 1.0. Alle in XML Schema vordefinierten einfachen Datentypen sind auch in XQuery bekannt. Um sie leicht ansprechen zu können, nimmt XQuery an, dass das Präfix xs an den XML Schema-Namensraum "http://www.w3.org/2001/XMLSchema" gebunden ist. Atomare Werte können aber auch einen benutzerdefinierten Typ haben, wenn dieser XQuery bekannt gemacht wurde. Jedoch sind Werte von Typen, die durch Vereinigung (union) oder Listenbildung (list) entstanden sind (beispielsweise IDREFS und NMTOKENS), nach W3C - XML Schema Part 2: Datatypes keine atomaren Werte.
Konstruktoren
Wenn es erforderlich ist, in einem XQuery-Ausdruck einen Wert eines bestimmten Typs anzugeben (zum Beispiel als Vergleichswert), dann kann dies mittels eines Konstruktors geschehen. Ein solcher Konstruktor ist für jeden einfachen Typ verfügbar, der zum Auswertungszeitpunkt bekannt ist. Der Konstruktor ist eine Funktion, die genauso heißt wie der zu konstruierende Typ. Der entsprechende Wert wird als einziges Argument der Funktion übergeben. So bezeichnet der Ausdruck
xs:float(1)
einen Wert des Datentyps xs:float. Für Literale einiger Datentypen gibt es kürzere Schreibweisen, die im Folgenden vorgestellt werden.
Literale für Zeichenketten
Zeichenketten, die in einfache oder doppelte Anführungszeichen eingeschlossen sind, gelten als Werte vom Typ xs:string, zum Beispiel:
'Dies ist ein Literal vom Typ xs:string'
"Solche Literale sind in "" oder ' eingeschlossen"
Wie am letzten Beispiel deutlich wird, kann man die Anführungszeichen, die das Literal umschließen, auch im Literal selbst verwenden, wenn man sie verdoppelt.
Literale für Zahlen
Zahlen werden zum Typ xs:integer, xs:decimal oder xs:double, je nachdem, ob sie einen Dezimalpunkt und gegebenenfalls einen Exponenten enthalten:
123 Datentypzuweisung: xs:integer
123.12 Datentypzuweisung: xs:decimal
.123 Datentypzuweisung: xs:decimal
1E1 Datentypzuweisung: xs:double
Für die Werte +INF, -INF und NaN gibt es keine Literale; sie müssen mit Konstruktoren erzeugt werden, also etwa durch
xs:double("NaN")
Quelle: "XQuery – Grundlagen und fortgeschrittene Methoden", dpunkt-Verlag, Heidelberg (2004)
<< zurück | vor >> |