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? &
   p:output? &
   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“ vom 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.

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