Potok XML
W oprogramowaniu potok XML jest tworzony, gdy połączone są procesy XML (Extensible Markup Language), zwłaszcza transformacje XML i walidacje XML .
Na przykład, biorąc pod uwagę dwie transformacje T1 i T2 , można je połączyć tak, że wejściowy dokument XML jest przekształcany przez T1, a następnie dane wyjściowe T1 są podawane jako dokument wejściowy do T2 . Proste potoki, takie jak opisane powyżej, nazywane są liniowymi ; pojedynczy dokument wejściowy zawsze przechodzi przez tę samą sekwencję przekształceń, aby wytworzyć jeden dokument wyjściowy.
Operacje liniowe
Operacje liniowe można podzielić na co najmniej dwie części
Mikrooperacje
Działają na poziomie dokumentu wewnętrznego
- Zmień nazwę — zmienia nazwy elementów lub atrybutów bez modyfikowania zawartości
- Zastąp — zastępuje elementy lub atrybuty
- Wstaw — dodaje nowy element danych do strumienia wyjściowego w określonym punkcie
- Usuń — usuwa element lub atrybut (znane również jako przycinanie drzewa danych wejściowych)
- Wrap - zawija elementy dodatkowymi elementami
- Zmień kolejność — zmienia kolejność elementów
Operacje na dokumentach
Biorą dokument wejściowy jako całość
- Transformacja tożsamości - tworzy dosłowną kopię swojego wejścia na wyjście
- Porównaj - potrzeba dwóch dokumentów i porównaj je
- Przekształć — wykonaj transformację pliku wejściowego przy użyciu określonego pliku XSLT . Należy określić wersję 1.0 lub 2.0.
- Podziel — weź pojedynczy dokument XML i podziel go na odrębne dokumenty
Operacje sekwencyjne
Są one wprowadzane głównie w XProc i pomagają obsłużyć sekwencję dokumentu jako całości
- Count - pobiera sekwencję dokumentów i je zlicza
- Transformacja tożsamości - tworzy dosłowną kopię sekwencji wejściowej dokumentów na wyjściu
- split-sequence - pobiera sekwencję dokumentów jako dane wejściowe i kieruje je do różnych wyjść w zależności od reguł dopasowania
- wrap-sequence - pobiera sekwencję dokumentów jako dane wejściowe i zawija je w jeden lub więcej dokumentów
Nieliniowy
Operacje nieliniowe na rurociągach mogą obejmować:
- Warunkowe — gdzie dana transformacja jest wykonywana, jeśli warunek jest spełniony, a inna transformacja jest wykonywana w przeciwnym razie
- Pętle — gdzie transformacja jest wykonywana na każdym węźle zestawu węzłów wybranego z dokumentu lub transformacja jest wykonywana, dopóki warunek nie zostanie uznany za fałszywy
- Trójniki — gdzie dokument jest podawany do wielu przekształceń, które mogą zachodzić równolegle
- Agregacje — gdzie wiele dokumentów jest agregowanych w jeden dokument
- Obsługa wyjątków — gdzie awarie przetwarzania mogą skutkować przetwarzaniem alternatywnego potoku
Niektóre standardy klasyfikują również transformację jako makro (zmiany wpływające na cały plik) lub mikro (wpływające tylko na element lub atrybut)
Języki potoków XML
Języki potoków XML są używane do definiowania potoków. Program napisany w języku potoku XML jest implementowany przez oprogramowanie znane jako silnik potoku XML, który tworzy procesy, łączy je ze sobą i ostatecznie wykonuje potok. Istniejące języki potoku XML obejmują:
Normy
- XProc: An XML Pipeline Language to rekomendacja W3C dotycząca definiowania liniowych i nieliniowych potoków XML.
Specyficzne dla produktu
- W3C XML Pipeline Definition Language jest określony w notatce W3C.
- W3C XML Pipeline Language (XPL) wersja 1.0 (wersja robocza) jest określona w zgłoszeniu W3C i składniku Orbeon Presentation Server OPS (obecnie nazywanym Orbeon Forms). Ta specyfikacja zapewnia implementację wcześniejszej wersji języka. XPL umożliwia deklarowanie złożonych potoków z wyrażeniami warunkowymi, pętlami, trójnikami, agregacjami i potokami podrzędnymi. XProc jest z grubsza nadzbiorem XPL.
- Mapy witryn Cocoon umożliwiają między innymi deklarację potoków XML. Mapy witryn Cocoon są jedną z najwcześniejszych implementacji koncepcji potoku XML.
- Potoki XML smallx są używane przez projekt smallx.
- ServingXML definiuje słownictwo do wyrażania transformacji flat-XML, XML-flat, flat-flat i XML-XML w potokach.
- PolarLake Circuit Markup Language używany przez środowisko uruchomieniowe PolarLake do definiowania potoków XML . Obwody to zbiory ścieżek, przez które przepływają fragmenty XML (zwykle jako zdarzenia SAX lub DOM). Komponenty są umieszczane na ścieżkach w celu interakcji ze strumieniem (i/lub światem zewnętrznym) w procesie o niskim opóźnieniu.
- xmlsh to język skryptowy oparty na powłokach uniksowych, który natywnie obsługuje potoki xml i tekstowe [1]
- Stylus Studio XML Pipeline to gramatyka wizualna, która definiuje następujące operacje: Wejście, Wyjście, XQuery, XSLT, Walidacja, XSL-FO do PDF, Konwertuj na XML, Konwertuj z XML, Wybierz, Ostrzeżenie, Zatrzymaj.
Ziarnistość rury
Różne implementacje XML Pipeline obsługują różną szczegółowość przepływu.
- Dokument: Całe dokumenty przepływają przez rurę jako jednostki atomowe. Dokument może znajdować się tylko w jednym miejscu naraz. Chociaż zwykle w rurze może znajdować się jednocześnie wiele dokumentów.
- Zdarzenie: zdarzenia elementów/węzłów tekstowych mogą przepływać różnymi ścieżkami. Dokument może jednocześnie przepływać przez wiele komponentów w tym samym czasie.
Normalizacja
Do maja 2010 r. nie było powszechnie używanego standardu dla języków potoków XML. Jednak wraz z wprowadzeniem W3C XProc jako rekomendacji W3C w maju 2010 r. można spodziewać się powszechnego przyjęcia.
Historia
- 1972 Douglas McIlroy z Bell Laboratories dodaje operatora potoku do powłoki poleceń systemu UNIX . Umożliwia to wyjście z jednego programu powłoki bezpośrednio do wejścia innego programu powłoki bez przechodzenia na dysk. Dzięki temu programy takie jak UNIX awk i sed mogły być wyspecjalizowane, a jednocześnie współpracować [2] . Aby uzyskać więcej informacji, zobacz Pipeline (Unix) .
- 1993 Sean McGrath opracował zestaw narzędzi C++ do przetwarzania SGML .
- 1998 Stefano Mazzocchi wydaje pierwszą wersję Apache Cocoon , jednego z pierwszych programów wykorzystujących potoki XML.
- 1998 PolarLake buduje system operacyjny XML , który obejmuje XML Pipelining .
- Notatki z 2002 roku przesłane przez Normana Walsha i Eve Maler z Sun Microsystems , jak również zgłoszenie W3C przesłane w 2005 roku przez Erika Brucheza i Alessandro Verneta z Orbeon, były ważnymi krokami w kierunku zapoczątkowania rzeczywistego wysiłku normalizacyjnego. Chociaż żadne zgłoszenie nie stało się bezpośrednio rekomendacją W3C, uznano je za kluczowe źródła inspiracji dla Grupy Roboczej Przetwarzania XML W3C .
- pracy grupy roboczej W3C XML Processing . Zadaniem tej grupy roboczej było stworzenie specyfikacji języka potokowego XML.
- Sierpień 2008, xmlsh , język potoku XML został ogłoszony na Balisage 2008
Zobacz też
- ^ „XProc: język potoku XML” . W3.org . Źródło 2013-06-14 .
- ^ „Język definicji potoku XML W3C” .
- ^ „XML Pipeline Language (XPL) wersja 1.0 (wersja robocza)” . W3.org . Źródło 2013-06-14 .
- ^ „Język definicji potoku XML w wersji 1.0” . W3.org. 2002-02-28 . Źródło 2013-06-14 .
- ^ „Potoki XML: XPL i XProc” . Orbeon. 22 maja 2007 . Źródło 14 marca 2012 r .
- ^ „XProc: język potoku XML” . W3.org . Źródło 2013-06-14 .
- ^ „Wczesna historia i ewolucja systemu Unix” . Cm.bell-labs.com. Zarchiwizowane od oryginału w dniu 8 kwietnia 2015 r . Źródło 2013-06-14 .
- Bibliografia _ _ Xpipe.sourceforge.net. 2001-12-09 . Źródło 2013-06-14 .
Linki zewnętrzne
Normy
Zalecenia
- XProc: An XML Pipeline Language , zalecenie W3C 11 maja 2010 r
Szkice robocze
- Grupa robocza modelu przetwarzania XML W3C
- Uwaga dotycząca języka definicji potoku W3C XML
- Zgłoszenie W3C XML Pipeline Language (XPL) w wersji 1.0 (wersja robocza).
Specyficzne dla produktu
- Samouczek i odniesienie do XProc
- Implementacja kontrolera języka XML Pipeline Definition firmy Oracle Część zestawu programisty XML, bez konieczności pobierania
- Mapa serwisu Cocoon
- Potoki XML NetKernela
- Zarządzanie złożonym generowaniem dokumentów poprzez potokowanie
- Dokumentacja XML Pipeline Language (XPL).
- SXPipe
- PolarLake Zarządzanie danymi referencyjnymi Obwody PolarLake XML i zarządzanie danymi referencyjnymi
- małyx
- ServingXML
- Implementacja potoku XML z Stylus Studio — ten program umożliwia łączenie transformacji XML wraz z innymi operacjami na plikach XML, takimi jak walidacja i HTML Tidy .
- IVI XML Pipeline Server XML Pipeline Server to implementacja języka Stylus Studio XML Pipeline
- Witryna internetowa XProc Normana Walsha — Norman Walsh jest przewodniczącym komitetu normalizacyjnego W3C XProc.
- yax - implementacja XProc obecnie z linią poleceń i interfejsem Apache ant
- Wieśniak! Pipes pozwala użytkownikom tworzyć mashupy danych z wielu źródeł w internetowym środowisku wizualnym
- xmlsh Powłoka do manipulowania xml oparta na powłokach uniksowych. Obsługuje wielowątkowe potoki przetwarzania xml i tekstu w trakcie procesu.
- [3] Jak zaimplementować XML Pipeline w XSLT
- Tykwa jest implementacją XProc
- Calumet to implementacja XProc firmy EMC
- QuiXProc to implementacja XProc Innovimax