Saksoński XSLT
Saxon to procesor XSLT i XQuery stworzony przez Michaela Kaya , a obecnie rozwijany i utrzymywany przez jego firmę Saxonica. Istnieją typu open source , a także zamknięte . Istnieją wersje dla Java , JavaScript i .NET .
Obecna wersja ze stycznia 2023 r. to 12.0.
Wersje
Oryginalna linia rozwojowa Saxon zakończyła się serią wersji 6. Jest to seria procesorów XSLT 1.0. Obecna wersja, 6.5.5, nie podlega dalszemu rozwojowi poza konserwacją. Seria 6 jest dostępna tylko dla języka programowania Java.
Bieżąca linia rozwojowa, Saxon 12, implementuje specyfikacje XSLT 3.0 i XQuery 3.1. Saxon 12 może przetwarzać arkusze stylów XSLT 1.0 i XSLT 2.0. (XSLT 2.0 i 3.0 są w wysokim stopniu wstecznie kompatybilne z XSLT 1.0.) i zawierają również selektywne wsparcie dla proponowanej specyfikacji XSLT 4.0.
Istnieją dwie oddzielne bazy źródłowe: źródło Java i źródło JavaScript. Źródło Java jest wykorzystywane do generowania produktów dla trzech platform: SaxonJ (dla Javy i innych języków JVM, takich jak Scala), SaxonCS (dla C# i innych języków .NET, takich jak VB.NET) oraz SaxonC (z interfejsami API dla C, C++ , Pythona i PHP). Baza źródeł JavaScript jest używana do generowania SaxonJS, który działa w przeglądarkach internetowych i pod Node.js.
Wersje oparte na Javie są dostępne na trzech poziomach: Home Edition oferuje minimalny poziom zgodności ze standardami określonymi w specyfikacjach, jako produkt typu open source. Wersja Professional dodaje funkcje specyficzne dla dostawcy, które nie są wymagane przez standardy, na przykład szereg funkcji rozszerzających i opcji serializacji. Enterprise Edition dodaje zaawansowane funkcje (zdefiniowane w standardach W3C jako opcjonalne), w tym świadomość schematu i strumieniowanie, a także funkcje związane z wydajnością, takie jak wykonywanie wielowątkowe i generowanie kodu bajtowego.
Produkt SaxonCS jest zbudowany z bazy źródłowej Java za pomocą niestandardowego transpilatora Java-to-C# napisanego w XSLT (patrz https://markupuk.org/webhelp/index.html#ar04.html ). Od kwietnia 2022 r. na tej platformie oferowana jest tylko wersja Enterprise.
Od 2004 do 2009 roku Saxon był dostępny w dwóch odrębnych formach: Saxon-B i Saxon-SA. Oba zostały zbudowane na podobnych bazach kodu. Saxon-B było typu open source wydanym na licencji Mozilla Public License , podczas gdy Saxon-SA był produktem komercyjnym o zamkniętym kodzie źródłowym.
Różnica między Saxon-B i Saxon-SA polegała na tym, że B był „podstawowy”, podczas gdy SA był „świadomy schematu”. Terminy te są odniesieniami do terminów w specyfikacji XSLT 2.0 i XQuery 1.0. Procesor „świadomy schematu” może używać schematu XML W3C do definiowania typów danych różnych elementów w źródłowym dokumencie XML. Tych typów danych można następnie używać w XPath 2.0 i XSLT 2.0. „Podstawowy” procesor XSLT 2.0 nie może używać informacji o typowaniu danych.
Saxon zapewnia ścisłą zgodność z zaleceniami W3C XSLT 2.0, XPath 2.0 i 3.0 oraz XQuery 1.0 i 3.0, a także implementuje XML Schema 1.0 i 1.1. Od 2021 r. obecna wersja (10.6) jest zgodna z zaleceniami W3C dla XSLT 3.0, XPath 3.1 i XQuery 3.1.
Saksoński kod źródłowy jest napisany w Javie. W latach 2005-6 M. David Peterson i inni wykazali, że Saxon można skompilować krzyżowo, aby działał na platformie .NET przy użyciu IKVM.NET , uruchamiając Saxon.NET jako oddzielny produkt niezależny od oryginalnego programisty. Wraz z wydaniem Saxon 8.7 firma Saxonica przyjęła tę technologię i od tego wydania wszystkie wersje są wydawane jednocześnie dla Javy i .NET. Wersja .NET produktu pomija funkcje charakterystyczne dla platformy Java (takie jak integracja z JDOM , Dom4j i XOM ) i zamiast tego zapewnia funkcje, które integrują się z możliwościami przetwarzania XML platformy .NET.
W 2012 roku, po serii prototypów, Saxonica wypuściła Saxon Client Edition (Saxon-CE), wersję produktu dostosowaną do działania w środowisku przeglądarki. Osiąga się to poprzez dostosowanie kodu źródłowego Javy, tak aby można go było skompilować krzyżowo z JavaScript przy użyciu kompilatora krzyżowego GWT opracowanego przez Google . Saxon-CE zapewnia pierwszą implementację XSLT 2.0 działającą w przeglądarce, a także rozszerza język, tak aby zamiast tylko generować HTML, mógł bezpośrednio obsługiwać interakcję użytkownika. Wraz z wydaniem Saxon-CE 1.1 w lutym 2013 roku produkt stał się open source. W lutym 2016 roku Michael Kay ogłosił, że Saxonica pracuje nad zamiennikiem Saxon-CE napisanym w czystym JavaScript i nazwanym Saxon-JS.
Michael Kay , autor Saxon, był redaktorem specyfikacji XSLT 2.0, a także redaktorem wersji roboczej XSLT 3.0.
Cechy
Saksońskie wersje dostępne dla platform Java, C (w tym PHP i Python) oraz .NET są zbudowane z jednej bazy kodu. Ta ostatnia wersja jest zbudowana przy użyciu transpilatora . Wszystkie wersje platformy technologicznej mają te same możliwości i są udostępniane z trzema różnymi zestawami funkcji na dwóch różnych warunkach licencyjnych. Dla każdej z tych platform technologicznych dostępny jest produkt typu open source, Saxon-HE, na licencji MPL -2.0. Zapewnia podstawową funkcjonalność XSLT 3.0, XPath 3.1 i XQuery 3.1, zgodnie z definicją w odpowiednich specyfikacjach. Ponadto Saxon-HE implementuje pewne funkcje, które specyfikacja XSLT 3.0 deklaruje jako opcjonalne i które wcześniej były zarezerwowane dla wersji komercyjnych, takie jak dynamiczna ocena XPath 3.1 i funkcje wyższego rzędu w XSLT 3.0. Wersje komercyjne noszą nazwy Saxon-PE i Saxon-EE. Szczegółową i aktualną macierz funkcji można znaleźć na stronie stronie Saksonii .
Czwarta platforma technologiczna to JavaScript. Wcześniej procesor XSLT typu open source Saxon-CE był kompilowany krzyżowo ze wspólnego źródła Java przy użyciu GWT . SaxonJS to zupełnie nowa implementacja w JavaScript. Źródła XSLT mogą być kompilowane przy użyciu Saxon-EE lub wbudowanego kompilatora XSLT opartego na XSLT, który tworzy mniej zoptymalizowany kod. Z drugiej strony kompilator XSLT oparty na XSLT umożliwia dynamiczną kompilację i wykonywanie XSLT. Podczas gdy SaxonJS obsługuje większość funkcji XSLT 3.0 i XPath 3.1 dostępnych w Saxon-HE, SaxonJS nie obsługuje XQuery. W przeciwieństwie do Saxon-HE i wycofanego Saxon-CE, SaxonJS nie jest open source, ale można go używać za darmo w przeglądarce lub w Node.js .
Zobacz też
- ^ „Saksońska wersja klienta 1.0” . Saxonica . Źródło 14 sierpnia 2012 r .
- ^ Oficjalna strona saksońskiego XSLT
- ^ Niniejsze zalecenie opiera się na sukcesie [XSLT 1.0], który został opublikowany 16 listopada 1999 r. Do języka dodano wiele nowych funkcji (patrz J.2 Nowa funkcjonalność), przy jednoczesnym zachowaniu wysokiego poziomu kompatybilności wstecznej. Transformacje XSL (XSLT) Wersja 2.0
- ^ Transformacje XSL (XSLT) wersja 4.0.
- ^ „Przedstawiamy Saxon-JS” .
- ^ https://www.saxonica.com/papers/markupuk-2021mhk.pdf [ bez adresu URL PDF ]
- ^ „Dokumentacja SaxonJS” .
Linki zewnętrzne
- Strona główna Saksonii-B
- Strona główna Saxonica dla Saxon-SA
- Saksońskie narzędzia XQuery
- AntillesXML (GUI dla Saxon)
- opis saksoński (niemiecki)