Optionen

Fast jeder Step verfügt über Optionen. Sie werden über Attribute des jeweiligen Elements realisiert. Sie nehmen Einfluss auf das Verhalten des Steps.

p:option

<p:option
  name = QName
  required? = boolean
  select = XPathExpression />
 

Eine Option hat immer einen Namen. Ist das boolsche Flag “required“ auf “true“ gesetzt, so ist die Angabe verpflichtend (erzeugt sonst einen Static Error). Einige Optionen haben sogenannte “Default“ Werte, also vordefinierte Angaben. Diese werden durch einen entsprechenden XPath Ausdruck definiert.

BEISPIEL

Im folgenden Beispiel wird anhand des Atomic Steps <p:delete> eine Option gezeigt.

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

<p:delete> verlangt eine Option namens “match“. Dies ist ersichtlich weil das boolsche Flag required auf “true“ steht.

<?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:delete match="/FilmSammlung/Film/Cast"/>
</p:declare-step>
 

Wird kein Wert im Attribut “match“ angegeben, würde dies zu einem Static Error führen.

p:WITH-Option

<p:with-option
  name = QName
  select = XPathExpression>
   ((p:empty |
   p:pipe |
   p:document |
   p:inline |
   p:data)? &amp;
  p:namespaces*)
</p:with-option>
 

Durch <p:with-option> können innerhalb eines Steps Optionen zugewiesen werden. Dem Attribut “name“ wird die gewünschte Option zugewiesen und “select“ der entsprechende Wert. Da hier ein XPath Ausdruck verlangt wird, kann eine Pipeline stark an Dynamik zunehmen.

Beispiel

Im folgenden Beispiel wird der Step <p:filter> durch <p:with-option> bedient.

<?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" sequence="true"/>
  <p:filter>
     <p:with-option name="select" select="'/FilmSammlung/Film/Titel'">
  </p:with-option>
  </p:filter>
</p:declare-step
 

Um sicherzustellen das der XPath Ausdruck im select Attribut nicht aufgelöst wird, da <p:filter> selbst einen XPath Ausdruck erwartet, wird in diesem Beispiel der Ausdruck durch entsprechende ‘ ‘ - Zeichen maskiert. So wird dem XProc Prozessor mitgeteilt das er den eingetragenen Wert nicht als XPath Ausdruck behandeln darf, sondern lediglich als Zeichenkette.

 

<< zurück vor >>