Java-Erweiterungselement

(Auszug aus "XSLT Kochbuch" von Sal Mangano)

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xalan="http://xml.apache.org/xslt" xmlns:MyExt="xalan://com.AcmeX.MyExtensionElement" extension-element-prefixes="MyExt">
  <xalan:component prefix="MyExt" elements="superExtension">
    <xalan:script lang="javasclass" src=" xalan:// com.AcmeX.MyExtensionElement"/>
  </xalan:component>
  <xsl:template match="*">
    <myExt:superExtension attr1="val1" attr2="val2">
      <!-- ... -->
    <myExt:superExtension>
  </xsl:template>
</xsl:stylesheet>

Die Implementierung muss als Java-Klasse mit einer Methode erfolgen, die folgende Signatur hat:

public class com.AcmeX.MyExtensionElement
{

public SomeType superExtension(
          org.apache.xalan.extensions.XSLProcessorContext ctx,
          org.apache.xalan.templates.ElemExtensionCall extensionElement)
 {
     //...
 }

}

Dabei gibt SomeType den Rückgabetyp an, ctx ist eine Instanz des Verarbeitungskontexts und extensionElement ist der Knoten, der dem Erweiterungselement des Stylesheets entspricht. In der Methodensignatur dürfen Sie auch die Oberklassen der angegebenen Typen verwenden. Die Basisklasse com.AcmeX.MyExtensionElement darf alles sein, was Sie wollen, auch none, wie hier gezeigt wird.

Was auch immer die Funktion zurückgibt, wird in den Ergebnisbaum eingesetzt, ein Effekt, den Sie mit void verhindern können. Im Rezept Erweiterungselemente mit Java hinzufügen finden Sie weitere Details zu den Klassen XSLProcessorContext und ElemExtensionCall.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © 2006 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT Kochbuch" 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.

O'Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de