Język transformacji XML

Transformacja XML do XML

Język transformacji XML to język programowania zaprojektowany specjalnie do przekształcania wejściowego dokumentu XML w dokument wyjściowy , który spełnia określony cel.

Istnieją dwa szczególne przypadki transformacji:

  • XML do XML : dokumentem wyjściowym jest dokument XML.
  • XML do danych : dokument wyjściowy jest strumieniem bajtów .

XML do XML

Gdy transformacja XML do XML generuje dokument XML, łańcuchy transformacji XML do XML tworzą potoki XML .

XML do danych

XML (EXtensible Markup Language) do transformacji danych zawiera kilka ważnych przypadków. Najbardziej godnym uwagi jest XML to HTML (HyperText Markup Language) , ponieważ dokument HTML nie jest dokumentem XML.

Istniejące języki

  • XSLT : XSLT to najbardziej znany język transformacji XML. Rekomendacja XSLT 1.0 W3C została opublikowana w 1999 roku wraz z XPath 1.0 i od tego czasu jest szeroko wdrażana. XSLT 2.0 stał się rekomendacją W3C od stycznia 2007, a implementacje specyfikacji, takie jak Saxon 8 , są już dostępne.
  • XQuery : XQuery jest w pełni funkcjonalnym językiem, pomimo tego, że w nazwie ma słowo „query”. Jest to de facto standard używany przez firmy Microsoft, Oracle, DB2, MarkLogic itp., jest podstawą modelu programowania sieciowego XRX i posiada rekomendację W3C dla wersji 1.0. XQuery nie jest napisany w samym XML, tak jak XSLT, więc jego składnia jest znacznie lżejsza. Język jest oparty na XPath 2.0 . Programy XQuery nie mogą mieć skutków ubocznych , podobnie jak XSLT i zapewnia prawie takie same możliwości (na przykład: deklarowanie zmiennych i funkcji, iteracja po sekwencjach, używanie typów schematów W3C), mimo że składnia programu jest zupełnie inna. XQuery jest sterowany logiką, używając FOR, WHERE i składu funkcji (np. fn:concat("<html>", generuj-body(), "</html>")). W przeciwieństwie do tego, XSLT jest oparty na danych (model przetwarzania wypychanego), w którym pewne warunki dokumentu wejściowego wyzwalają wykonanie szablonów, a nie wykonanie kodu w kolejności, w jakiej został napisany.
  • XProc : XProc to język XML Pipeline. Zalecenie XProc 1.0 W3C zostało opublikowane w maju 2010 roku.
  • Przekształcenie dokumentu XML : to standard firmy Microsoft służący do wykonywania prostych przekształceń dokumentów XML. Głównie do tworzenia plików IIS Web.config (przekształcenia konfiguracji), inne implementacje pozwalają na użycie go do ogólnych plików konfiguracyjnych w czasie kompilacji (Slow Cheetah) lub z wiersza poleceń (CTT).
  • STX : STX (Streaming Transformations for XML) jest inspirowany XSLT, ale został zaprojektowany tak, aby umożliwić jednoprzebiegowy proces transformacji, który nigdy nie uniemożliwia przesyłania strumieniowego. Implementacje są dostępne w Javie ( Joost ) i Perlu ( XML::STX ).
  • XML Script : XML Script to imperatywny język skryptowy inspirowany Perlem , który używa składni XML. XML Script obsługuje XPath i jego zastrzeżoną DSLPath do wybierania węzłów z drzewa wejściowego.
  • FXT : FXT to funkcjonalne narzędzie do transformacji XML, zaimplementowane w Standard ML .
  • XDuce : XDuce to język pisania na klawiaturze o lekkiej składni w porównaniu do XSLT. Jest napisany w ML.
  • CDuce : CDuce rozszerza XDuce do funkcjonalnego języka programowania ogólnego przeznaczenia , zobacz stronę główną CDuce .
  • XACT : XACT to oparty na Javie system do programowania transformacji XML. Godne uwagi funkcje obejmują szablony XML jako niezmienne wartości oraz analizę statyczną w celu zapewnienia bezpieczeństwa typów przy użyciu typów XML Schema ( strona główna XACT ).
  • XFun : XFun to funkcjonalny język X-Fun do definiowania transformacji między drzewami danych XML, przy jednoczesnym dostarczaniu instrukcji niszczenia. X-Fun można rozumieć jako rozszerzenie XStream Frischa z niszczeniem danych wyjściowych, podczas gdy dopasowywanie wzorców jest zastępowane przez nawigację po drzewie z wyrażeniami XPath. ( [1] )
  • XStream : XStream to prosty funkcjonalny język transformacji dokumentów XML oparty na CAML. Transformacje XML zapisane w XStream są oceniane w strumieniu: jeśli to możliwe, części danych wyjściowych są obliczane i tworzone, podczas gdy dokument wejściowy jest nadal analizowany. Niektóre przekształcenia można zatem zastosować do ogromnych dokumentów XML, które nie mieszczą się nawet w pamięci. Kompilator XStream jest rozpowszechniany na warunkach licencji wolnego oprogramowania CeCILL .
  • Xtatic : Xtatic stosuje metody z XDuce do C# , zobacz stronę główną Xtatic .
  • HaXml : HaXml to biblioteka i zbiór narzędzi do pisania transformacji XML w Haskell . Zobacz także ten artykuł o HaXml opublikowany w 1999 i ten artykuł IBM developerWorks . Zobacz także nowszy HXML i Haskell XML Toolbox ( HXT ), który jest oparty na pomysłach HaXml i HXML, ale przyjmuje bardziej ogólne podejście do przetwarzania XML.
  • XMLambda : XMLambda (XMλ) jest opisana w artykule Erika Meijera i Marka Shieldsa z 1999 roku. Brak dostępnej implementacji. Zobacz stronę główną XMLambda .
  • FleXML : FleXML to język przetwarzania XML, po raz pierwszy zaimplementowany przez Kristofera Rose'a. Jego podejście polega na dodaniu akcji do DTD XML, określając instrukcje przetwarzania dla dowolnego podzbioru reguł DTD.
  • Scala : Scala to zorientowany obiektowo język funkcyjny ogólnego przeznaczenia ze specjalną obsługą transformacji XML w postaci dopasowywania wzorców XML, literałów i wyrażeń, wraz ze standardowymi bibliotekami XML.
  • LINQ to XML : LINQ to XML to interfejs API składni i programowania .NET 3.5 dostępny w językach C#, VB i niektórych innych językach .NET. LINQ został zaprojektowany przede wszystkim jako język zapytań, ale obsługuje również transformacje XML.

Zobacz też