Sammlung von Attributdeklarationen – xsl:attribute-set

(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 2.)

Die Deklaration xsl:attribute-set definiert ein benanntes Attributset, also eine Kollektion aus Attributen, die gemeinsam einem Ziel-Element zugewiesen werden können. Im Inneren von xsl:attribute-set befinden sich deshalb ein oder mehrere xsl:attribute-Instruktionen. Mit dem name-Attribut wird das Attributset benannt und kann über diesen Namen vom Zielelement aus mit einem dort vorhandenen Attribut use-attribute-set aufgerufen werden.

Vorteile des Attributsets

Der Vorteil eines Attributsets ist die Gewährleistung der Konstanz der gesetz­ten Attribute über alle Elemente, für die diese Kollektion von Attributen einge­setzt werden soll. Das Attributset muss nur einmal gebildet werden, spart somit Schreibarbeit im Quelltext und ist leicht erweiterbar:

<xsl:attribute-set name="set_name">
  <xsl:attribute name="attr_name">
    <!-- Sequenzkonstruktor für Attributwert -->
  </xsl:attribute>
  <xsl:attribute name="anderer_attr_name">
    <!-- Sequenzkonstruktor für Attributwert -->
  </xsl:attribute> ...
</xsl:attribute-set>

Das folgende Beispiel deklariert ein mit "bildstyle" benanntes Attributset und verwendet es in einer Template-Regel, die ein HTML-<img> erzeugt:

<xsl:attribute-set name="bildstyle">
  <xsl:attribute name="hspace">10</xsl:attribute>
  <xsl:attribute name="vspace">5</xsl:attribute>
  <xsl:attribute name="align">left</xsl:attribute>
</xsl:attribute-set>
<xsl:template match="bild">
  <img xsl:use-attribute-sets="bildstyle">
    <xsl:attribute name="src">
      <xsl:value-of select="unparsed-entity-uri(@quelle)"/>
    </xsl:attribute>
  </img> 
</xsl:template>

Das use-attribute-set-Attribut im Literal Result Element <img> benötigt das Präfix xsl:, da es als XSLT-Attribut ausgewertet und nicht kopiert werden soll. Für dieses Attribut darf kein Attributwert-Template verwendet werden.

Im Ergebnisdokument:

...
<img src="mein_bild.gif" align="left" hspace="10" vspace="5"/>
...

Anstatt Knoten neu zu erzeugen, genügt es oft, sie zu kopieren. XSLT stellt zwei prinzipielle Möglichkeiten hierfür zur Verfügung.

   

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