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
<p:declare-step type="p:add-attribute"> <p:input port="source"/> <p:output port="result"/> <p:option name="match" required="true"/> <!-- XSLTMatchPattern --> <p:option name="attribute-name" required="true"/> <!-- QName --> <p:option name="attribute-prefix"/> <!-- NCName --> <p:option name="attribute-namespace"/> <!-- anyURI --> <p:option name="attribute-value" required="true"/> <!-- string --> </p:declare-step>
Der <p:add-attribute> Step fügt an einer, durch einen XSLT Ausdruck definierten Stelle einem Element ein Attribut hinzu. Das Dokument, dem das Attribut hinzugefügt wird, wird am Input-Port (“source“) angegeben. Das Resultat der Prozedur wird über den Output Port (“result“) ausgegeben. Das Attribut wird über entsprechende Options des Steps erstellt. Mittels “match“ wird durch einen XSLT Ausdruck der gewünschte Standort des Attributs festgelegt. “attribute-name“ legt den Namen des Attributs fest. Weiterhin können durch “attribute-prefix“ ein Prefix und mittels “attribute-namespace“ ein Namensraum angegeben werden. In “attribute-value“ wird der gewünschte Inhalt des Attributs definiert. Die Optionen “match“, “attribute-name“ und “attribute-value“ sind Pflichtangaben, während die anderen Optional sind.
Beispiel
Im folgenden Beispiel wird dem bekannten Eingangsdokument ein Attribut hinzugefügt.
<?xml version="1.0" encoding="UTF-8"?> <p:declare-step xmlns:p="http://www.w3.org/ns/xproc" xmlns:c="http://www.w3.org/ns/xproc-step" version="1.0"> <p:input port="source"> <p:document href="filmsammlung.xml"/> </p:input> <p:output port="result"/> <p:add-attribute attribute-name="Geschlecht" attribute-value="Maennlich" match="/FilmSammlung/Film/Autor"/> </p:declare-step>
Sämtlichen “Autor“ Elementen im Dokument würde nach Ausführen dieses Stylesheets ein Attribut “Geschlecht“, mit dem Wert “Maennlich“ hinzugefügt werden. Durch eine Kombination mit p:with-option und entsprechenden Schleifen, kann der Inhalt der Attribute dynamischer und somit sinnvoller verarbeitet werden. Dazu mehr im kommenden Kapitel.