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 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“ 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.