Variablen

Im Folgenden wird der Umgang mit Variablen in XProc vorgestellt.

p:variable

<p:variable
  name = QName
  select = XPathExpression>
   ((p:empty |
   p:pipe |
   p:document |
   p:inline |
   p:data)? &
  p:namespaces*)
</p:variable>

Variablen können nur in Compound Steps erzeugt werden. Sie beinhalten Werte, die über einen entsprechenden XPath-Ausdruck definiert werden. Der Name einer Variable muss ein QName sein. Sie lassen sich dann innerhalb dieses Steps weiterverwenden. Weiterhin können sie mit <p:empty>, <p:pipe>, <p:document>, <p:inline> oder <p:data> beladen werden (das “select“-Attribut extrahiert dann die gewünschten Inhalte und speichert sie in die Variable).

Beispiel

Im folgenden Beispiel wird der Einsatz von <p:variable> demonstriert.

<?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:inline>
      <block>
        <dateiname>test.xml</dateiname>
        <text>Das ist nur ein kleiner Beispieltext.</text>
      </block>
    </p:inline>
  </p:input>
  <p:output port="result">
    <p:empty/>
  </p:output>
  <p:group>
    <p:variable name="Inline" select="block/dateiname"/>
    <p:identity/>
    <p:store>
      <p:with-option name="href" select="$Inline"/>
    </p:store>
  </p:group>
</p:declare-step>

Im Beispiel wird durch <p:inline> ein XML-Dokument erzeugt. Dieses trägt im Element “dateiname“ einen Wert, der der Variable zugewiesen werden soll. Um eine Variable anlegen zu können, muss sie sich innerhalb eines Compound Steps befinden. Deswegen wird <p:group>, ein Compound Step, als umschließendes Element verwendet. Die Variable erhält den Namen “Inline“ und als Wert “text.xml“, dies entspricht dem Rückgabewert des angegebenen XPath-Ausdrucks. Der <p:identity>-Step gibt den gesamten Inhalt von <p:inline> wieder aus. Dieser ist dann Inhalt für <p:store>, der diesen speichert. Als Dateiname wird der in der Variable gespeicherte Wert verwendet. Durch das voranstehende Dollarzeichen wird der Inhalt der Variable aufgelöst und kann somit als Dateiname verwendet werden.

Das Resultat dieser Pipeline sieht folgendermaßen aus:

<block xmlns:c="http://www.w3.org/ns/xproc-step">
   <dateiname>test.xml</dateiname>
   <text>Das ist nur ein kleiner Beispieltext.</text>
</block>

Das gezeigte Resultat ist der Inhalt der von der Pipeline erzeugten Datei “text.xml“.

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XProc bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: