- 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) undschema
(eine Liste von W3C XML-Schemas). Der XInclude-Schritt liest den Pipeline-Inputsource
aus und produziert ein Ergebnisdokument. Der Validate-Schritt liest die Pipeline-Eingabeschemas
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
- Calabash von Norman Walsh
- EMC Documentum XProc Engine
- QuiXProc von Innovimax
- yax - eine XProc (XML Pipeline) Implementierung. Noch basierend auf einem XProc- Arbeitsentwurf
Siehe auch
Weblinks
- XProc: An XML Pipeline Language – W3C-Empfehlung (englisch)
- XProc-Einführung auf Deutsch
- XProc-Referenz auf Deutsch
- XFront. XProc Tutorial (englisch)
- Wirelt - Grafischer XProc Editor
- An introduction to Xproc: An XML Pipeline Language. Ein weiteres Tutorial (englisch)
- XProc Introduction. Kurze Übersicht zu XProc (englisch)
- XProc-Tutorial auf Deutsch
- Dokumentation zum Entwurf einer komplexeren XProc Pipeline
Standards des World Wide Web ConsortiumsEmpfehlungen (Recommendations): ATAG | Canonical XML | CSS | CharMod | CC/PP | DDR Simple API | DOM | EXI | Element Traversal | EMMA | GRDDL | HTML | ITS | MathML | OWL | P3P | PICS | PLS | PNG | POWDER | RDF | RDF-Schema | Ruby | SISR | SKOS | SML | SMIL | SOAP | SOAP MTOM | SPARQL | SRGS | SSML | SVG | SSML | UAAG | VoiceXML | WCAG | Webarch | WebCGM | WSDL | WS-Adressing | WS-Policy | XHTML | XML | XInclude | XKMS | XLink | XML Base | XMLEnc-Decrypt | XML Events | XML Information Set | XML Namespace | XML Schema | XML Signature | XOP | XForms | XPath | XPointer | XProc | XQuery | XSL | XSLT
Arbeitsentwürfe (Working Drafts) und Kandidaten (Candidate Recommendations): Capture API | CCXML | CDF | Clipboard API | Contacts API | Cross-Origin Resource Sharing | CURIE | EARL | File API | HTML5 | HTML Canvas | HTML Microdata | Indexed Database API | InkML | LTLI | RIF | Selectors API | System Information API | WAI-ARIA | Web IDL | Web Sockets API | Web SQL Database | WICD | Widgets | XFrames | XBL
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