XProc-Steps

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:set-attributes

<p:declare-step type="p:set-attributes">
   <p:input port="source" primary="true"/>
   <p:input port="attributes"/>
   <p:output port="result"/>
   <p:option name="match" required="true"/> <!-- XSLTMatchPattern -->
</p:declare-step>

Durch den Step <p:set-attributes> können Elemente des Quelldokuments (am Input-Port “source“) mit Attributen erweitert werden. Die Attribute werden am Input-Port “attributes“ definiert. Durch einen XSLT-Ausdruck innerhalb der Option “match“ wird angegeben, wo im Quelldokument Attribute platziert werden sollen. Für den Fall, dass identische Attribute im Quelldokument bereits vorhanden sind, wird diesem Attribut der Wert, der innerhalb des Input-Ports “attributes“ festgelegt wurde, übergeben. Ausgegeben wird das Resultat am Output-Port (“result“).

Beispiel

Im folgenden Beispiel sollen sämtlichen “Regisseur“-Elementen ein Attribut “geschlecht“ mit dem Wert “Männlich“ hinzugefügt werden.

<?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:set-attributes match="/FilmSammlung/Film/Regisseur">
      <p:input port="attributes">
         <p:inline>
            <Regisseur geschlecht="Männlich"></Regisseur>
         </p:inline>
      </p:input>
   </p:set-attributes>
</p:declare-step>

Die Angabe des Attributs wird durch <p:inline> im “attributes“-Port erstellt. Das Resultat dieses Prozesses sieht u.a. folgendermaßen aus (Auszug):

[...]
  <Regisseur geschlecht="Männlich">George Lucas</Regisseur>
[...]
Tipp der data2type-Redaktion:
Zum Thema XProc bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: