system-property

(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: Information über die Laufzeitumgebung

Herkunft: XSLT 1.0

Rückgabewert: Die Funktion gibt abhängig vom abgefragten Property einen String xs:string zurück, den Wert der entsprechenden Systemeigenschaft.

Aufruf/Argumente:

system-property($propertybezeichner)

$propertybezeichner:
Obligatorisch. Argument ist ein String xs:string, der als QName interpretiert wird. Der Eingabewert muss daher lexikalisch dem Typ xs:QName entsprechen, also einen Rräfixanteil und einen lokalen Bezeichner enthalten. Der QName wird entsprechend dem für den Ort des Aufrufs gültigen Namensraum expandiert. Existiert ein System-Property dieses Namens, so gibt die Funktion dessen Wert zurück, andernfalls einen leeren String.

Verwendungszweck:

Die Funktion gibt den für die Laufzeitumgebung zutreffenden Wert derjenigen Systemeigenschaft als String zurück, deren Bezeichner der Funktion übergeben wurde. Da es sich bei dem Bezeichner um einen QName handeln soll, muss er ein Präfix besitzen.

Standard-Properties mit Präfix xsl: müssen im XSLT-Namensraum sein:

"http://www.w3.org/1999/XSL/Transform" 

Einsatz unter XSLT 1.0:

Ein den Standards entsprechender XSLT-Prozessor unterstützt (mindestens) drei Systemeigenschaftswerte.

  • xsl:version 
    die unterstützte XSLT-Version
  • xsl:vendor
    die Herstellerbezeichnung bzw. der Name des Herstellers
  • xsl:vendor-url
    die Webadresse, unter der der Hersteller erreichbar ist 

Einsatz unter XSLT 2.0:

Für XSLT 2.0 sind die oben aufgelisteten Pro­perties weiterhin gültig. Zusätzlich kommen in dieser Version weitere Properties mit Produkt- bzw. Herstellerangaben hinzu. Ein zu XSLT 2.0 konformer Prozessor muss auch folgende beiden Angaben zur Verfügung stellen – alle anderen (älteren) Prozessoren geben für sie einen leeren String zurück. 

  • xsl:product-name
    vom Hersteller vergebener Name der Implementie­rung
  • xsl:product-version
    deren Versionsnummer

Darüber hinaus werden System-Properties eingeführt, die technische Eigenschaften des Prozessors betreffen. Die Prozessoren werden hierfür in Kategorien wie Basic XSLT Processor oder Schema Aware Processor eingeteilt.

  • xsl:is-schema-aware
    gibt für einen Schema Aware Processor den String "yes" zurück, wenn der Prozessor in der Lage ist, ein Schema (welcher Art auch immer) bei der Verarbeitung zu berücksichtigen. Ein Prozessor, der keine Schemas (möglicherweise jedoch DTDs) berücksichtigen kann, gilt als Basic XSLT Processor. Er gibt für xsl:is-schema-aware den String "no" zurück.
  • xsl:supports-serialization
    hat den Rückgabewert "yes", wenn der Prozessor die Serialisierung gemäß den Spezifikationen unterstützt, andern­falls "no".
  • xsl:supports-backwards-compatibility
    gibt im Fall von Prozesso­ren, die Rückwärtskompatibilität unterstützen, den String "yes" zurück, andernfalls "no".

Weitere Systemeigenschaften dürfen vom Hersteller freiwillig zur Verfügung gestellt werden, allerdings dürfen diese dann nicht im XSLT-Namensraum und demzufolge nicht mit dem Präfix xsl: versehen sein.

Beispiele:

Beispiel 1 – Abfrage der XSLT-Version der Implementierung:

<xsl:value-of select="system-property('xsl:version')"/>

Hier wird mit Hilfe der Funktion der unterstützte XSLT-Versionsstand abge­fragt. Handelt es sich um XSLT 1.0, so wird die Zahl 1 zurückgegeben.

Beispiel 2 – Anweisung vor altem Prozessor verstecken:

<!-- ein XSLT 1.0-Prozessor überspringt dies: -->
<xsl:when test="number(system-property('xsl:version')) &gt;= 2.0">
  <!-- nur für XSLT 2.0-Prozessoren und neuer -->
  ...
</xsl:when>

Hat der Prozessor einen Versionsstand kleiner 2.0, so scheitert der Test und der Prozessor überspringt diesen Block.

Funktionsdefinition:

XSLT 1.0:

system-property(string) => object

XSLT 2.0:

system-property($property-name as xs:string) as xs:string

Mögliche Kompatibilitätsprobleme XSLT 2.0 zu XSLT 1.0:
Beide Versionen verhalten sich identisch, abgesehen von der Zahl unterstützter Pro­perties. Ein XSLT-Prozessor, der bei der Versionsabfrage den Wert »2.0« zurückgibt, muss der Spezifikation jedoch in vollem Umfang entsprechen.

   

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