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:add-xml-base
<p:declare-step type="p:add-xml-base">
<p:input port="source"/>
<p:output port="result"/>
<p:option name="all" select="'false'"/> <!-- boolean -->
<p:option name="relative" select="'true'"/> <!-- boolean -->
</p:declare-step>
Der Step <p:add-xml-base> fügt dem Wurzelelement des zugrundeliegenden Dokuments ein Attribut namens “xml:base“ hinzu und gibt es am Output-Port (“result“) aus. Als Wert beinhaltet es den Pfad im Dateisystem zur ursprünglich eingelesenen Datei am Input-Port (“source“). Ist die boolsche Option “all“ auf “true“, also wahr, gesetzt, wird das “xml:base“-Attribut in jedes Element im Eingangsdokument geschrieben. Wird “relative“ auf “true“ gesetzt, so wird, falls andere Elemente schon ein “xml:base“-Attribut mit einer abweichenden Pfadangabe als die vom Wurzelelement haben, die Pfadangabe im jeweiligen "xml:base"-Attribut relativ dargestellt. Es darf nur jeweils eine der beiden Optionen auf “true“ stehen, andernfalls gibt der Prozessor einen dynamischen Fehler aus.
Beispiel
Es wird lediglich ein <p:identity>-Step durchgeführt. Allerdings mit einem vorgestellten <p:add-xml-base>-Step.
<?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:add-xml-base/>
<p:identity/>
</p:declare-step>
Das Resultat dieser Prozedur sieht folgendermaßen aus (Auszug):
<FilmSammlung xml:base="file:/Users/tg/Documents/XProc/Quellcodes/filmsammlung.xml">
<Film>
<Titel>Star Wars: Episode IV - A New Hope</Titel>
<Jahr>1978</Jahr>
<Genre>SciFi</Genre>
[...]
Tipp der data2type-Redaktion: Zum Thema XProc bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an: |