XProc

XProc

XProc (von englisch XML Processing) ist eine vom W3C standardisierte XML-Sprache zur Definition von Verarbeitungsketten für XML-Dokumente (sogenannter XML-Pipelines). Sie ist seit Mai 2010 W3C-Empfehlung und dient dem vermehrten Bedarf der Massenverarbeitung von Formaten, die auf XML basieren, wie beispielsweise docx.

Inhaltsverzeichnis

Nutzen

Bei der Verarbeitung von XML-Dokumenten folgen typischerweise verschiedene Schritte aufeinander. Beispielsweise könnte bei der Veröffentlichung einer Bedienungsanleitung das DocBook-Quelldokument zuerst gegen ein RelaxNG-Schema validiert und anschließend mit XSLT in eine HTML- und eine PDF-Version umgewandelt werden. Solche Verarbeitungsketten können mit XProc – unabhängig von der verwendeten Software und plattformneutral – als XML-Dokumente beschrieben werden. XProc-Prozessoren können auf der Basis von XProc-Dokumenten die beschriebenen Verarbeitungsketten abarbeiten.

Dies ist auch nützlich, wenn auf eine große Menge an identischen XML-Dokumenten eine oder weitere Operation(en), wie zum Beispiel die Umbenennung eines XML-Elementes, vorgenommen werden sollen.

Aufbau einer XProc-Pipeline

Der Code einer XProc-Pipeline wird in XML-Syntax beschrieben, welche dann von einem Interpreter eingelesen und verarbeitet wird. Ausgehend vom Konzept eines wohlgeformten XML-Dokumentes besitzt eine XProc-Pipeline immer ein Wurzelelement. Innerhalb von diesem Wurzelelement ist dem Dokument mindestens einer der drei XProc-Namensräume zugeordnet. Zentrale Elemente der Pipeline sind die Schritte, welche, vom Wurzelelement umschlossen, beschrieben und sequentiell verarbeitet werden. Eine Pipeline kann 0 oder mehr XML-Dokumente einlesen und 0 oder mehr XML-Dokumente ausgeben.

Schritte (Steps)

Schritte oder auch Steps sind Zentrale Elemente einer durch XProc beschriebenen XML-Pipeline. Es gibt drei Arten von Schritten:

  • Atomare Schritte (Atomic Steps)

Diese führen genau eine Verarbeitung bzw. Operation aus, wie zum Beispiel das Umbenennen oder Löschen eines Elementes innerhalb des XML-Dokumentes.

  • Zusammengensetzer Schritt (Compound Step)

Schritte können auch zusammengefügt werden, was dann als Zusammengesetzter Schritt (Compound Step) bezeichnet wird. Eine Pipeline, die ja auch nur auf einer bestimmten Anzahl von Schritten basiert, wird demzufolge in eine andere integriert, was auch als Subpipeline bezeichnet wird. Mithilfe von diesem Schritt lassen sich komplexere Strukturen wie unter anderem Schleifen konzipieren.

  • Mehrfachschritte (Multi-Container Steps)

Mithilfe dieser Schritte ist die Erstellung parallel definierter Subpipelines möglich, wodurch unter anderen Konstrukte zur Fehlerkontrolle beschrieben werden können.

Ports

Eingaben und Ausgaben der Schritte einer XProc-Pipeline werden mithilfe von Ports realisiert. Primary Ports dienen zur automatisierten Verbindung der einzelnen Schritte untereinander oder dieser mit der Pipeline (beim ersten oder letzten Schritt) und müssen nicht unbedingt benannt werden. Es wird von einer impliziten Angabe der Primary Ports gesprochen, wenn diese automatisiert verwendet werden. Demzufolge handelt es sich bei dem gegenteiligen Fall um eine explizite Bennung, d.h. der Primary Port wird angegeben. Die Ports haben dabei eindeutige Namen, wie zum Beispiel source als primären Eingabeport (input port) oder result als primären Ausgabeport (output port). Ein weiterer Port wäre unter anderem schema für XML Schema Dateien.

Namensräume

XProc verwendet intern drei Namensräume. Der Namensraum http://www.w3.org/ns/xproc (per Konvention mit dem Präfix p:) beschreibt das XML-Vokabular von XProc. Der Namensraum http://www.w3.org/ns/xproc-step (per Konvention mit dem Präfix c:) wird für Dokumente verwendet, die innerhalb einer Verarbeitungskette als definierte Ein- oder Ausgabe einzelner Schritte erzeugt werden – unabhängig von den Namensräumen der verarbeiteten externen Dokumente. Schließlich dient der Namensraum http://www.w3.org/ns/xproc-error (per Konvention mit dem Präfix err:) der Verarbeitung von Fehlern.

Beispiel

<p:pipeline name="pipeline" xmlns:p="http://www.w3.org/ns/xproc">
  <p:input port="schemas" sequence="true"/>
 
  <p:xinclude name="included">
    <p:input port="source">
      <p:pipe step="pipeline" port="source"/>
    </p:input>
  </p:xinclude>
 
  <p:validate-with-xml-schema name="validated">
    <p:input port="source">
      <p:pipe step="included" port="result"/>
    </p:input>
    <p:input port="schema">
      <p:pipe step="pipeline" port="schemas"/>
    </p:input>
  </p:validate-with-xml-schema>
</p:pipeline>

Dies ist eine Pipeline, die aus zwei Teilen bzw. atomaren Schritten besteht, XInclude und Validate. Die Pipeline selbst hat zwei Eingaben, source (ein Quelldokument) und schema (eine Liste von W3C XML-Schemas). Der XInclude-Schritt liest den Pipeline-Input source aus und produziert ein Ergebnisdokument. Der Validate-Schritt liest die Pipeline-Eingabe schemas und das Ergebnis des XInclude-Verarbeitungsschrittes und produziert ein Ergebnisdokument. Das Ergebnis der Validierung, result, ist das Ergebnis der Verarbeitungskette.

Dieselbe Pipeline kann verkürzt formuliert werden, wenn deren Primary Ports implizit angegeben sind:

<p:pipeline name="pipeline" xmlns:p="http://www.w3.org/ns/xproc">
  <p:input port="schemas" sequence="true"/>
 
  <p:xinclude/>
 
  <p:validate-with-xml-schema>
    <p:input port="schema">
      <p:pipe step="pipeline" port="schemas"/>
    </p:input>
  </p:validate-with-xml-schema>
</p:pipeline>

Implementierungen

Siehe auch

Weblinks


Wikimedia Foundation.

Игры ⚽ Нужно сделать НИР?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • XProc — Расширение .xpl MIME application/xml Разработан World Wide Web Consortium Тип формата Язык описания стилей Расширен из XML Стандарт(ы) …   Википедия

  • XProc — Pipeline Extension .xpl Type MIME application/xproc+xml[1] Développé par World Wide Web Consortium Type de format …   Wikipédia en Français

  • XProc — infobox file format name = XProc extension = .xpl mime = application/xml owner = [http://www.w3.org/ World Wide Web Consortium] creatorcode = genre = Stylesheet language containerfor = containedby = extendedfrom = XML extendedto = standard =… …   Wikipedia

  • XML pipeline — In computer science, an XML Pipeline is formed when XML (Extensible Markup Language) processes, sometimes called XML transformations, are connected together.For instance, given two transformations T1 and T2, the two can be connected together so… …   Wikipedia

  • Quine (informatique) — Pour les articles homonymes, voir Quine. Un quine en informatique est un programme (une sorte de métaprogramme) dont la sortie et le code source sont identiques. À titre de défi ou d amusement, certains programmeurs essaient d écrire le plus… …   Wikipédia en Français

  • XML Pipeline — Eine XML Pipeline wird gebildet, wenn mehrere XML (Extensible Markup Language) Prozesse wie Transformationen und Validierungen miteinander verbunden werden. Zum Beispiel können zwei Transformationen, T1 und T2, so miteinander verbunden werden,… …   Deutsch Wikipedia

  • Langage De Transformation XML — Un langage de transformation XML est un langage de programmation créé spécifiquement pour créer toute forme de document en sortie à partir d un document XML en entrée. Il y a deux cas spécifiques de transformation : XML vers XML : le… …   Wikipédia en Français

  • Langage de transformation XML — Un langage de transformation XML est un langage de programmation créé spécifiquement pour créer toute forme de document en sortie à partir d un document XML en entrée. Il y a deux cas spécifiques de transformation : XML vers XML : le… …   Wikipédia en Français

  • Langage de transformation xml — Un langage de transformation XML est un langage de programmation créé spécifiquement pour créer toute forme de document en sortie à partir d un document XML en entrée. Il y a deux cas spécifiques de transformation : XML vers XML : le… …   Wikipédia en Français

  • Transformation XML — Langage de transformation XML Un langage de transformation XML est un langage de programmation créé spécifiquement pour créer toute forme de document en sortie à partir d un document XML en entrée. Il y a deux cas spécifiques de… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”