XSLT-Funktionen
XSLT-Erweiterungsfunktionen können in XPath-Ausdrücken in einem XSLT-Kontext verwendet werden. In einem Nicht-XSLT-Kontext (z.B. in einem XQuery-Kontext) funktionieren sie nicht.
Anmerkung zur Benennung von Funktionen und zur Anwendbarkeit der Sprache
Altova-Erweiterungsfunktionen können in XPath/XQuery-Ausdrücken verwendet werden. Dadurch stehen neben den Funktionen in der Standardbibliothek der XPath-, XQuery- und XSLT-Funktionen zusätzliche Funktionen zur Verfügung. Die Altova-Erweiterungsfunktionen befinden sich im Altova-Erweiterungsfunktions-Namespace, http://www.altova.com/xslt-extensions und sind in diesem Abschnitt mit dem Präfix altova:, das als an diesen Namespace gebunden angenommen wird, gekennzeichnet. Beachten Sie, dass manche Funktionen in zukünftigen Versionen Ihres Produkts eventuell nicht mehr unterstützt werden oder dass sich das Verhalten einzelner Funktionen ändern kann. Um zu sehen, welche Altova-Erweiterungsfunktionen unterstützt werden, lesen Sie bitte die Dokumentation zur jeweiligen Release.
|
Allgemeine Funktionen
altova:distinct-nodes(node()*) als node()* XSLT1 XSLT2 XSLT3 Erhält eine Gruppe von einem oder mehreren Nodes als Input und gibt dieselbe Gruppe ohne Nodes mit doppelt vorhandenen Werten zurück. Der Vergleich wird mittels der XPath/XQuery-Funktion fn:deep-equal durchgeführt.
|
altova:evaluate(XPathExpression as xs:string[, ValueOf$p1, ... ValueOf$pN]) XSLT1 XSLT2 XSLT3 Erhält einen XPath-Ausdruck als obligatorisches Argument, der als String übergeben wird, und gibt das Resultat des ausgewerteten Ausdrucks zurück. Beispiel: altova:evaluate('//Name[1]') gibt den Inhalt des ersten Name Elements im Dokument zurück. Beachten Sie, dass der Ausdruck //Name[1] durch Einschließen in einfache Anführungszeichen als String übergeben wird.
Die Funktion altova:evaluate kann zusätzliche (optionale) Argumente erhalten. Diese Argumente sind die Werte der einzelnen im Geltungsbereich befindlichen Variablen und haben die Namen p1, p2, p3... pN. Beachten Sie zur Verwendung die folgenden Punkte: (i) Die Variablennamen müssen die Form pX haben, wobei X eine Ganzzahl ist; (ii) die Argumente der Funktion altova:evaluate (siehe Signatur oben) liefern vom zweiten Argument an die Werte der Variablen, wobei die Reihenfolge der Argumente der numerisch geordneten Variablensequenz entspricht: p1 bis pN. Das zweite Argument wird der Wert der Variablen p1, das dritte Argument der der Variablen p2, usw.; (iii) Die Werte der Variablen müssen vom Typ item* sein Beispiel
Die altova:evaluate() Erweiterungsfunktion ist in Situationen nützlich, in denen ein XPath-Ausdruck im XSLT-Stylesheet einen oder mehrere Teile enthält, die dynamisch ausgewertet werden müssen. Angenommen ein Benutzer gibt seinen Request für das Sortierkriterium ein und das Sortierkriterium ist im Attribut UserReq/@sortkey. gespeichert. Im Stylesheet könnten Sie den folgenden Ausdruck haben: <xsl:sort select="altova:evaluate(../UserReq/@sortkey)" order="ascending"/> Die altova:evaluate() Funktion liest das sortkey Attribut des UserReq Child-Elements des Parent des Kontext-Node. Angenommen der Wert des sortkey Attributs ist Price, dann wird von der altova:evaluate() Funktion Price zurückgegeben und wird zum Wert des select Attributs: <xsl:sort select="Price" order="ascending"/>. Wenn diese sort Anweisung im Kontext eines Elements namens Order vorkommt, dann werden die Order Elemente nach den Werten Ihrer Price Children sortiert. Alternativ dazu, wenn der Wert von @sortkey z.B. Date ist, werden die Order Elemente nach den Werten ihrer Date Children sortiert. Das Sortierkriterium für Order wird also zur Laufzeit aus dem sortkey Attribut ausgewählt. Diese hätte man mit einem Ausdruck wie dem folgenden nicht bewerkstelligen können: <xsl:sort select="../UserReq/@sortkey" order="ascending"/>. Im oben gezeigten Beispiel wäre das Sortierkriterium das sortkey Attribut selbst, nicht Price oder Date (oder jeder beliebige andere Inhalt von sortkey)
Der statische Kontext enthält Namespaces, Typen und Funktionen - aber keine Variablen - aus der aufrufenden Umgebung. Die Basis-URI und der Standard-Namespace werden vererbt.
|
altova:encode-for-rtf(input als xs:string, preserveallwhitespace als xs:boolean, preservenewlines als xs:boolean) als xs:string XSLT2 XSLT3 Konvertiert den Input-String in Code für RTF. Whitespaces und neue Zeilen werden gemäß dem für die entsprechenden Parameter definierten Booleschen Wert beibehalten.
|
[ Nach oben ]
XBRL-Funktionen
Altova XBRL-Funktionen können nur mit Editionen von Altova-Produkten verwendet werden, die XBRL unterstützen.
altova:xbrl-footnotes(node()) als node()* XSLT2 XSLT3 Erhält einen Node als Input-Argument und gibt die durch den Input-Node referenzierte Gruppe der XBRL-Fußnoten-Nodes zurück.
|
altova:xbrl-labels(xs:QName, xs:string) als node()* XSLT2 XSLT3 Erhält zwei Input-Argumente: einen Node-Namen und den Pfad der Taxonomiedatei, die den Node enthält. Die Funktion gibt die XBRL Labels zurück, die mit dem Input-Node verknüpft sind.
|
[ Nach oben ]