Nichts drin: Die leere Sequenz

(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 1.)

Was aber geschieht, wenn ein Ausdruck kein Ergebnis liefert, beispielsweise, wenn an der von einem Pfadausdruck beschriebenen Stelle kein entsprechen­der Knoten existiert? In diesem Fall liefert der Ausdruck eine leere Sequenz zurück. Dies sagt aus, dass hier keine Information vorliegt – halbwegs ver­gleichbar mit dem null-Wert in einer Datenbank.

Eine leere Sequenz wird durch leere runde Klammern symbolisiert: ()

Hier ergibt der zweite Ausdruck eine leere Sequenz:

(ausdruck_a, ausdruck_b, ausdruck_c) ergibt (wert_a, (), wert_c)

Was die Verschachtelung von Sequenzen angeht, so stellt die leere Sequenz kei­nen Sonderfall dar – allerdings besitzt sie die Länge Null. Daraus folgt, dass eine leere Sequenz »verschwindet«, sobald sie in einer anderen Sequenz auftritt:

(wert_a, (), wert_c) ergibt (wert_a, wert_c)

Viel Lärm um nichts also? Ganz so ist es nicht. Leere Sequenzen haben durchaus ihre Berechtigung. Sie stellen einen quasi chamäleonartigen, vollständig neu­tralen Wert dar, der als Eingangswert aller Funktionen und Instruktionen akzeptiert wird: Eine leere Sequenz verursacht keinen Fehler, da auch keine Verarbeitung stattfindet. Ein leerer String dagegen könnte unter Umständen einen Typfehler verursachen, obwohl auch er »nichts« enthält!

Eine Instruktion »tut«, wenn sie eine leere Sequenz erhält, einfach nichts. Funktionen dagegen geben meist wiederum eine leere Sequenz zurück.

   

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Galileo Press, Rheinwerkallee 4, 53227 Bonn