Perl では、他のどの言語と比較しても、XML 開発者のためのモジュールやライブラリーが非常に豊富に揃っています。Perl/XML の世界は活気に満ちており、単に新しいプロトコルや標準をサポートしているだけにとどまらず、XML の発達に幅広く貢献しています。Perl の柔軟な拡張性のおかげで、C モジュールおよび C++ モジュールを簡単に Perl のフレームワークに統合することができます。こうして処理スピードと使い易さの両方が実現されます。
これから紹介するツールは、私の Perl/XML ツールおよびアプリケーションの開発経験に基づいて選んだ私のお気に入りに、様々なメーリング・リスト、雑誌、Web ページの中から厳選したよりすぐりのツールを加えたものです。これらのツールを使えば、XML ベースの本格的なアプリケーションを今すぐにでも開発できることでしょう。
XML が登場した初期の頃から、いろいろな Perl 用 XML パーサーが提供されてきました。その中で最も普及しているのが XML::Parser モジュールで、これは James Clark 氏が開発した優れたパーサーであるexpat の Perl 用インターフェースです。Apache XML プロジェクトの Xerces パーサーは現在まだ開発中ですが、これも Perl をサポートしています。この他にも、正規表現ベースの REX など、数多くの純粋な Perl パーサーがあります。また SAX API は PerlSAX 拡張を介してサポートされています。
さらに、Perl では DOM、Grove、Twig など非常に豊富な XML オブジェクト・モデルが提供されています。DOM モジュールは DOM 規格のレベル 1 の実装であり、Grove および Twig はこれに代わるオブジェクト・モジュールです。このうち Twig は文書の全体を構文解析せずに、文書のセグメントを処理できるように意図されており、大きな文書の処理に有効です。
よく知られていることですが、Perl には、あらゆる種類のレガシー・システムに接続できる豊富なオプションが揃っています。このような接続性や、Perl データ構造を XML へ変換する機能のおかげで、Perl は既存システム用の XML インターフェースを作成する優れたプラットフォームとなっています。XML::Generator、XML::Dumper、XML::Writer、XML::Simple などの拡張機能は、Perl データ構造から XML にデータを書き出したり戻したりする際のさまざまな処理を実行します。
Perl では、新しいプロトコルや標準規格が一般に早い段階でサポートされています。SOAP、WDDX、RSS、XML-RPC、および BizTalk 用の拡張機能があります。XSL とそれに付随する標準規格が、XML::XSLT、XML::XPATH、XML::QL、および XML::XQL モジュールでサポートされています。
XML は、データ交換および接続のメカニズムとしてしばしば重要な役割を果たします。モジュールの中には、XML と他のデータ・ソースやデータ形式の間の変換を可能にするものがあります。たとえば DBIx::XML_RDB は、DBI インターフェースを使ってデータベースから XML にデータ変換します。
Perl の拡張機能のほとんどは、オープン・ソースの形でサポートされています。販売という形でサポートされている Perl 用システムやパッケージの数は、他の言語 (たとえば Java) と比べて圧倒的に少数です。
VelociGen XML Server は販売されている製品の 1 つですが、XML 文書の交換および処理のための言語として Perl を使用しています。スクリプト言語を使用することによって、さまざまなバックエンド・システムに接続するための迅速かつ柔軟な開発が可能になっています。また、バイトコードにコンパイルされた持続性のある環境でシステムが稼働することによって、高いハイパフォーマンスを達成します。
| パーサーとオブジェクト・モデル: | |
| XML::Parser | James Clark 氏の XML パーサー expat への Perl インターフェース |
| Xerces Perl | Apache XML プロジェクトの Xerces XML パーサーへの Perl インターフェース |
| REX | 正規表現を使った XML 文書の簡易構文解析 |
| XML::DOM | XML::Parser の Perl 拡張機能で、DOM レベル 1 互換インターフェースを使ったオブジェクト指向のデータ構造を作成します。libxml-enno の一部として配布されています。 |
| XML::Grove | Perl ハッシュのツリーを使用して、構文解析済みの XML、HTML、または SGML インスタンスの情報に簡単にアクセスします。 |
| XML::Twig | 巨大な文書を部分的な塊に分けて処理できるようにする、XML 文書のツリー・インターフェース。 |
| libxml-perl | Perl による XML 処理のための Perl モジュール、スクリプト、および文書の集まり。libxml-perl ソフトウェアは XML::Parser、PerlSAX、XML::DOM、XML::Grove などと連動します。 |
| XML 作成ツールと読み取りツール: | |
| XML::Generator | Perl 内部から XML を生成するためのモジュール。 |
| XML::Dumper | Perl データを XML に書き出したり戻したりするためのモジュール。 |
| XML::Writer | XML 文書を作成する Perl プログラムを支援するモジュール。このモジュールは属性値や文字データのあらゆるエスケープ処理を行い、さまざまなタイプのマークアップを構築します。 |
| XML::Simple | XML の読み取りおよび作成のための小さな API で、XML 形式の config ファイルでの使用に適しています。 |
| プロトコル: | |
| SOAP/Perl | プラットフォームに依存しない方法でサービス、オブジェクト、およびサーバーにアクセスするための XML ベースのプロトコル。 |
| WDDX.pm | Perl、Java、Cold Fusion など異なる言語の間でデータを交換するためのプロトコル。このモジュールは Perl 変数を WDDX パケットに変換したり、その逆に変換したりします。 |
| XML::RSS | Rich Site Summary (RSS) ファイルを作成し保守するための基本的なフレームワーク。RSS は主に、(一般にチャンネルと呼ばれている) ニュース・ヘッドラインの配布に使われます。 |
| Frontier::RPC | HTTP を伝送手段として、XML をエンコードの手段としてそれぞれ使用するリモート・プロシージャー呼び出し (RPC)。このモジュールは Perl 用 XML-RPC を実装しています。 |
| スタイル・シートと照会言語: | |
| XML::XSLT | XSL テンプレート処理の Perl による実装。XML::XSLT は XSL スタイル・シートで指定した方法で XML ファイルへの変換を実行します。 |
| XML::XPath | W3C の XPath 仕様の実装。 |
| XML::QL | W3C のノート "XML-QL: A Query Language for XML" の実装。これを使用すると、XML 文書をデータベースと同じように照会し、出力の構成を記述することができます。 |
| XML::XQL | XQL 仕様の Perl による実装で、XML::DOM のような XML ツリー構造の XQL 照会を可能にします。これは libxml-enno の一部として配布されています。 |
| データベース・インターフェース: | |
| DBIx::XML_RDB | データベースのような既存の DBI データ・ソースから XML を作成するための Perl 拡張機能。 |
| 販売されている製品: | |
| VelociGen XML Server | データベースやレガシー・システムへの接続、およびデータ交換機能を備えた XML サーバー。このサーバーは XML 文書を構文解析、操作、および変換するための Perl インターフェースを公開します。 |
- Perl その他のスクリプト記述言語を使った XML 文書についてさらに詳しく知るには、developerWorks の「チュートリアル: XML とスクリプト言語」 をご覧ください。
- データベース主導型のハイパフォーマンスな動的 Web サイトを構築するためのフレームワークを備えたオンライン・システムについて、"High Performance Web Applications using Perl, Display Templates, XML, and Database Content" (Alex Shah and Parand T. Darugar, 1998 Perl Conference) をご覧ください。
- 最新の XML ニュースや論説をキャッチするには、XML.com をご覧ください。
-
Perl XML FAQ は、よく寄せられる質問に答えています。
-
perl-xml メーリング・リストに加入するには、Lyris@ActiveState.com に "SUBSCRIBE Perl-XML" というメッセージ付きの E-mail を送ってください。

Parand Tony Darugar氏は、Webサービスのソフトウェア・プラットフォームのプロバイダーである、VelociGen Inc. の共同創設者兼チーフ・ソフトウェア・アーキテクトです。氏は、e-business統合のハイパフォーマンス・システム、インテリジェントな分散アーキテクチャー、ニューラル・ネットワーク、人工知能などに関心があります。連絡先はtdarugar@velocigen.com です。