XML変換言語

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
XMLからXMLへの変換

XML変換言語とは、XML文書を入力とし、何らかの目的に適合したXML文書(に必ずしも限らない)を出力するような変換を行う変換言語である。

XML から XML への変換[編集]

XML から XML への変換では、XML文書が出力される。このような変換を組み合わせるとXMLパイプラインが形成される。

XML から XML 以外への変換[編集]

XML からデータへの変換では、何らかのバイトストリームが出力される。最も重要なものとしてXMLからHTMLへの変換がある(HTML文書は必ずしもXML文書ではない)。

XSLTは、XML記述を基に、一般のプログラミング言語のソースコードを生成する、といったことも行うことができるように設計されている。

実際の言語[編集]

XSLT
最も有名なXML変換言語。XSLT 1.0 のW3C勧告は1999年XPath 1.0 と共に公開され、それ以降広く実装されている。XSLT 2.0 は2007年1月にW3C勧告となり、Saxon XSLT のように既にそれを実装したソフトウェアも出回っている。
XQuery
名前に "query"(クエリ)とあるが、汎用言語としての機能を持つ。ゼロックスのウェブプログラミングモデルを起源とし、マイクロソフトオラクルIBMなどが採用していたデファクトスタンダードだったが、W3C勧告として採用された。XQuery 自身は XSLT とは異なり、XML で書かれていない。そのため文法が軽量化されている。XPath 2.0 に基づいている。XQuery のプログラムは XSLT と同様に副作用がなく、機能的にもほぼ同じだが(変数や関数の宣言、W3Cスキーマ型を使った繰り返しなど)、文法は大きく異なる。XQuery はロジック駆動型であり、FOR、WHERE、関数合成(例えば fn:concat("<html>", generate-body(), "</html>"))などを使う。一方、XSLTはデータ駆動型であり、入力文書が条件を満たすとテンプレートが起動される形式であり、コードが書かれている順序に実行されるわけではない。
STX
STX (Streaming Transformations for XML) は XSLT に触発された言語だが、ストリーミングを乱さないように変換をワンパスで行うよう設計されている。Javaによる実装 (Joost) と Perlによる実装 (XML::STX) がある。
XML Script
Perl に触発された命令型スクリプト言語であり、XML の構文を使う。XPath と同時に独自の DSLPath を入力木構造からノードを選択するのに使う。
FXT
Standard ML で実装された関数型XML変換ツール。
XDuce
XSLT に比較して文法が軽量化された型付き言語。実装はMLで行われている。
CDuce
XDuce を汎用関数型言語に拡張したもの。
XStream
XML文書用の関数型変換言語。ストリーミングで使うことができ、入力文書の構文解析が完了する以前から出力を次の処理に渡すことが可能。場合によってはメモリに収まりきらない巨大なXML文書の変換も可能である。XStream のコンパイラは CeCILL というフリーソフトウェアのライセンスで提供されている。
Xtatic
XDuce の手法を C# に適用したもの。
HaXml
Haskellで書かれたXML変換のためのライブラリとツールの集まり。一貫性のある強力なアプローチである。こちらのIBMの文書も参照。新しい類似のソフトウェアとして HXML や Haskell XML Toolbox (HXT) がある。
XMLambda
Erik Meijer と Mark Shields が1999年の論文で解説した言語だが、実装したソフトウェアは存在しない。
FleXML
Kristofer Rose が実装したXML処理言語。XML DTD に変換規則を追加する手法を採用している。
Scala
汎用の関数型とオブジェクト指向型の特徴を兼ね備えた言語。XMLのパターンマッチングによるXML変換をサポートしている。

関連項目[編集]