XMLとの連携・活用

なぜWebアプリケーションにXMLを使うのですか?

テンアートニ 中越智哉
2001/7/12

  XMLがどんなものであるかの説明は、XML eXpert eXchangeフォーラムの記事に譲るとして、ここではWebアプリケーションとXMLとのかかわりについて説明します。

 最近では、サン・マイクロシステムズやマイクロソフト、IBMなどが「Webサービス」の中核にXMLを据えてきています。もはや、XMLがWebの世界でも必須となることは間違いない情勢といえます。

 ここでは、XMLの持つ利点を簡単に解説し、なぜXMLが多くの事例で採用されるのか、その理由について考えてみましょう(とはいえ、こうしてあらためて「なぜXMLを使うのか」ということを考える機会は、最近ではなかなか少なくなってきているのかもしれません。アットマーク・アイティの記事を見ていても、XMLがなぜ優れていて、どうしてよく用いられているのかを論じる時期はもう過ぎていて、日々登場する新しい関連テクノロジに関する解説やチュートリアルの情報がほとんどといってもいいような状況になっているようです)。

 XMLの優れている点を、その特徴を挙げつつ考えると、以下のようなものがあります。

(1)オープンな仕様
 XMLは、W3Cという非営利団体によって勧告された規格であり、特定のベンダによって仕様が変更されることはありません。また、だれでもすべての仕様を無償で入手することが可能なため修得コストが低く、取り組みやすいといえます。

(2)記法を修得しやすい
 XMLが登場する以前から、インターネットの世界ではHTMLがすでに普及していました。そのため、開発者にとってマークアップ型言語への抵抗は少なく、HTMLからのステップアップという流れで修得することができます。

(3)テキストベース
 XMLはHTMLと同じく、すべてテキストベースで記述しますので、コーディングに関して特別なツールを必要としません。もちろん、専用のツールがあれば記述は楽になりますが、一般的なテキストエディタがあれば記述できます。

(4)開発コスト、導入コストが低い
 仕様が公開されていることもあり、XMLをアプリケーションで扱うためのパーサなどの各種API、ライブラリの多くが無償で入手できます。開発面でのコストが低いことで参入企業が増え、市場原理が働いてさらにコストが下がることも期待できます。

(5)既存の言語(SGML)をベースに作られている
 XMLの仕様自体が、SGMLという歴史のあるマークアップ言語をベースに作られていますので、コアな仕様が短期間で大きく変更されるということはまずないといっていいでしょう。開発者にとっては、仕様変更による対応の必要が減ります。

(6)文書の妥当性をチェックしやすい
 DTDにより明示的に文書の構造を定義できるので、フォーマットに従わない無意味な文書を排除できます。また、そのためのチェック機能を開発者が実装する必要もありません(パーサなどに含まれるため)。

(7)可変長で変更に強く、拡張もしやすい
 XMLは、可変長のデータの扱いに優れています。アプリケーションの仕様変更によってデータ項目の追加や削除が必要になった場合でも既存データの修正が少なくて済み、データが修正後の仕様に従っているかを容易に確認できます。

(8)特定の処理系に依存しない
 XMLは特定の処理系に依存するデータ構造ではないため、どのような処理系でもAPIさえあればXMLを扱うことができます。Javaで扱えるのはもちろん、Java以外の言語で扱うことも可能です。

 以下に、ここまでで説明した特徴から考えられるメリットを列挙してみましょう。

●安定性
 コンピュータ・システムの世界ではバージョンアップによって仕様が大きく変わってしまうことが珍しくありません。あまりに変更が大きいと既存のシステムを根本から変更する必要が生じる場合もあり、コストがかさむ結果となります。コンピュータ・システムの世界では、仕様の拡張はあってしかるべきですが、根本的な部分については仕様がきちんと固まっている規格の方が、開発者が手を付けやすいことは間違いないでしょう。XMLでは、上記の(1)(5)(8)などの理由で、仕様が根底から変更されることはなく、利用に関して安定性があるといえます。

●柔軟性
 基盤となる技術の仕様が安定していたとしても、業務システムには変更がつきものです。それは例えば、アプリケーション的な仕様や設計の変更、運用環境に関する変更などです。こういった場合に柔軟な対応ができると、開発者にとってのメリットがあります。XMLでは、上記(7)がまさにそれにあたります。また、(3)(6)(8)なども、柔軟性に寄与しているといえるでしょう。

●参入障壁が低い
 優れたテクノロジであっても、修得が難解であったり、開発のためのツールが限定されていたりすると、開発者にとってはコストが高く、導入をためらうことになったりします。また、市場でのシェアが低いと、市場原理も働かず、使う側の導入コストも高いために普及しないということもあるので、必ずしも技術的優位だけがあればいいというわけではありません。XMLでは、(2)(3)(4)などが、参入障壁を下げているといってよいでしょう。


「Java Solution FAQ」





Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間