Funktionen und Operatoren auf booleschen Werten
Neben den logischen Ausdrücken bietet der Sprachumfang von XQuery eine umfassende Sammlung an Funktionen und Operatoren für die Anwendung auf boolesche Werte. Die folgende Tabelle gibt einen Überblick über die interessanten Funktionen in diesem Kontext. Die beiden Funktionen fn:false() und fn:true() liefern den jeweils durch die Bezeichnung suggerierten konstanten booleschen Wert false bzw. true.
Das Fehlen der Negation, die bei den logischen Ausdrücken nicht direkt realisiert ist, wird durch die Funktion fn:not() mit entsprechender Semantik kompensiert. Die Negation ermittelt mit Hilfe der Funktion fn:boolean() den effektiven booleschen Wert des Parameters und liefert true false bzw. false, wenn der effektive boolesche Wert true ist.
Zu beachten ist, dass die Funktion fn:not() sich auf den Wert des Parameters bezieht, welcher durch einen entsprechenden XQuery-Ausdruck ermittelt werden kann. Handelt es sich dabei um einen Pfadausdruck, so kann sich der Test auf die Existenz eines Elementes, und nicht auf dessen Wert beziehen. Zum Beispiel liefert
fn:not(.//Medikament)
den Wert false, falls das Element existiert — unabhängig von der entsprechenden Belegung. Sollte der boolesche Wert negiert werden, so ist ein expliziter Rückgriff auf den Wert des Elementes oder eine explizite Konvertierung in den Datentyp xs:boolean sinnvoll:
fn:not(fn:data(.//Medikament))
fn:not(xs:boolean(.//Medikament))
Die dritte Klasse an Operatoren auf booleschen Werten, die an dieser Stelle erläutert werden, repräsentieren das Spiegelbild der Vergleichsoperatoren für Wertausdrücke auf booleschen Werten. Die Operation op:boolean-equal() korrespondiert dabei zum eq-Operator, op:boolean-less-than() kann als Pendant zum lt- bzw. durch Vertauschung der Operanden zum ge-Operator betrachtet werden. Analoges gilt für den dritten Vergleichsoperator auf booleschen Werten: op:boolean-greater-than().
Signatur | Beschreibung |
---|---|
fn:false() as xs:boolean | liefert den Wert false |
fn:true() as xs:boolean | liefert den Wert true |
fn:not( $arg as item()*) as xs:boolean | liefert den Wert true, wenn der effektive boolesche Wert des Argumentes false ist bzw. invertiert |
op:boolean-[equal| less-than| greater-than]( $val1 as xs:boolean, $val2 as xs:boolean) as xs:boolean | äquivalent zu Wertevergleichen: · $val1 eq $val2 · $val1 lt $val2 bzw. $val2 ge $val1 · $val1 gt $val2 bzw. $val2 le $val1 |
Tab. Übersicht von Funktionen und Operatoren auf booleschen Werten
Quelle: "XQuery – Grundlagen und fortgeschrittene Methoden", dpunkt-Verlag, Heidelberg (2004)
<< zurück | vor >> |