目次


Perl 開発者が XML ツールボックスの中身を充実させるには

Perl で XML を使用するための不可欠なツールとライブラリー

Comments

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 は文書の全体を構文解析せずに、文書のセグメントを処理できるように意図されており、大きな文書の処理に有効です。

XML::ParserJames Clark 氏の XML パーサー expat への Perl インターフェース
XML::SimpleXML の読み取りおよび作成のための小さな API で、XML 形式の config ファイルでの使用に適しています。
XML::XPathW3C の XPath 仕様の実装。
XML::DOMXML::Parser の Perl 拡張機能で、DOM レベル 1 互換インターフェースを使ったオブジェクト指向のデータ構造を作成します。libxml-enno の一部として配布されています。
XML::LibXMLPerl interface to the gnome libxml2 library for high performance DOM processing.
XML::GrovePerl ハッシュのツリーを使用して、構文解析済みの XML、HTML、または SGML インスタンスの情報に簡単にアクセスします。
XML::Twig巨大な文書を部分的な塊に分けて処理できるようにする、XML 文書のツリー・インターフェース。
libxml-perlPerl による XML 処理のための Perl モジュール、スクリプト、および文書の集まり。libxml-perl ソフトウェアは XML::Parser、PerlSAX、XML::DOM、XML::Grove などと連動します。
XML::SchematronXSLT-based XML validation module
Xerces PerlApache XML プロジェクトの Xerces XML パーサーへの Perl インターフェース
REX正規表現を使った XML 文書の簡易構文解析
PYXXML to PYX generator

XML 作成ツールと読み取りツール

よく知られていることですが、Perl には、あらゆる種類のレガシー・システムに接続できる豊富なオプションが揃っています。このような接続性や、Perl データ構造を XML へ変換する機能のおかげで、Perl は既存システム用の XML インターフェースを作成する優れたプラットフォームとなっています。XML::Generator、XML::Dumper、XML::Writer、XML::Simple などの拡張機能は、Perl データ構造から XML にデータを書き出したり戻したりする際のさまざまな処理を実行します。

XML::GeneratorPerl 内部から XML を生成するためのモジュール。
XML::WriterXML 文書を作成する Perl プログラムを支援するモジュール。このモジュールは属性値や文字データのあらゆるエスケープ処理を行い、さまざまなタイプのマークアップを構築します。
XML::EdifactModule for translating UN/Edifact documents to XML

プロトコルとライブラリー

Perl では、新しいプロトコルや標準規格が一般に早い段階でサポートされています。SOAP、WDDX、RSS、XML-RPC、および BizTalk 用の拡張機能があります。XSL とそれに付随する標準規格が、XML::XSLT、XML::XPATH、XML::QL、および XML::XQL モジュールでサポートされています。

XML は、データ交換および接続のメカニズムとしてしばしば重要な役割を果たします。モジュールの中には、XML と他のデータ・ソースやデータ形式の間の変換を可能にするものがあります。たとえば DBIx::XML_RDB は、DBI インターフェースを使ってデータベースから XML にデータ変換します。

SOAP::LiteAn excellent implementation of the SOAP protocol
SOAP/Perlプラットフォームに依存しない方法でサービス、オブジェクト、およびサーバーにアクセスするための XML ベースのプロトコル。
WDDX.pmPerl、Java、Cold Fusion など異なる言語の間でデータを交換するためのプロトコル。このモジュールは Perl 変数を WDDX パケットに変換したり、その逆に変換したりします。
XML::RSSRich Site Summary (RSS) ファイルを作成し保守するための基本的なフレームワーク。RSS は主に、(一般にチャンネルと呼ばれている) ニュース・ヘッドラインの配布に使われます。

販売されている製品

Perl の拡張機能のほとんどは、オープン・ソースの形でサポートされています。販売という形でサポートされている Perl 用システムやパッケージの数は、他の言語 (たとえば Java) と比べて圧倒的に少数です。

VelociGen XML Server は販売されている製品の 1 つですが、XML 文書の交換および処理のための言語として Perl を使用しています。スクリプト言語を使用することによって、さまざまなバックエンド・システムに接続するための迅速かつ柔軟な開発が可能になっています。また、バイトコードにコンパイルされた持続性のある環境でシステムが稼働することによって、高いハイパフォーマンスを達成します。

AxKitOpen-source XML Web publishing and content management
VelociGenXデータベースやレガシー・システムへの接続、およびデータ交換機能を備えた XML サーバー。このサーバーは XML 文書を構文解析、操作、および変換するための Perl インターフェースを公開します。

スタイル・シートと照会言語

XML::XSLTXSL テンプレート処理の Perl による実装。XML::XSLT は XSL スタイル・シートで指定した方法で XML ファイルへの変換を実行します。
XML::XPathW3C の XPath 仕様の実装。
XML::QLW3C のノート "XML-QL: A Query Language for XML" の実装。これを使用すると、XML 文書をデータベースと同じように照会し、出力の構成を記述することができます。
XML::XQLXQL 仕様の Perl による実装で、XML::DOM のような XML ツリー構造の XQL 照会を可能にします。これは libxml-enno の一部として配布されています。
XML::LibXSLTPerl interface to the gnome libxslt library for high performance XSLT processing.
XML::XSLT::WrapperGeneric wrapper for the various XSLT modules
XML::XalanPerl interface to the Apache Xalan XSLT library

データベース・インターフェース

DBIx::XML_RDBデータベースのような既存の DBI データ・ソースから XML を作成するための Perl 拡張機能。
XML::CSVConverts comma separated values to XML

ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=XML
ArticleID=241323
ArticleTitle=Perl 開発者が XML ツールボックスの中身を充実させるには
publish-date=03012000