Singletons und Knotendubletten

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

Für die Sequenz spielt es keine Rolle, ob enthaltene XPath-Ausdrücke jeweils verschiedene oder identische Ergebnisse liefern. Dopplungen sind durchaus erlaubt. Ein ganz einfaches Beispiel - ein Element mit Stringinhalt:

<lachen>ha ha</lachen>

Zunächst soll, quasi als Fingerübung, der Stringwert des Elements ausgelesen werden. Der XPath-Ausdruck besteht nur aus dem Elementnamen:

<xsl:value-of select="lachen"/> 

ergibt: ha ha

Nun wird statt des Ausdrucks eine Sequenz verwendet. Eine Sequenz, die nur aus einem Ausdruck besteht, entspricht in der Wirkung dem Einzelausdruck:

<xsl:value-of select="(lachen)"/> 

ergibt: ha ha

Achtung:
In XPath 1.0 verursachen die runden Klammern bereits einen Feh­ler. Ansonsten kann dies als Beispiel dafür herhalten, dass eine Sequenz aus einem Item identisch mit dem Item selbst ist. Eine solche Sequenz wird als Singleton-Sequenz bezeichnet.

Jetzt wird der Ausdruck kurzerhand zweimal in Folge eingesetzt:

<xsl:value-of select="(lachen, lachen)"/> 

ergibt: ha ha ha ha

An dieser Stelle wird es interessant. Erstens sieht man – und dies ist eine allge­mein Sequenzen betreffende Tatsache –, dass eine Sequenz einen Knoten mehrmals enthalten darf. Im Grunde ist natürlich nie ein Knoten selbst Teil der Sequenz, sondern ein Zeiger auf einen Knoten.

Merke:
Anfang und Ende einer literalen Sequenz wird durch runde Klam­mern markiert, ihre Sequenzglieder (Items) werden durch Kommas voneinander getrennt. Sequenzen können nicht verschachtelt werden. Die Items stellen nie selbst Sequenzen, sondern entweder atomare Werte oder Knoten dar, wobei ein und derselbe Knoten in einer Sequenz auch mehrfach repräsentiert sein darf.

   

<< 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