XML という言葉を初めて耳にした人々の多くは、なぜ別のマークアップ言語が必要なのですか と聞きます。今日では、だれのブラウザーでも HTML をサポートしていますし、なぜこれ以上タグを作成する必要がある のでしょうか? 多くの HTML タグが大規模ブラウザー・ベンダーによって同じようにインプリ メントされていないとしても、なぜ誰もかもが自分独自のタグを作る必要があるのですか? これらの質問に対する回答は、HTML と XML はそれぞれ異なる機能を果たすということです。つまり、HTML タグが画面表示の方法を記述するのに対し、XML タグは対象の意味を記述します。別の言い方をすれば、HTML タグが人間とコンピューターの間の対話を扱うように設計されているのに対して、XML タグは 2 つのコンピューター間の対話を扱うように設計されています。
この違いを確認するには、HTML 版と XML版の小さなサンプル文書を見てください。リスト 1 は、HTML 版を示したもの です。
リスト 1. 住所の HTML による記述
<p><b>Mrs. Mary McGoon</b>
<br>
1401 Main Street
<br>
Anytown, NC 34829</p>
|
この文書をブラウザーで表示すると、次のようになります。
Mrs. Mary McGoon 1401 Main Street Anytown, NC 34829 |
米国の郵便用の住所について知識のある人であれば、だれでも、この文書がだれかの住所であると分かります。郵便コードや他の規則が異なる別の国の人であっても、これがだれかの住所であることは推測がつきます。しかし、この文書を解釈するためにプログラムを作成することについて想像してみてください。この住所から郵便番号を取り出すためのアルゴリズムは、次のようになります。
2 つの<br>タグを持つ<p>タグがある場合、2 番目の <br>タグのテキストを取ります。そのテキストでは、コンマまでのすべての文字がシティーの名前であり、そのコンマの後の 2文字の字句が州の名前であり、最後の字句が郵便番号です。
このアルゴリズムはこのサンプルの HTML 文書でも機能しますが、このアルゴリズムでは解読できない完全に有効なアドレスを考えつくことは容易です。また、住所が入っている<p>タグと他のすべての<p>タグを区別する問題も全く考慮していません。この住所はブラウザー上では正常に表示されますが、HTML マークアップは、他のプログラムによる処理にはほとんど適していません。
ここで、リスト 2 の同じ文書の XML 版を見てみましょう。
リスト 2. 同じ住所の XML による記述
<?xml version="1.0"?>
<address>
<name>
<title>Mrs. </title>
<first-name>Mary</first-name>
<last-name>McGoon</last-name>
</name>
<street>1401 Main Street</street>
<city>Anytown</city>
<state>NC</state>
<zipcode>34829</zipcode>
</address>
|
HTML 文書の場合と同様に、米国の郵便用の住所について知識のある人であれば、だれでも、この文書を住所として認識します。さらに重要なことは、コンピューターがこのアドレスの各部分も認識できるということです。次に、XML 文書の中の郵便番号を検出するためのさらに堅固なアルゴリズムを示します。
郵便番号は<zipcode>タグのテキストです。
このアルゴリズムのコーディングは非常に簡単ですが、このアルゴリズムでは解読できない有効なアドレスを書くのは、不可能とはいいませんが、困難な場合があります。コンピューターは、このアドレスのすべての部分と、それぞれの部分が互いにどのように関連しているかを理解できますので、そのデータを表示するための最良の方法を決定することができます。たとえば、XML 文書は次のように表示できます。
Mrs. Mary McGoon 1401 Main Street Anytown, NC 34829 |
このスタイルで XML タグを表示する場合は、これらのタグを、以前の HTML 文書と仮想的に同じである HTML マークアップに変換することができます。この住所の郵送用ラベルを印刷したい場合は、文書を次のように表示することができます。
この場合、郵便局のスキャナーに便利なように、Mrs. McGoon の郵便番号をバーコードで印刷します。ここでの最も重要な考え方は、内容と表示が分離されていることです。データとその構造は、表示とは独立した方法でタグが付けられており、それを表示する方法の決定は、できるだけ延期されます。
だれでも、XML によって Web がどのように変わっていくかを知りたがっています。まずはじめに、XML は HTML と置き換わりません 。この 2 つのマークアップ言語は、それぞれ別の目的のために設計されていて、これから何年もの間 Web 上で共存していくものです。
Web 開発者の XML に関する最大の心配事が収まりましたから、XML が Web にどのような影響を与えるかについて考えてみましょう。XML は、Web に汎用データ・フォーマットを確立します。ビジネス間コミュニケーションの改善、エージェントの改善、および検索の改善が、すべて XML によって可能になります。
今日の Web を見ると、TCP/IP、HTML、Java など、いくつかの汎用テクノロジーが使用されていることが分かります。
- TCP/IP は、汎用接続プロトコルです。このため、メインフレームからラップトップや携帯電話に至るまでのすべてが、TCP/IP を使用して Web に接続できます。
- HTML は、汎用レンダリング言語です。すべてのブラウザーがすべての機能をサポートするわけではありませんが、どのブラウザーにも表示できる HTML タグのセットがあります。
- 最後に、Java の "1 回書いて、どこででも実行"("write once, run anywhere")の約束によって、非常に容易に Web 上で広範囲にわたって各種のデバイスがサポートされています。
このような汎用テクノロジーによって、どのプラットフォーム上でも稼働する Web アプリケーションを比較的簡単に作成できます。XML は、汎用データです。これによって e-business の構図が完成します。データ構造を記述した XML 文書を作成することができ、しかも、構造化されたデータを Web を介してどこにでも送信することができます。XML は、データ交換形式としての能力と柔軟性によって、Web を変えていくのです。
e-business を実行する際の難題の 1 つは、他の組織体とのコミュニケーションです。これらの組織体は、パートナーであるか、サプライヤーや競争相手であるか、あるいは同一会社内の他のグループであるかを問いません。XML はビジネス間コミュニケーションを単純化します。なぜなら、任意の 2 つの組織体が合意しなければならないことは、データを表すために使用する XML タグ・セットだけであるからです。どちらの組織体も、相手のバックエンド・システムがどのように編成されているかを知る必要はありません。自分のシステムが OS/390 を実行し、相手のシステムが Linux を実行しても、そのことは問題ではありません。自分のデータベースがリレーショナルで、相手のデータベースがオブジェクト指向であっても、そのことは問題ではありません。自分のコードが C++ で書かれ、相手のコードが Java で書かれていても、そのことは問題ではありません。重要なことはただ 1 つ、データ交換のためにタグの標準セットに合意することです。
タグ・セットに合意したら、どちら側からでも、XML 文書をバックエンド・システムでの処理に必要な任意の形式に変換するマッピング・コードを書くことができます。たとえば、パートナーから受け取った XML 文書を構文解析した後、システムで何らかのビジネス・プロセスを起動するトランザクションにそれを変換することができます。さらによい点は、別の会社が自分たちのグループに参加しても、この新しい会社のシステムと対話するためのコードを書く必要がなくなります。この会社は、わたしたちが XML タグ・セットに定義した文書規則を守ってくれればいいのです。
エージェントを書く場合の困難な作業の 1 つは、着信データの意味を理解することです。優れたエージェントは、情報を正しく解釈し、それに応じた返事をします。エージェントに送信されたデータが XML で構造化されていれば、そのデータがどのような意味を持っているか、またそのデータが既出である可能性のあるデータとどのように関連しているかを、エージェントはさらに正確に理解しやすくなります。サンプル HTML 文書に示しているように、HTML タグに含まれているデータを解釈するためのコードを書くことは、難しく、エラーを起こしがちです。XML の場合は、データ構造の判別と操作が容易です。
昨今の Web がかかえている大きな問題は、検索エンジンが HTML を正しく処理できないということです。たとえば、Chip という名前の人物を検索する場合は、チョコレート・チップ・クッキー、RAM チップ、ポーカー・チップ、と続き、そこで Chip という名前の男性のページにたどりつきます。一方、"Chip" の値を持つタグが含まれている文書を検索する場合は、もっとよい結果が得られます。検索を、特定のタグ・セットを使用する XML 文書に限定できるため、関係のない大量のコンテンツを除去することができます。
余談ですが、検索結果を特定のタグ・セットを使用する文書に限定できることは、XML の受け入れを推進する市場の効果の 1 つです。たとえば、自動車ディーラーのグループが中古車用のタグ・セットを定義すると、検索エンジンはこれらのタグを使用する XML 文書しか検索しないため、いくつかの名の通った検索エンジンは優れた結果を出してくれます。あなたが自動車ディーラーであれば、この市場に参入してこのタグ・セットをサポートするか、あるいはこの市場から完全に撤退するかのいずれかです。あなたの在庫が標準の XML マークアップで記述されていなければ、XML 検索エンジンを使用する自称カー・バイヤーからは検索できません。
XML を使って、いつでも e-business アプリケーションを完全に新しく生成することができます。HTML とグラフィカル・ブラウザーが Web 使用の急激な成長を誘発したように、XML を e-business に拡張するともう 1 つの急激な成長期が始まります。さあ始めましょう!
- XML に関する公式の定義はXML 仕様 にあります。
-
XML チュートリアルの入門編 を使用して、XML に関するもっと詳しい情報を探し出してください。終了するまで約 45 分かかりますが、10 分もすれば、あなたは基本的な語彙を学ぶことができます。
Doug Tidwell は、IBM のシニア・プログラマーで、サイバー・エバンジェリストでもあります。彼は 1/7 世紀以上のプログラミング経験を持ち、この数年間、XML 関連アプリケーションの開発に従事しています。彼のサイバー・エバンジェリストとしての作業は、基本的に忙しそうに見せることであり、またお客様が XML テクノロジーを評価し、インプリメントするのを手助けすることです。表面にジルコンをちりばめた特別設計のピンセットを使用して、彼は、バンダービルト大学でコンピューター・サイエンスの修士号を取得し、ジョージア大学で英文学士号を取得しました。彼のアドレスは、dtidwell@us.ibm.com です。