Loading article…
ソフトウェアでは、XML (Extensible Markup Language) プロセス、特にXML 変換とXML 検証が接続されると、 XML パイプラインが形成されます。
たとえば、 2 つの変換 T 1と T 2 がある場合、これら 2 つを接続して、入力 XML ドキュメントを T 1で変換し、 T 1の出力を入力ドキュメントとして T 2に渡すことができます。上記のような単純なパイプラインは線形と呼ばれ、単一の入力ドキュメントが常に同じ一連の変換を経て単一の出力ドキュメントを生成します。
線形演算
線形操作は少なくとも2つの部分に分けられる
マイクロオペレーション
内部文書レベルで動作する
- 名前の変更- コンテンツを変更せずに要素または属性の名前を変更します
- 置換- 要素または属性を置き換えます
- 挿入- 指定されたポイントに出力ストリームに新しいデータ要素を追加します
- 削除- 要素または属性を削除します(入力ツリーの剪定とも呼ばれます)
- ラップ- 要素を追加の要素でラップします
- 並べ替え- 要素の順序を変更します
ドキュメント操作
入力文書を全体として受け取る
- 恒等変換- 入力をそのまま出力にコピーする
- 比較- 2つの文書を比較します
- 変換- 指定されたXSLTファイルを使用して入力ファイルの変換を実行します。バージョン 1.0 または 2.0 を指定する必要があります。
- 分割- 単一のXML文書を個別の文書に分割します
シーケンス操作
これらは主にXProcで導入され、ドキュメント全体のシーケンスを処理するのに役立ちます。
- カウント- 一連の文書を受け取り、それらをカウントします
- 恒等変換- 入力文書のシーケンスをそのまま出力にコピーする
- split-sequence - ドキュメントのシーケンスを入力として受け取り、一致するルールに応じて異なる出力にルーティングします。
- wrap-sequence - ドキュメントのシーケンスを入力として受け取り、それを 1 つ以上のドキュメントにラップします。
非線形
パイプライン上の非線形操作には次のものが含まれます。
- 条件文— 条件が満たされた場合に特定の変換が実行され、そうでない場合は別の変換が実行される
- ループ- ドキュメントから選択されたノードセットの各ノードに対して変換が実行されるか、条件が偽と評価されるまで変換が実行されます。
- ティー— ドキュメントが複数の変換に送られ、同時に実行される可能性がある
- 集約— 複数の文書を 1 つの文書に集約する
- 例外処理- 処理中に障害が発生すると、別のパイプラインが処理される可能性がある
一部の標準では、変換をマクロ(ファイル全体に影響する変更)またはマイクロ(要素または属性のみに影響する変更)に分類しています。
XMLパイプライン言語
XML パイプライン言語は、パイプラインを定義するために使用されます。XML パイプライン言語で記述されたプログラムは、XML パイプライン エンジンと呼ばれるソフトウェアによって実装され、プロセスを作成し、それらを相互に接続して、最終的にパイプラインを実行します。既存の XML パイプライン言語には次のものがあります。
標準
- XProc: XMLパイプライン言語は、線形および非線形XMLパイプラインを定義するためのW3C勧告[1]です。
製品固有
- W3C XMLパイプライン定義言語はW3Cノートで規定されています。[2]
- W3C XML パイプライン言語 (XPL) バージョン 1.0 (ドラフト) [3] [4]は、W3C の提案書で指定されており、Orbeon Presentation Server OPS (現在は Orbeon Forms と呼ばれています) のコンポーネントです。この仕様は、言語の以前のバージョンの実装を提供します。XPL では、条件文、ループ、T 型、集約、サブパイプラインを含む複雑なパイプラインを宣言できます。XProc は、XPL のスーパーセットです。[5]
- Cocoonサイトマップでは、他の機能の中でも、XML パイプラインの宣言が可能です。Cocoon サイトマップは、XML パイプラインの概念を実装した最も初期のものの 1 つです。
- smallx XML パイプラインは、smallx プロジェクトによって使用されます。
- ServingXML は、パイプラインでフラット XML、XML フラット、フラット フラット、および XML-XML 変換を表現するための語彙を定義します。
- PolarLake のランタイムで XML パイプラインを定義するために使用されるPolarLake Circuit Markup Language。回路は、XML ストリームのフラグメント (通常は SAX または DOM イベント) が通過するパスのコレクションです。コンポーネントはパス上に配置され、低レイテンシ プロセスでストリーム (および/または外部の世界) と対話します。
- xmlshは、XMLとテキストパイプラインをネイティブにサポートするUnixシェルに基づくスクリプト言語です[1]
- Stylus Studio XML Pipeline は、入力、出力、XQuery、XSLT、検証、XSL-FO から PDF、XML への変換、XML からの変換、選択、警告、停止などの操作を定義するビジュアル文法です。
パイプの粒度
異なる XML パイプライン実装では、異なるフロー粒度がサポートされます。
- ドキュメント: ドキュメント全体がアトミック ユニットとしてパイプを通過します。ドキュメントは一度に 1 つの場所にしか存在できません。ただし、通常は複数のドキュメントが同時にパイプに存在する場合があります。
- イベント: 要素/テキスト ノード イベントは、異なるパスを通過する場合があります。ドキュメントは、同時に多くのコンポーネントを通過する場合があります。
標準化
2010年5月までは、XMLパイプライン言語の標準規格は広く普及していませんでした。しかし、 2010年5月にW3C勧告としてW3C XProc標準が導入されたことで、 [6]広く普及することが期待されます。
歴史
- 1972年、ベル研究所のダグラス・マキロイがUNIXコマンドシェルにパイプ演算子を追加しました。これにより、あるシェルプログラムの出力をディスクに出力することなく、別のシェルプログラムの入力に直接入力できるようになりました。これにより、UNIXのawkやsedなどのプログラムを特殊化しながらも連携させることが可能になりました[2]。[7] 詳細については、パイプライン(Unix)を参照してください。
- 1993年、ショーン・マクグラスはSGML処理用のC++ツールキットを開発した。[8]
- 1998 年、Stefano Mazzocchi がXML パイプラインを使用する最初のソフトウェア プログラムの 1 つであるApache Cocoonの最初のバージョンをリリースしました。
- 1998 PolarLake は、XML パイプラインを含む XML オペレーティング システムを構築しました。
- 2002 年にSun Microsystemsの Norman Walsh 氏と Eve Maler 氏が提出したメモ、および 2005 年に Orbeon の Erik Bruchez 氏と Alessandro Vernet 氏が提出した W3C 提案は、実際の標準化活動を生み出す重要なステップでした。どちらの提案も W3C の勧告には直接はなりませんでしたが、W3C XML 処理ワーキング グループにとって重要なインスピレーションの源と見なされました。
- 2005 年 9 月、W3C XML 処理ワーキング グループが発足しました。このワーキング グループの任務は、XML パイプライン言語の仕様を作成することでした。
- 2008年8月、XMLパイプライン言語であるxmlshがBalisage 2008で発表されました。
参照
参考文献
- ^ 「XProc: XML パイプライン言語」 W3.org . 2013 年 6 月 14 日閲覧。
- ^ 「W3C XML パイプライン定義言語」。
- ^ 「XML Pipeline Language (XPL) バージョン 1.0 (ドラフト)」。W3.org。2013年 6 月 14 日閲覧。
- ^ 「XML パイプライン定義言語 バージョン 1.0」。W3.org。2002 年 2 月 28 日。2013 年 6 月 14 日に閲覧。
- ^ 「XML パイプライン: XPL と XProc」。Orbeon。2007 年 5 月 22 日。2012 年3 月 14 日閲覧。
- ^ 「XProc: XML パイプライン言語」 W3.org . 2013 年 6 月 14 日閲覧。
- ^ 「初期の Unix の歴史と進化」 www.bell-labs.com。2015 年 4 月 8 日時点のオリジナルよりアーカイブ。2013 年 6 月 14 日閲覧。
- ^ 「FAQ」. Xpipe.sourceforge.net. 2001-12-09 . 2013-06-14閲覧。
外部リンク
標準
推奨事項
- XProc: XML パイプライン言語、W3C 勧告 2010 年 5 月 11 日
作業草案
- W3C XML処理モデルワーキンググループ
- W3C XML パイプライン定義言語ノート
- W3C XML パイプライン言語 (XPL) バージョン 1.0 (ドラフト) の提出
製品別
- XProc チュートリアルとリファレンス
- Oracle の XML パイプライン定義言語コントローラ実装XML 開発者キットの一部であり、個別にダウンロードすることはできません
- コクーンサイトマップ
- NetKernel XML パイプライン
- パイプラインによる複雑なドキュメント生成の管理
- XML パイプライン言語 (XPL) ドキュメント
- SXパイプ
- PolarLake リファレンスデータ管理 PolarLake XML 回路とリファレンスデータ管理
- スモールエックス
- XML の配信
- Stylus Studio からの XML パイプライン実装 - このプログラムを使用すると、検証やHTML Tidyなどの XML ファイルに対する他の操作とともに XML 変換を連鎖させることができます。
- IVI XMLパイプラインサーバー XMLパイプラインサーバーは、Stylus Studio XMLパイプライン言語の実装です。
- Norman Walsh の XProc Web サイト - Norman Walsh は W3C XProc 標準委員会の議長です。
- yax - 現在コマンドラインと Apache ant インターフェースを備えた XProc 実装
- Yahoo! Pipes を使用すると、ユーザーは Web ベースのビジュアル環境で複数のソースのデータ マッシュアップを作成できます。
- xmlsh Unix シェルに基づいて xml を操作するためのシェル。インプロセス マルチスレッド xml およびテキスト処理パイプラインをサポートします。
- [3] XSLTでXMLパイプラインを実装する方法
- CalabashはXProcの実装である
- CalumetはEMCのXProc実装です
- QuiXProcはInnovimaxのXProc実装です。
