fn:years-from-duration

(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: Wertextraktion aus Zeitwerten, Datumswerten und Dauer

Herkunft: XPath 2.0

Rückgabewert: Eine Ganzzahl xs:integer, die dem Wert der Jahreskompo­nente des Eingabewertes entspricht.

Aufruf/Argumente:

fn:years-from-duration($zeitdauerwert)

$zeitdauerwert:
Eine Zeitdauerangabe xs:duration, aus der, nach Umwandlung in den Typ xs:yearMonthDuration in seiner kanonischen Form PnYmM, der so resultierende Wert der Jahreskomponente extrahiert wird. Wird die leere Sequenz übergeben, so gibt die Funktion eine leere Ergebnissequenz zurück.

Verwendungszweck:

Die Funktion gibt eine Ganzzahl zurück, die dem Wert der Jahreskomponente eines Zeitdauerwertes ergibt, nach Überführung des Eingabewerts, der als beliebiger Typ xs:duration vorliegen darf, in die kanonische Form von xs:yearMonthDuration. Dies geschieht durch Entfernen der Tages-, Stunden-, Minuten und Sekundenkomponenten aus dem Zeitdauerwert mit anschließender Kanonisierung.

Wurde ein Typ xs:dayTimeDuration übergeben, so kann dieser zwar in den geforderten Typ xs:yearMonthDuration umgewandelt werden – dessen Komponenten besitzen jedoch alle den Wert 0, weshalb die Funktion für die Jahreskomponente folgerichtig den Wert 0 zurückgibt.

Liegt ein übergebener Wert xs:yearMonthDuration nicht in kanonischer Form PnYmM (mit n beliebig, m < 12) vor, so werden die Komponenten zunächst in kanonische Form gebracht. Dies geschieht durch die Umrechnung der Monatskomponente in ganzzahlige Werte der Jahreskomponente.

Der extrahierte Wert ergibt sich aus der Summe aller Komponenten, deren Werte sich auf mindestens ein Jahr belaufen, also der Y-Komponente sowie der M-Komponente bei Werten größer gleich 12. Restwerte der M-Komponente wer­den verworfen. Der Ergebniswert ist für negative Zeitdauerwerte entsprechend negativ.

Beispiele:

Beispiel 1 – Jahre aus positivem Zeitdauerwert:

fn:years-from-duration(xs:yearMonthDura­tion("P22Y18M"))

ergibt den Wert 23, entsprechend 22 Jahre + 12 Monate + 6 Monate. Der Rest des Zeitdauerwertes wird verworfen.

Beispiel 2 – Jahre aus negativem Zeitdauerwert:

fn:years-from-duration(xs:yearMonthDuration("-P18M"))

ergibt den Wert -1, entsprechend -(12 Monate + 6 Monate). Der Rest des Zeit­dauerwertes wird auch hier verworfen.

Funktionsdefinition:

XPath 1.0:

Funktion nicht verfügbar

XPath 2.0:

fn:years-from-duration($arg as xs:duration?) as xs:integer?

   

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