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
      [...]