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 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

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ż

  1. ^ „XProc: język potoku XML” . W3.org . Źródło 2013-06-14 .
  2. ^ „Język definicji potoku XML W3C” .
  3. ^ „XML Pipeline Language (XPL) wersja 1.0 (wersja robocza)” . W3.org . Źródło 2013-06-14 .
  4. ^ „Język definicji potoku XML w wersji 1.0” . W3.org. 2002-02-28 . Źródło 2013-06-14 .
  5. ^ „Potoki XML: XPL i XProc” . Orbeon. 22 maja 2007 . Źródło 14 marca 2012 r .
  6. ^ „XProc: język potoku XML” . W3.org . Źródło 2013-06-14 .
  7. ^ „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 .
  8. Bibliografia _ _ Xpipe.sourceforge.net. 2001-12-09 . Źródło 2013-06-14 .

Linki zewnętrzne

Normy

Zalecenia

Szkice robocze

Specyficzne dla produktu