fn:seconds-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 Dezimalzahl xs:decimal, die dem Wert der Sekunden und Sekundenbruchteile des übergebenen, in kanonische Form umgewandel­ten Zeitdauerwertes entspricht.

Aufruf/Argumente:

fn:seconds-from-duration($zeitdauerwert)

$zeitdauerwert:
Optional. Eine Zeitdauerangabe vom Typ xs:duration, aus welcher der Wert der Sekundenkomponente extrahiert wird. Ist das Argument die leere Sequenz, so gibt die Funktion eine leere Ergebnissequenz zurück.

Verwendungszweck:

Die Funktion nimmt einen Zeitdauerwert xs:duration entgegen, aus dem durch Entfernung eventueller Jahres- und Monatskomponenten ein Wert xs:dayTimeDura­tion ermittelt wird. Dieser wird gegebenenfalls in die kanonische Form PnDTnHnMnS gebracht.

Zurückgegeben wird eine Dezimalzahl, die der Sekundenkomponente (ganze Sekunden und -bruchteile) eines Zeit­dauerwertes xs:dayTimeDura­tion entspricht, sofern der Wert in kanonischer Form vorliegt. Alle anderen Komponenten (Tage, Stunden, Minuten) werden verworfen.

Hat der Eingangswert den Typ xs:yearMonthDuration, so ist nach Umwandlung in den Typ xs:dayTimeDura­tion der Rückgabewert 0, da in diesem Fall keine Sekundenkomponente enthalten ist.

Liegt der Wert xs:dayTimeDura­tion nicht in kanonischer Form PnDThHmMsS (mit n beliebig, h, m, s < 60) vor, so werden seine Komponenten zunächst in kanonische Form gebracht. Dies erfolgt, sofern möglich, durch Umrechnung jeder einzelnen Komponente in ganzzahlige Werte der nächstgrößeren Komponente unter Beibehaltung des Restwertes (Beispiel: PT130S wird zu PT2M10S). Für negative Zeitdauerwerte ist der zurückgegebene Wert entsprechend negativ.

Beispiele:

Beispiel 1 – Sekunden aus kanonischem Zeitdauerwert:

fn:seconds-from-duration(
           xs:dayTimeDuration("P5DT12H30M25.8S")
   )

ergibt 25.8.

Der Zeitdauerwert liegt bereits in kanonischer Form vor, der Wert der Sekun­denkomponente kann also unmittelbar als xs:decimal ausgegeben werden.

Beispiel 2 – Sekunden aus nicht kanonischem Zeitdauerwert:

fn:seconds-from-duration(
           xs:dayTimeDuration("-PT130S")
   )

ergibt -10.0.

Die Kanonisierung des Wertes erfolgt durch eine Umrechnung des vorliegen­den Sekundenwertes in Minuten und Sekunden (-P2M10S). Der ausgegebene Wert ist negativ, da der Eingabewert negativ ist. An das ganzzahlige Ergebnis wird eine Nachkommastelle angehängt, um dem Ausgabetyp xs:decimal gerecht zu werden.

Funktionsdefinition:

XPath 1.0:

Funktion nicht verfügbar

XPath 2.0:

fn:seconds-from-duration($arg as xs:duration?)
                          as xs:decimal?

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