fn:data

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

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

   

Kategorie: Funktionen für Sequenzen

Herkunft: XPath 2.0

Rückgabewert: Sequenz aus atomaren Werten verschiedenen Typs, die aus der Verarbeitung (Atomisierung) der Items einer Eingabesequenz gebildet wird

Aufruf/Argumente:

fn:data($eingabesequenz)

$eingabesequenz:
Eine Sequenz aus Items beliebigen Typs, die von der Funktion jeweils atomisiert (in atomare Werte) umgewandelt und mit unveränderter Reihen­folge in eine Ausgabesequenz ausgegeben werden. Ist die Eingabesequenz leer, so wird die leere Sequenz ausgegeben.

Verwendungszweck:

Die Funktion fn:data gibt für die übergebene Eingabe­sequenz eine Sequenz aus entsprechenden atomaren Werten zurück. Hierbei wird ein Item der Eingabe­sequenz, das bereits in atomarer Form vorliegt, unverändert weitergegeben.

Handelt es sich bei dem Item dagegen um einen Knoten (mit einem an diesen gebundenen Schematyp), so wird er atomisiert und eine entsprechende Folge atomarer, typisierter Wert ausgegeben. (Dessen Ermittlung erfolgt gemäß der Anwendung der Accessor-Funktion dm:typed-value aus Formal Semantics.) Besitzt der Knoten kein gültiges typed value-Property, so wird der Fehler "Argument node does not have a typed value" (err:FOTY0012) gemeldet.

Ansonsten wird der jeweils der Ergebnissequenz der Funktion für übergebene Knoten ver­schiedenen Typs angefügte Rückgabewert wie folgt ermittelt:

  • Für Dokumentknoten, Elementknoten, Attributknoten wird jeweils der Wert ihres typed value-Properties zurückgeben
  • Für Kommentarknoten und Processing-Instructions wird jeweils der Wert ihres content-Properties als xs:string ausgegeben.
  • Für Namensraumknoten wird der Wert des uri-Properties als xs:string ausgegeben.
  • Für Textknoten wird der Wert ihres content-Properties als xs:untypedAtomic ausgegeben.

Für Elementknoten gilt im Speziellen:

  • Für Elementknoten vom Typ xs:anyType wird deren Stringwert, und zwar wiederum in Form von xs:untypedAtomic zurückgegeben.
  • Ist das Element als simple type typisiert oder liegt als complex type mit einfachem Inhalt (simple content) vor, wird sein Stringwert mit entsprechender Typverknüpfung zurückgegeben.

    Besitzt ein als complex type deklariertes Element keinen Inhalt, so wird es als leere Sequenz repräsentiert, also in der Ausgabesequenz nicht berücksichtigt. Besitzt es dagegen gemischten Inhalt (mixed content), so wird sein Stringwert als xs:untypedAtomic zurückgegeben.

    Für Elemente, die als complex type mit komplexem Inhalt deklariert sind, ist der typisierte Wert undefiniert. Der Versuch einer Verwandlung in einen ato­maren typisierten Wert ruft daher im Allgemeinen einen Typfehler hervor, der abhängig von der verarbeitenden Laufzeitumgebung behandelt wird.

Für Attributknoten gilt im Speziellen:

  • Attributknoten vom Basistyp xs:anySimpleType werden ebenfalls in Form ihrers Stringwertes, typisiert als xs:untypedAtomic ausgegeben.
  • Attribute eines Listentyps werden als Folge atomarer Werte des entsprechenden Typs ausgegeben, ein Attribut vom Listentyp xs:NMTOKENS zum Beispiel als eine Folge atomarer Werte vom Typ xs:NMTOKEN. Analoges gilt für die Listentypen xs:IDREFS und xs:ENTITIES.

Funktionsdefinition:

XPath 1.0:

Funktion nicht verfügbar

XPath 2.0:

fn:data($arg as item()*) as xs:anyAtomicType*

   

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