Saxonは、 Michael Kayによって作成され、現在は彼が設立した会社であるSaxonicaによって開発と保守が行われているXSLTおよびXQueryプロセッサです。オープンソース版とクローズドソースの商用版があります。Java 、 JavaScript [ 1 ]、. NET用のバージョン が存在します。
2024年9月現在のバージョンは12.5です。[2]
バージョン
Saxon のオリジナルの開発ラインはバージョン 6 シリーズで終了しました。これは XSLT 1.0 プロセッサのシリーズです。現在のバージョン 6.5.5 は、メンテナンス以外の開発は行われていません。6 シリーズは、Java プログラミング言語でのみ使用できます。
現在の開発ラインである Saxon 12 は、XSLT 3.0 および XQuery 3.1 仕様を実装しています。Saxon 12 は、XSLT 1.0 および XSLT 2.0 スタイルシートを処理できます。(XSLT 2.0 および 3.0 は、XSLT 1.0 と高い下位互換性があります。[3] ) また、提案されている XSLT 4.0 仕様の選択的なサポートも含まれています。[4]
ソース ベースには、Java ソースと JavaScript ソースの 2 つがあります。Java ソースは、3 つのプラットフォーム用の製品を生成するために使用されます。SaxonJ (Java および Scala などの他の JVM 言語用)、SaxonCS (C# および VB.NET などの他の .NET 言語用)、および SaxonC (C、C++、Python、PHP 用の API 付き) です。JavaScript ソース ベースは、Web ブラウザーおよび Node.js で実行される SaxonJS を生成するために使用されます。
Java で構築されたバージョンには 3 つのレベルがあります。Home Edition は、オープンソース製品として、仕様で定義された標準準拠の最小レベルを提供します。Professional Edition は、さまざまな拡張機能やシリアル化オプションなど、標準では要求されていないベンダー固有の機能を追加します。Enterprise Edition は、スキーマ認識やストリーミングなどの高度な機能 (W3C 標準ではオプションとして定義) と、マルチスレッド実行やバイトコード生成などのパフォーマンス関連の機能を追加します。
SaxonCS 製品は、XSLT で記述されたカスタム Java から C# へのトランスパイラを使用して、Java ソース ベースから構築されています(https://markupuk.org/webhelp/index.html#ar04.html を参照)。2022 年 4 月現在、このプラットフォームでは Enterprise Edition のみが提供されています。
2004 年から 2009 年まで、Saxon は Saxon-B と Saxon-SA という 2 つの形式で提供されていました。これらは両方とも同様のコードベースで構築されていました。Saxon-B はMozilla Public Licenseに基づいてリリースされたオープンソースソフトウェアであり、Saxon-SA はクローズドソースの商用製品でした。
Saxon-B と Saxon-SA の違いは、B が「基本」であるのに対し、SA は「スキーマ対応」であることです。これらの用語は、XSLT 2.0 および XQuery 1.0 仕様の用語への参照です。「スキーマ対応」のプロセッサは、W3C XML スキーマを使用して、ソース XML ドキュメント内のさまざまな要素のデータ型を定義できます。これらのデータ型は、XPath 2.0 および XSLT 2.0 コマンドで使用できます。「基本」XSLT 2.0 プロセッサは、データ型情報を使用できません。
Saxon は、XSLT 2.0、XPath 2.0 および 3.0、XQuery 1.0 および 3.0 W3C 勧告に厳密に準拠しており、XML スキーマ 1.0 および 1.1 も実装しています。2021 年現在、現在のバージョン (10.6) は、XSLT 3.0、XPath 3.1、XQuery 3.1 の W3C 勧告に準拠しています。
Saxon のソース コードは Java で記述されています。2005 年から 2006 年にかけて、M. David Peterson 氏らは、IKVM.NETクロス コンパイラを使用して Saxon をクロスコンパイルして .NET 上で実行できることを実証し、元の開発者から独立した別の製品として Saxon.NET を立ち上げました。Saxon 8.7 のリリースで、Saxonica はこのテクノロジを採用し、それ以降、すべてのバージョンが Java と .NET で同時にリリースされています。製品の .NET バージョンでは、Java プラットフォーム固有の機能 ( JDOM、Dom4j、XOMとの統合など) が省略され、代わりに .NET プラットフォームの XML 処理機能と統合する機能が提供されています。
2012年、一連のプロトタイプを経て、Saxonicaはブラウザ環境で実行できるように適応させた製品バージョンであるSaxon Client Edition(Saxon-CE)をリリースした。これは、Googleが作成したGWTクロスコンパイラを使用してJavaScriptにクロスコンパイルできるようにJavaソースコードを適応させることで実現した。Saxon-CEは、ブラウザで実行されるXSLT 2.0の最初の実装を提供し、また、単にHTMLを生成するのではなく、ユーザーインタラクションを直接処理できるように言語を拡張した。2013年2月にSaxon-CE 1.1がリリースされ、製品はオープンソースになった。2016年2月、Michael Kayは、Saxonicaが純粋なJavaScriptで書かれたSaxon-CEの代替品に取り組んでおり、Saxon-JSと名付けたと発表した。[5]
Saxon の作者であるMichael Kay氏は、XSLT 2.0 仕様の編集者であり、XSLT 3.0 ドラフトの編集者でもあります。
特徴
Java、C(PHPとPythonを含む)、および.NETプラットフォームで利用可能なSaxonバージョンは、単一のコードベースから構築されています。後者のバージョンは、トランスパイラを使用して構築されています。[6]すべてのテクノロジープラットフォームバージョンは同じ機能を共有しており、2つの異なるライセンス条件の下で3つの異なる機能セットで利用できます。これらのテクノロジープラットフォームごとに、MPL -2.0でライセンスされるオープンソース製品であるSaxon-HEがあります。これは、それぞれの仕様で定義されている基本的なXSLT 3.0、XPath 3.1、およびXQuery 3.1機能を提供します。さらに、Saxon-HEは、XSLT 3.0仕様でオプションと宣言され、以前は商用バージョン用に予約されていた特定の機能(動的XPath 3.1評価やXSLT 3.0の高階関数など)を実装しています。商用バージョンは、Saxon-PEおよびSaxon-EEと呼ばれます。詳細で最新の機能マトリックスは、Saxonica Webサイトにあります。
4番目の技術プラットフォームはJavaScriptです。以前は、オープンソースのXSLTプロセッサであるSaxon-CEが、GWTを使用して一般的なJavaソースからクロスコンパイルされていました。SaxonJSは、JavaScriptで完全に新しい実装です。XSLTソースは、Saxon-EEを使用してコンパイルすることも、最適化されていないコードを作成する組み込みのXSLTベースのXSLTコンパイラを使用してコンパイルすることもできます。一方、XSLTベースのXSLTコンパイラでは、XSLTの動的なコンパイルと実行が可能です。SaxonJSは、Saxon-HEで利用可能なXSLT 3.0とXPath 3.1の機能のほとんどをサポートしていますが、XQueryはサポートしていません。Saxon-HEや廃止されたSaxon-CEとは異なり、SaxonJSはオープンソースではありませんが、ブラウザまたはNode.jsで無料で使用できます。[7]
参照
参考文献
- ^ "Saxon クライアント エディション 1.0".サクソニカ。2012 年8 月 14 日に取得。
- ^ Saxon XSLT 公式サイト
- ^ この勧告は、1999 年 11 月 16 日に公開された [XSLT 1.0] の成功に基づいて作成されています。この言語には多くの新機能が追加されています (J.2 新機能を参照)。ただし、高いレベルの下位互換性は維持されています。XSL 変換 (XSLT) バージョン 2.0
- ^ XSL 変換 (XSLT) バージョン 4.0。
- ^ 「Saxon-JS の紹介」。
- ^ https://www.saxonica.com/papers/markupuk-2021mhk.pdf [裸のURL PDF ]
- ^ 「SaxonJS ドキュメント」。
外部リンク
- Saxon-B ホームページ
- Saxonica のホームページ (Saxon-SA 向け)
- Saxon XQuery ツール
- AntillesXML (Saxon 用 GUI)
- ザクセン語の説明(ドイツ語)
