• +49-(0)721-402485-12
Ihre Experten für XML, XQuery und XML-Datenbanken

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().

SignaturBeschreibung
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ückvor >>