XML pipeline
I mjukvara bildas en XML-pipeline när XML- processer (Extensible Markup Language), särskilt XML-transformationer och XML-valideringar , ansluts.
Till exempel, givet två transformationer Ti och T2 , kan de två kopplas samman så att ett inmatat XML-dokument transformeras av Ti och sedan matas utsignalen från Ti som ingångsdokument till T2 . Enkla pipelines som den som beskrivs ovan kallas linjära ; ett enda indatadokument går alltid igenom samma sekvens av transformationer för att producera ett enda utdatadokument.
Linjära operationer
Linjära operationer kan delas upp i minst två delar
Mikrooperationer
De verkar på den inre dokumentnivån
- Byt namn - byter namn på element eller attribut utan att ändra innehållet
- Ersätt - ersätter element eller attribut
- Infoga - lägger till ett nytt dataelement till utdataströmmen vid en angiven punkt
- Ta bort - tar bort ett element eller attribut (även känt som beskärning av inmatningsträdet)
- Wrap - lindar element med ytterligare element
- Ordna om - ändrar ordningen på elementen
Dokumentoperationer
De tar indatadokumentet som en helhet
- Identitetsomvandling - gör en ordagrant kopia av dess input till utdata
- Jämför - det krävs två dokument och jämför dem
- Transform - exekvera en transformation på indatafilen med en specificerad XSLT- fil. Version 1.0 eller 2.0 bör anges.
- Dela - ta ett enda XML-dokument och dela upp det i distinkta dokument
Sekvensoperationer
De introduceras huvudsakligen i XProc och hjälper till att hantera dokumentsekvensen som helhet
- Räkna - det tar en sekvens av dokument och räknar dem
- Identitetsomvandling - gör en ordagrant kopia av dess inmatningssekvens av dokument till utgången
- split-sequence - tar en sekvens av dokument som indata och dirigerar dem till olika utgångar beroende på matchningsregler
- wrap-sequence - tar en sekvens av dokument som indata och slår in dem i ett eller flera dokument
Icke-linjär
Icke-linjära operationer på rörledningar kan innefatta:
- Villkor — där en given transformation exekveras om ett villkor är uppfyllt medan en annan transformation exekveras på annat sätt
- Slingor — där en transformation exekveras på varje nod i en noduppsättning vald från ett dokument eller en transformation exekveras tills ett villkor utvärderas till falskt
- Tees — där ett dokument matas till flera transformationer som potentiellt sker parallellt
- Aggregeringar — där flera dokument sammanställs till ett enda dokument
- Undantagshantering — där fel i bearbetningen kan resultera i att en alternativ pipeline bearbetas
Vissa standarder kategoriserar även transformation som makro (ändringar som påverkar en hel fil) eller mikro (som bara påverkar ett element eller attribut)
XML pipeline språk
XML pipeline-språk används för att definiera pipelines. Ett program skrivet med ett XML-pipeline-språk implementeras av programvara som kallas en XML-pipelinemotor, som skapar processer, kopplar samman dem och slutligen exekverar pipelinen. Befintliga XML-pipeline-språk inkluderar:
Standarder
- XPoc: An XML Pipeline Language är en W3C-rekommendation för att definiera linjära och icke-linjära XML-pipelines.
Produktspecifik
- W3C XML Pipeline Definition Language specificeras i en W3C Note.
- W3C XML Pipeline Language (XPL) Version 1.0 (utkast) specificeras i en W3C Submission och en komponent av Orbeon Presentation Server OPS (nu kallad Orbeon Forms). Denna specifikation tillhandahåller en implementering av en tidigare version av språket. XPL tillåter deklaration av komplexa pipelines med villkor, loopar, tees, aggregationer och sub-pipelines. XPoc är ungefär en superset av XPL.
- Cocoon -webbplatskartor tillåter bland annat funktionalitet deklaration av XML-pipelines. Cocoon-webbplatskartor är en av de tidigaste implementeringarna av konceptet XML-pipeline.
- smallx XML-pipelines används av smallx-projektet.
- ServingXML definierar en vokabulär för att uttrycka flat-XML, XML-flat, flat-flat och XML-XML-transformationer i pipelines.
- PolarLake Circuit Markup Language som används av PolarLakes runtime för att definiera XML-pipelines . Kretsar är samlingar av vägar genom vilka fragment av XML strömmar (vanligtvis som SAX- eller DOM-händelser). Komponenter placeras på vägar för att interagera med strömmen (och/eller omvärlden) i en process med låg latens.
- xmlsh är ett skriptspråk baserat på unix-skalen som inbyggt stöder xml och textpipelines [ 1]
- Stylus Studio XML Pipeline är en visuell grammatik som definierar följande operationer: Inmatning, Utdata, XQuery, XSLT, Validera, XSL-FO till PDF, Konvertera till XML, Konvertera från XML, Välj, Varning, Stopp.
Pipe granularitet
Olika XML Pipeline-implementeringar stöder olika granularitet i flödet.
- Dokument: Hela dokument strömmar genom röret som atomenheter. Ett dokument kan bara finnas på en plats åt gången. Även om vanligtvis flera dokument kan vara i röret samtidigt.
- Händelse: Element/textnoder händelser kan flöda genom olika vägar. Ett dokument kan flöda samtidigt genom många komponenter på samma gång.
Standardisering
Fram till maj 2010 fanns det ingen allmänt använd standard för XML-pipeline-språk. Men med introduktionen av W3C XPoc-standarden som en W3C-rekommendation från och med maj 2010, kan ett omfattande antagande förväntas.
Historia
- 1972 Douglas McIlroy från Bell Laboratories lägger till röroperatören till UNIX- kommandoskalet. Detta gör att utdata från ett skalprogram kan gå direkt in i ett annat skalprogram utan att gå till disk. Detta gjorde att program som UNIX awk och sed kunde specialiseras men ändå fungera tillsammans [2] . För mer information se Pipeline (Unix) .
- 1993 Sean McGrath utvecklade en C++-verktygssats för SGML- bearbetning.
- 1998 Stefano Mazzocchi släpper den första versionen av Apache Cocoon , ett av de första mjukvaruprogrammen som använder XML-pipelines.
- 1998 PolarLake bygger XML-operativsystem , som inkluderar XML-pipelining .
- Anteckningar från 2002 inlämnade av Norman Walsh och Eve Maler från Sun Microsystems , samt en W3C-inlämning inlämnad 2005 av Erik Bruchez och Alessandro Vernet från Orbeon, var viktiga steg mot att skapa en faktisk standardiseringsansträngning. Även om inget av bidragen direkt blev en W3C-rekommendation, ansågs de vara viktiga inspirationskällor för W3C XML Processing Working Group .
- September 2005 W3C XML Processing Working Group startade. Denna arbetsgrupps uppgift var att skapa en specifikation för ett XML-pipelining-språk.
- Augusti 2008, xmlsh , ett XML-pipeline-språk tillkännagavs vid Balisage 2008
Se även
- ^ "XProc: An XML Pipeline Language" . W3.org . Hämtad 2013-06-14 .
- ^ "W3C XML Pipeline Definition Language" .
- ^ "XML Pipeline Language (XPL) version 1.0 (utkast)" . W3.org . Hämtad 2013-06-14 .
- ^ "XML Pipeline Definition Language Version 1.0" . W3.org. 2002-02-28 . Hämtad 2013-06-14 .
- ^ "XML pipelines: XPL och XPoc" . Orbeon. 22 maj 2007 . Hämtad 14 mars 2012 .
- ^ "XProc: An XML Pipeline Language" . W3.org . Hämtad 2013-06-14 .
- ^ "Tidlig Unix historia och evolution" . Cm.bell-labs.com. Arkiverad från originalet den 8 april 2015 . Hämtad 2013-06-14 .
- ^ "FAQ" . Xpipe.sourceforge.net. 2001-12-09 . Hämtad 2013-06-14 .
externa länkar
Standarder
Rekommendationer
- XPoc: An XML Pipeline Language , W3C-rekommendation 11 maj 2010
Arbetsutkast
- W3C XML Processing Model Working Group
- W3C XML Pipeline Definition Language Notera
- Inlämning av W3C XML Pipeline Language (XPL) version 1.0 (utkast).
Produktspecifik
- XPoc handledning och referens
- Oracles XML Pipeline Definition Language Controller Implementation Del av XML Developer's kit, ingen individuell nedladdning
- Kokon webbplatskarta
- NetKernel XML-pipelines
- Hantera komplexa dokumentgenerering genom pipelining
- XML Pipeline Language (XPL) Dokumentation
- SXPipe
- PolarLake Referensdatahantering PolarLake XML-kretsar och referensdatahantering
- smallx
- Serverar XML
- XML Pipeline Implementation från Stylus Studio - Det här programmet tillåter XML-transformationer att kedjas samman tillsammans med andra operationer på XML-filer som validering och HTML Tidy .
- IVI XML Pipeline Server XML Pipeline Server är en implementering för språket Stylus Studio XML Pipeline
- Norman Walshs XPoc-webbplats - Norman Walsh är ordförande för W3C XPocs standardkommitté.
- yax - en XProc-implementering för närvarande med kommandorad och Apache-ant-gränssnitt
- Yahoo! Pipes låter oss användare skapa multi-source data mashups i en webbaserad visuell miljö
- xmlsh Ett skal för att manipulera xml baserat på unix-skalen. Stöder multitrådad xml- och textbearbetningspipelines i processen.
- [3] Hur man implementerar XML Pipeline i XSLT
- Calabash är en implementering av XPoc
- Calumet är en XPoc-implementation från EMC
- QuiXProc är en XPoc-implementering av Innovimax