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:xquery
<p:declare-step type="p:xquery">
<p:input port="source" sequence="true" primary="true"/>
<p:input port="query"/>
<p:input port="parameters" kind="parameter"/>
<p:output port="result" sequence="true"/>
</p:declare-step>
Durch den <p:xquery>-Step ist es möglich, XQuery-Prozeduren auszuführen. Das zu verarbeitende Dokument wird am entprechenden Input-Port (“source“) eingelesen. Der eigentliche XQuery-Aufruf ist am Input-Port “query“ zu definieren (z.B. durch <p:inline>, dann aber in einem <c:query>-Element, oder durch eine Referenz auf ein XQuery-Dokument via <p:document>). Gesetzt den Fall, dass dem Aufruf zusätzliche Parameter zugewiesen werden müssen, werden diese am Input-Port “parameters“ eingetragen. Das Resultat wird am Output-Port “result“ ausgegeben. Die Abfragesprache XQuery ist ein W3C-Standard. Weitere Informationen zu XQuery finden Sie auf der parsQube-Homepage.
Beispiel
Im folgenden Beispiel wird ein simpler XQuery-Aufruf durchgeführt. Es sollen sämtliche Autoren ausgegeben 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" sequence="true"/>
<p:xquery>
<p:input port="query">
<p:inline>
<c:query>/FilmSammlung/Film/Autor</c:query>
</p:inline>
</p:input>
<p:input port="parameters">
<p:empty/>
</p:input>
</p:xquery>
</p:declare-step>
Im entsprechenden <c:xquery>-Element können beliebig komplexe XQuery-Aufrufe definiert werden. Sie müssen allerdings als Resultat eine Sequenz von Dokumenten ausgeben. Andernfalls würde es einen dynamischen Fehler zur Folge haben.
Tipp der data2type-Redaktion: Zum Thema XProc bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |