XProc

XProc
ファイル名拡張子
.xpl
インターネットメディアの種類
アプリケーション/xproc+xml
フォーマットの種類スクリプト言語/データ処理
延長XML
標準XProc 3.1
Webサイトxproc.org

XProcは、ドキュメントをパイプライン処理するためのXML変換言語です。変換やその他のステップを連結することで、目的の結果を得ることができます。XML HTMLJSONテキストバイナリ形式のドキュメントを処理できます。

現在の(安定)バージョンは3.1です。[1] XProc 1.0 [2]はW3C勧告ですが、XProc 3.1はW3C XProc Next Community Groupによって開発された標準です[3]

主な特徴は次のとおりです。

  • XProc は、パイプラインを記述できる XML で表現されるプログラミング言語です。
  • XProc パイプラインは、データを入力として受け取り (多くの場合 XML)、これを特殊な手順に渡して最終結果を生成します。
  • 手順は、属性の追加などの単純なものから、分割/結合/プルーニング、XSLTおよびXQueryによる変換、スキーマに対する検証などの複雑なものまで多岐にわたります。
  • パイプライン内では、変数の操作、分岐、ループ、エラーのキャッチなどを行うことができます。すべては、流れるデータに基づいています。
  • XProcパイプラインは、直線的なステップの連続に限定されません。フォークやマージも可能です。
  • XProcでは、他のステップを組み合わせてカスタムステップを作成できます。これらのカスタムステップは、他のステップと同じように使用できます。そのため、XProcではパイプラインとステップは互換性のある概念です。
  • カスタム ステップはライブラリに収集できます。
  • XProcは、ディレクトリの検査、zipファイルからのドキュメントの読み取り、ディスクへの書き込みなど、処理を取り巻くハウスキーピングを支援します。
  • これらのパイプラインを実行できるソフトウェア、いわゆる XProc プロセッサがあります。

以下は (非常に) 単純な XProc パイプラインです。

<p:declare-step xmlns:p= "http://www.w3.org/ns/xproc"バージョン= "3.0" >  

  <p:入力ポート = "ソース" /> <p:出力ポート = "結果" /> 
   

  <p:add-attribute属性名 = "timestamp"属性値 = "{current-dateTime()}" /> <p:delete match = "@data" />  
   

</p:宣言ステップ>
  • 2つのポートを宣言します:
    • と呼ばれる入力ポートsource。ここに元の文書が流れ込みます。
    • と呼ばれる出力ポートresult。ここから結果のドキュメントが出力されます。
  • ポートから入力されたドキュメントは、source自動的にパイプラインの最初のステップに流れ込みます。このステップでは、現在の日時をp:add-attribute持つ属性が追加されます。timestamp
  • この結果は、p:deleteと呼ばれるすべての属性を削除するステップに流れますdata
  • は最後のステップなのでp:delete、結果のドキュメントは出力resultポートから出力されます。

したがって、このパイプラインに次の XML ドキュメントを提供するとします。

<example data= "321" > <item data= "123" >いくつかのデータ... </item> </example> 
    

次のように出力されます。

<example timestamp= "2024-09-11T15:05:22.82+02:00" > <item>いくつかのデータ... </item> </example> 
   

属性に記録される正確な日時は、timestampもちろん、パイプラインが実行された日時によって異なります。

XProcの理解と学習

XProcウェブサイト[4]の学習ページには、XProcコミュニティグループが把握しているすべての学習資料と参考資料へのリンクが掲載されています。入門学習資料を掲載した特別な101セクションもあります。

歴史

XML処理のための何らかのプログラミング言語のアイデアは、20世紀末のXMLの黎明期から存在していました。しかし、W3CがXML処理モデルワーキンググループと呼ばれるワーキンググループを立ち上げたのは、2005年末になってからでした。その結果、2010年5月11日付のXProc 1.0勧告が策定されました。[2]

XProc 1.0プロセッサを開発する様々な試みがなされてきました。現在、オープンソース製品として入手可能な、1.0標準規格を完全に実装しているのは、XML Calabash [5]とMorganaXProc [6]の2つだけです。

バージョン1.0のリリース後、XProcワーキンググループは次期バージョンに関する議論を継続しました。バージョン2.0のアイデアも提案されましたが、非XML構文に基づいていたため、コミュニティからの支持は得られませんでした。ワーキンググループへの関心は薄れ、2016年に解散しました。

2017年6月、XProc Nextコミュニティグループ[3]が設立され、完全にXMLベースの新バージョンの開発を開始しました。これは2.0イニシアチブとは全く異なるアプローチであったため、バージョン番号は3.0に引き上げられました。安定版は2022年9月12日にリリースされました[1]。

2024年にワーキンググループはマイナーアップデートの作業を開始し、2025年5月29日にXProc 3.1としてリリースされました。このアップデートでは言語仕様と標準ステップライブラリのいくつかのエラッタが修正され、以下のステップライブラリが完成した仕様として公開されました。[7]

  • 動的パイプライン実行 - 動的に構築されたパイプラインを実行する
  • ファイルステップ - ファイルシステム上のファイルにアクセスして管理するためのステップ
  • オペレーティング システムの手順 - オペレーティング システムに関する情報にアクセスし、外部コマンドを実行します。
  • メールの手順 - メールの操作
  • ページ化されたメディアの手順 - XMLまたはHTMLドキュメントCSSまたはXSL-FOを適用します
  • テキストステップ - テキスト関連のオプションステップ(例:マークダウンからHTMLへの変換)。標準ステップライブラリには、テキスト操作に必要ないくつかのステップが既に含まれています[8]
  • 検証手順 - 入力がスキーマで表現された一連のルールに準拠しているかどうかをテストします。入力はXMLHTMLJSONのいずれかです。
  • Invisible XML - Invisible XML の操作用

実装

次のプロセッサは XProc 3.0 以上をサポートしています。

XProc 3の実装
名前 メンテナー 完全 注記
モルガナXProc-IIIse アヒム・ベルンゼン XProc 3.1標準の必要な機能に加え、オプション部分のほとんどを実装しています。[9] [10]
XML カラバッシュ 3 ノーマン・トーヴィー・ウォルシュ XProc 3.1標準のすべての必須機能とオプション部分のほとんどを実装します。[9] [11] さまざまな拡張ステップも実装

XProc 3.0は下位互換性がないため、上記の実装はXProc 1.0をサポートすることは期待されていません。[12]

旧バージョン

次のプロセッサは XProc 1.0 標準をサポートしています。

  • XML Calabash [5]はNorman Walshによって保守されています。このプロセッサはOxygen XML Editor製品にも統合されています。
  • Morgana Xproc 1.0、[6] Achim Berndzenによってメンテナンスされています。

他にも XProc 1.0 の実装はいくつかありましたが、これらは不完全であったり、メンテナンスされていません。

XProcのロゴとマスコットは、フィンランド語でパイプラインを意味する「Kanava」という名の魚です。ロゴはBethan Tovey-Walsh氏によって作成されました。

参考文献

  1. ^ ab XProcのウェブサイト
  2. ^ ab XProc 1.0仕様
  3. ^ ab XProc nextコミュニティグループ
  4. ^ XProc 3.0 学習ページ
  5. ^ ab XML Calabash 1.0 プロセッサ
  6. ^ ab Morgana XProc 1.0プロセッサ
  7. ^ "XProc - 仕様". xproc.org . 2025年8月9日閲覧
  8. ^ 「XProc 3.1: 標準ステップライブラリ」. spec.xproc.org . 2025年8月9日閲覧。
  9. ^ ab "XProc - プロセッサ". xproc.org . 2025年8月9日閲覧
  10. ^ MorganaXProc-IIIse XProcプロセッサ
  11. ^ XML Calabash 3.0 プロセッサ
  12. ^ Tovey-Walsh, Norman (2020年2月18日). 「XProc 3.0: Ready or Not」. so.nwalsh.com . 2025年8月9日閲覧。
「https://en.wikipedia.org/w/index.php?title=XProc&oldid=1322935233」から取得