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

        <p:viewport
          name? = NCName
          match = XSLTMatchPattern>
          ((p:viewport-source? &amp;
          p:output? &amp;
          p:log?),
          subpipeline)
        </p:viewport>
 

Durch den <p:viewport> Compound Step lassen sich bestimmte Teile eines Dokuments durch einen entsprechenden XSLT Ausdruck selektieren, um diese dann in einer Subpipeline verarbeiten zu können. Alternativ kann auch durch <p:viewport-source> der gewünschte Inhalt bereitgestellt werden.

        <p:viewport-source>
          (p:pipe |
          p:document |
          p:inline |
          p:data)?
        </p:viewport-source>
 

<p:viewport-source> steht nur als Teil von <p:viewport> zur Verfügung. Es muss hier zwingend ein Dokument angegeben werden. Dies kann durch die Elemente <p:pipe>, <p:document>, <p:inline> oder <p:data> realisert werden. Wird kein Dokument angegeben, wird ein dynamischer Fehler erzeugt.

Beispiel

Im folgenden Beispiel soll nur ein Teil des initalen Dokuments verarbeitet 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:viewport match="/FilmSammlung/Film/Titel">
            <p:wrap match="/" wrapper="test"></p:wrap>
          </p:viewport>
        </p:declare-step>
 

Der XSLT Ausdruck im Attribut “match“ von Step <p:viewport> adressiert sämtliche “Titel“ Elemente vom Quelldokument. Dieser Teil des Dokuments wird nun in die Subpipeline von p:viewport, im Beispiel lediglich der Step <p:wrap>, weitergeleitet. Dort werden sämtliche “Titel“ Elemente in “test“ umbenannt.