Potrubí XML - XML pipeline
v software, an Potrubí XML se tvoří, když XML (Extensible Markup Language) procesy, zejména Transformace XML a Ověření XML, jsou připojeny.
Například vzhledem ke dvěma transformacím T1 a T2, lze tyto dva propojit tak, že vstupní XML dokument transformuje T1 a pak výstup T1 je vložen jako vstupní dokument do T2. Jednoduché kanály, jako je ten popsaný výše, se nazývají lineární; jeden vstupní dokument vždy prochází stejnou posloupností transformací, aby vytvořil jeden výstupní dokument.
Lineární operace
Lineární operace lze rozdělit alespoň na dvě části
Mikrooperace
Fungují na úrovni vnitřního dokumentu
- Přejmenovat - přejmenuje prvky nebo atributy bez úpravy obsahu
- Nahradit - nahradí prvky nebo atributy
- Vložit - přidá nový datový prvek do výstupního proudu v zadaném bodě
- Vymazat - odebere prvek nebo atribut (také známý jako prořezávání vstupního stromu)
- Zabalit - zabalí prvky dalšími prvky
- Přeobjednat - změní pořadí prvků
Dokumentové operace
Berou vstupní dokument jako celek
- Transformace identity - vytvoří doslovnou kopii svého vstupu na výstup
- Porovnat - to trvá dva dokumenty a porovnat je
- Přeměnit - provést transformaci vstupního souboru pomocí zadaného XSLT soubor. Je třeba zadat verzi 1.0 nebo 2.0.
- Rozdělit - vezměte jeden dokument XML a rozdělte jej na různé dokumenty
Sekvenční operace
Jsou představeny hlavně v XProc a pomůže zvládnout sekvenci dokumentu jako celku
- Počet - trvá sekvence dokumentů a počítá je
- Transformace identity - vytvoří na výstup doslovnou kopii své vstupní posloupnosti dokumentů
- rozdělená sekvence - vezme posloupnost dokumentů jako vstup a směruje je na různé výstupy v závislosti na shodných pravidlech
- zavinovací sekvence - vezme posloupnost dokumentů jako vstup a zabalí je do jednoho nebo více dokumentů
Nelineární
Nelineární operace na potrubí mohou zahrnovat:
- Podmíněné - kde je daná transformace provedena, pokud je splněna podmínka, zatímco jiná transformace je provedena jinak
- Smyčky - kde je transformace provedena na každém uzlu sady uzlů vybrané z dokumentu nebo je provedena transformace, dokud není podmínka vyhodnocena jako nepravdivá
- Trička - kde je dokument přiváděn k několika transformacím, které se potenciálně mohou odehrávat paralelně
- Agregace - kde je více dokumentů agregováno do jednoho dokumentu
- Zpracování výjimek - kde selhání zpracování může mít za následek zpracování alternativního kanálu
Některé standardy také kategorizují transformaci jako makro (změny ovlivňující celý soubor) nebo mikro (ovlivňující pouze prvek nebo atribut)
Jazyky potrubí XML
K definování kanálů se používají jazyky potrubí XML. Program napsaný s jazykem XML kanálu je implementován softwarem známým jako stroj XML potrubí, který vytváří procesy, spojuje je dohromady a nakonec provádí kanál. Existující jazyky potrubí XML zahrnují:
Standardy
- XProc: XML Pipeline Language je doporučení W3C [1] pro definování lineárních a nelineárních potrubí XML.
Specifické pro produkt
- Jazyk definice kanálu W3C XML je uveden v poznámce W3C.[2]
- W3C XML Pipeline Language (XPL) verze 1.0 (koncept) [3][4] je specifikován ve W3C Submission a komponentě Orbeon Presentation Server OPS (nyní se nazývá Orbeon Forms). Tato specifikace poskytuje implementaci dřívější verze jazyka. XPL umožňuje deklaraci komplexních kanálů s podmíněnými podmínkami, smyčkami, odpališti, agregacemi a dílčími kanály. XProc je zhruba nadmnožinou XPL.[5]
- Kokon soubory Sitemap povolit, mimo jiné funkčnost, deklaraci potrubí XML. Soubory Sitemap pro Cocoon jsou jednou z prvních implementací koncepce kanálu XML.
- smallx XML potrubí jsou používány projektem smallx.
- ServingXML definuje slovník pro vyjádření plochých XML, plochých XML, plochých a XML-XML transformací v potrubích.
- Značkovací jazyk okruhu PolarLake používá runtime PolarLake k definování Potrubí XML. Obvody jsou kolekce cest, kterými procházejí fragmenty toku XML (obvykle jako události SAX nebo DOM). Komponenty jsou umístěny na cesty k interakci s proudem (a / nebo vnějším světem) v procesu s nízkou latencí.
- xmlsh je skriptovací jazyk založený na unixových skořápkách, který nativně podporuje xml a textové kanály [1]
- Stylus Studio Potrubí XML je vizuální gramatika, která definuje následující operace: Input, Output, XQuery, XSLT, Validate, XSL-FO to PDF, Convert To XML, Convert From XML, Choose, Warning, Stop.
Granularita potrubí
Různé implementace kanálu XML podporují různou granularitu toku.
- Dokument: Celé dokumenty proudí potrubím jako atomové jednotky. Dokument může být najednou pouze na jednom místě. Ačkoli obvykle může být v kanálu více dokumentů najednou.
- Událost: Události prvků / textových uzlů mohou proudit různými cestami. Dokument může současně protékat mnoha komponentami současně.
Standardizace
Do května 2010 neexistoval široce používaný standard pro jazyky potrubí XML. Se zavedením W3C XProc standard jako a Doporučení W3C od května 2010,[6] lze očekávat široké přijetí.
Dějiny
- 1972 Douglas McIlroy z Bell Laboratories přidá operátor potrubí do UNIX příkazový shell. To umožňuje, aby výstup z jednoho shellového programu šel přímo do vstupu jiného shell programu bez přechodu na disk. To umožňovalo programy jako UNIX awk a sed být specializovaní a přitom spolupracovat [2].[7] Více podrobností viz Pipeline (Unix).
- 1993 Sean McGrath vyvinuli sadu nástrojů C ++ pro SGML zpracovává se.[8]
- 1998 Stefano Mazzocchi vydává první verzi Apache Cocoon, jeden z prvních softwarových programů využívajících kanály XML.
- 1998 PolarLake stavět Operační systém XML, který zahrnuje Pipelining XML.
- 2002 Poznámky předložené Normanem Walshem a Eve Maler z Sun Microsystems, jakož i podání W3C předložené v roce 2005 Erik Bruchez a Alessandro Vernet z Orbeon, byly důležité kroky k vytvoření skutečného úsilí o standardizaci. I když se ani jeden příspěvek nestal přímo doporučením W3C, byly považovány za klíčové zdroje inspirace pro zpracování W3C XML Pracovní skupina.
- Září 2005 Zpracování XML W3C Pracovní skupina začal. Úkolem této pracovní skupiny bylo vytvořit specifikaci pro jazyk pipelining jazyka XML.
- Srpen 2008, xmlsh, jazyk XML kanálu byl oznámen na Balisáž 2008
Viz také
Reference
- ^ „XProc: XML Pipeline Language“. W3.org. Citováno 2013-06-14.
- ^ „W3C XML Pipeline Definition Language“.
- ^ „XML Pipeline Language (XPL) verze 1.0 (koncept)“. W3.org. Citováno 2013-06-14.
- ^ „XML Pipeline Definition Language verze 1.0“. W3.org. 2002-02-28. Citováno 2013-06-14.
- ^ „XML pipelines: XPL and XProc“. Orbeon. 22. května 2007. Citováno 14. března 2012.
- ^ „XProc: XML Pipeline Language“. W3.org. Citováno 2013-06-14.
- ^ "Raná historie a vývoj Unixu". Cm.bell-labs.com. Archivovány od originál 8. dubna 2015. Citováno 2013-06-14.
- ^ „FAQ“. Xpipe.sourceforge.net. 9. 12. 2001. Citováno 2013-06-14.
externí odkazy
Standardy
Doporučení
- XProc: XML Pipeline Language Doporučení W3C z 11. května 2010
Pracovní návrhy
- Pracovní skupina W3C XML Processing Model
- Poznámka k jazyku W3C XML Pipeline Definition Language
- Odeslání W3C XML Pipeline Language (XPL) verze 1.0 (koncept)
Specifické pro produkt
- Výukový program XProc a reference
- Implementace Oracle XML Pipeline Definition Language Controller Součást sady XML Developer's kit, žádné individuální stahování
- Mapa webu Cocoon
- NetKernel XML Pipelines
- Správa generování komplexních dokumentů prostřednictvím zřetězení
- Dokumentace XML Pipeline Language (XPL)
- SXPipe
- Správa dat PolarLake Reference Obvody PolarLake XML a správa referenčních dat
- smallx
- ServingXML
- Implementace XML kanálu od Stylus Studio - Tento program umožňuje řetězit XML transformace spolu s dalšími operacemi na XML souborech, jako je validace a uklizené HTML.
- IVI XML Pipeline Server XML Pipeline Server je implementace pro jazyk Pipeline jazyka Stylus Studio
- Web společnosti XProc společnosti Norman Walsh - Norman Walsh je předsedou výboru pro standardy W3C XProc.
- yax - implementace XProc aktuálně s příkazovým řádkem a rozhraním Apache ant
- Yahoo! Trubky pojďme uživatelé vytvářet vícezdrojová datová mashupy ve webovém vizuálním prostředí
- xmlsh Prostředí pro manipulaci s XML založeným na skořápkách unixu. Podporuje meziprocesové podprocesy XML a zpracování textu v procesu.
- [3] Jak implementovat XML Pipeline v XSLT
- Calabash je implementace XProc
- Calumet je implementace XProc od EMC
- QuiXProc je implementace Innovimaxu XProc