function-available()-Funktion |
Diese Funktion legt fest, ob eine bestimmte Funktion für den XSLT-Prozessor verfügbar sein soll. Sie erlaubt Ihnen, Stylesheets zu entwerfen, die auch funktionsfähig sind, wenn zum Verarbeiten eines XML-Dokuments eine bestimmte Funktion nicht verfügbar ist.
Eingaben
Der Name der Funktion. Dieser Name ist normalerweise durch einen Namensraum qualifiziert. Ist der Namensraum des Funktionsnamens ungleich Null, so handelt es sich um eine Erweiterungsfunktion. Andernfalls ist die Funktion eine in der XSLT- oder der XPath-Spezifikation definierte Funktion.
Ausgabe
Der Boolesche Wert true, wenn die Funktion verfügbar ist, andernfalls false.
Definition
XSLT-Abschnitt 15, Rückgriff
Beispiel
Das nachfolgende XML-Dokument dient dazu, die Funktion function-available() zu erproben:
    <?xml version="1.0"?>
    <list>
      <title>A few of my favorite albums</title>
      <listitem>A Love Supreme</listitem>
      <listitem>Beat Crazy</listitem>
      <listitem>Here Come the Warm Jets</listitem>
      <listitem>Kind of Blue</listitem>
      <listitem>London Calling</listitem>
      <listitem>Remain in Light</listitem>

      <listitem>The Joshua Tree</listitem>
      <listitem>The Indestructible Beat of Soweto</listitem>
    </list>
Hier das Stylesheet:
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:jpeg="class:JPEGWriter"
      extension-element-prefixes="jpeg">

      <xsl:output method="text"/>

      <xsl:variable name="newline">
    <xsl:text>
    </xsl:text>
      </xsl:variable>

      <xsl:template match="/">
        <xsl:value-of select="$newline"/>
        <xsl:for-each select="list/listitem">
          <xsl:choose>
            <xsl:when test="function-available('jpeg:createJPEG')">
              <xsl:value-of
                select="jpeg:createJPEG(., 'bg.jpg',
                concat('album', position(), '.jpg'),
                'Swiss 721 Bold Condensed', 'BOLD', 22, 52, 35)"/>
              <xsl:text>See the file </xsl:text>
              <xsl:value-of select="concat('album', position(), '.jpg')"/>
              <xsl:text> to see the title of album #</xsl:text>
              <xsl:value-of select="position()"/>
              <xsl:value-of select="$newline"/>
            </xsl:when>
            <xsl:otherwise>
              <xsl:value-of select="position()"/>
              <xsl:text>. </xsl:text>
              <xsl:value-of select="."/>
              <xsl:value-of select="$newline"/>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:for-each>
      </xsl:template>

    </xsl:stylesheet>
Im Stylesheet wird die Funktion createJPEG(), wenn sie verfügbar ist, aufgerufen, um JPEG-Dateien für die Titel aller Lieblingsalben zu erstellen. Ist die Funktion nicht verfügbar, werden einfach die Titel in den Ausgabestrom geschrieben. Hier die erzielten Ergebnisse, wenn die Funktion createJPEG() verfügbar ist:
    See the file album1.jpg to see the title of album #1
    See the file album2.jpg to see the title of album #2
    See the file album3.jpg to see the title of album #3
    See the file album4.jpg to see the title of album #4
    See the file album5.jpg to see the title of album #5
    See the file album6.jpg to see the title of album #6
    See the file album7.jpg to see the title of album #7
    See the file album8.jpg to see the title of album #8
Alle Albumtitel (der Text der <listitem>-Elemente) werden in JPEG-Grafiken konvertiert. In diesem Beispiel sieht die Datei album8.jpg wie in Abbildung C-3 aus. Generierte Grafik für das achte <listitem>-Element Wenn Sie die Datei JPEGWriter.class löschen (wenn die .class-Datei fehlt, ist die Funktion nicht verfügbar), erhalten Sie stattdessen folgende Ergebnisse:
    1. A Love Supreme
    2. Beat Crazy
    3. Here Come the Warm Jets
    4. Kind of Blue
    5. London Calling
    6. Remain in Light
    7. The Joshua Tree
    8. The Indestructible Beat of Soweto