XMLの最新状況と可能性
インフォテリア株式会社 井下田 久幸(いげた ひさゆき)
XMLはインターネット時代のデータ交換フォーマットとして,活躍が期待されている。一方で,XMLに関連してあまりにも多くの仕様が策定されているため,どの仕様が何のために作られているのか理解するのが困難だ。XMLを取り巻く状況を整理し,今後のビジネスにとって重要な仕様がどれかを解説する。
XMLはインターネットの第3の波といわれている。第1が通常のテキストの時代,第2がHTMLの時代,そして第3がXMLの時代である。第1の波では,インターネットというネットワークを通じて情報を伝達できる,ということだけで十分であった。いままでの専用線を使ったクローズドな世界と異なり,オープンなネットワークの実現により世界のグローバリゼーションを予感させてくれた。
第2の波では,テキスト情報のそれぞれの項目にタグを付けることにより情報に表現力が付加できるようになった。データ量を最小限に抑えていた第1の波と比べ付加情報が付けられるようになったのは,ハードウェアの技術の進歩,つまりネットワークの高速化が深くかかわっている。フォント・サイズを大きくしてみたり,色を変えたり,表が使えるようになった。リンクという便利な概念もこの第2の波で普及することとなった。Webブラウザが普及し,デスクトップの顔として定着したのもこの第2の波でである。「ネット・サーフィン」が普及し,かなりの情報がHTMLというフォーマットで流れるようになったが,これらに付加されたタグは人間にとって見やすくできている。「人間が処理しやすい」ということがHTMLの特徴であった。
第3の波は,人間だけでなく,コンピュータにとっても処理しやすいようにしようというものだ。HTMLと同じく「タグ」形式でデータに付加情報を与えるが,その情報の内容はフォントや色など人間にとっての「見栄え」だけでなく,コンピュータにとっても解釈できるための内容にしようというものである。つまり人間だけでなく,コンピュータ同士においてもインターネットを介在して半自動的に情報交換ができるようにしようとしたのが第3の波であり,これを実現する仕様として脚光を浴びているのがXMLである。
インターネットの5番目の柱になる
XMLもHTMLもSGMLという仕様から派生して生まれた。HTMLはSGMLを表示の部分に絞って簡略化してできたものだ。HTMLのインターネット普及に対する貢献度は大きいが,あまりにも簡略化し過ぎているため,拡張性に乏しい面がある。逆にSGMLは複雑過ぎるほど細かな仕様となっており,拡張性という面では優れているものの,その複雑さが普及を妨げてきた。
XMLはSGMLを推進していたメンバが,拡張性を維持しながら普及を狙って改良を重ねたSGMLの簡略化版だ。いうなれば,20%の複雑さで80%の機能をカバーしようという発想だ。そしていまなお進化しつづけているのがXMLである。
XMLがSGMLから最も大きく変わった点はインターネットにおけるデータ・フォーマットの標準として認知されている点だ。それに関してはXMLにかかわる人すべてが認めている。標準が確立することが如何にオープンな市場を展開し,普及させ,そして人々の生産性を向上させることに貢献してきたかは,過去の例を見ればよくわかる。例えばデータベースではRDBが一般的となっているが,ここではSQLという標準が活躍した。インターネットの通信プロトコルとしてはTCP/IPが定着している。インターネット上のアプリケーション開発では,Javaが有力候補となっている。デスクトップとしては前述したようにWebブラウザが共通の「顔」として普及している。XMLはこれらの標準を補完する第5の標準と言えよう。XMLは他の四つの標準とも密接に関与し,掛け橋的な存在となっている。
進むXMLの普及
XMLに関連するさまざまな仕様は現在W3C(World Wide Web Consortium, http://www.w3c.org/)というインターネットの標準化団体によって策定が進められ,いくつかのステップを踏んで最後には「勧告」(Recommendation)という形で標準として推奨している。これを後押しする形で,MicrosoftやIBM,Sun Microsystems,Oracleなど大手コンピュータ・ベンダも積極的にXMLの採用を表明し,既存の製品にXMLの機能を搭載し推進している。
日本でもXMLコンソーシアムやXMLJapan.orgが2000年7月に設立され,追い風となっている。
XMLは,Webブラウザ上で表現される情報やワープロ,帳票系など文書系のデータの標準フォーマットとしての期待も高いが,それだけに留まらず企業間のデータ交換のフォーマットとしても期待されている。企業間の電子商取引を最近「B2B-EC(Business to Business E-Commerce)」と呼ぶことが多くなったが,米Forrester Research社の調査によると,この市場は2003年には全世界で1兆3310億ドル,通産省とアンダーセンコンサルティングの調査によると日本で68兆円と予測されている。この巨大な市場で中心的に利用されるデータ・フォーマットがXMLというわけだ。
テキスト・ベースであることの意義
XMLは前述したように,テキスト・ベースのフォーマットであり,HTMLとよく似た「タグ」を使うのが基本的な特徴となる。テキスト・ベースということと,「タグ」が付加されていることをそれぞれ別に特徴として考えてみたい。
まずテキストベースであることの特徴は何か?
一つは人間にとって読みやすいということ。よく経験することであるが,数年前にワープロなどで作成したデータを久しぶりに開こうとするとソフトが既に対応しなくなっていて見られない,ということがある。テキスト・ベースであれば最悪のケースでもテキスト・エディタで中身を見られる。データの保存性の観点からはテキスト・ベースであることが最適な選択となる。またシステムの運用者や開発者にとっても,テキスト・ベースであることのメリットは大きい。データを処理するプログラムをデバグをするときには可読であると楽である。生産性の向上および運用性の面で大きく貢献する。
第2に人間だけでなく,システムにとっても意義がある。バイナリ・データと異なりWindowsやUNIXといった異なったプラットフォームの間で互換性を取りやすい。オープン・プラットフォームに対応するにはテキスト・ベースがベストである。
同じ「タグ」ベースのフォーマットとしてHTMLとの違いを見ていこう。図1を見ていただきたい。非常にシンプルな発注伝票をHTMLとXMLとで表現してみた。
| 商品名 | 個数 |
単価 | 金額 |
| iPAD | 20 |
10,000 |
200,000 |
| iConnector for DB2 | 1 |
800,000 |
800,000 |
| iXSLT | 2 |
400,000 |
800,000 |
| 小計 | 1,800,000 |
||
| 消費税 | 90,000 |
||
| 合計金額 | 1,890,000 |

これを見て分かるようにHTMLの場合は表示の方法を表すために「Table」とか「TD」などをタグとして使っている。Webブラウザはこれを解釈して表示できるが,業務処理を行うアプリケーションにとってみれば,これが何のデータを表すのかは分からない。一方XMLの方を見ると「商品名」だとか「単価」,「個数」などデータの意味をタグで持たせているため,アプリケーションで処理することが可能となっている。
ここには表示に関する内容は含まれていないが,表示ができないかというとそうではない。XMLにはスタイル言語XSL(Extensible Stylesheet Language )という仕様があり,XMLのファイルとは別のファイル,または同一ファイル内でもXMLの本文とは別の個所に別途「このタグにはこの表示を使う」という指定ができるようになっている。これを使うとXMLをHTMLのような表示用のタグ・フォーマットに変換できる。これでWebブラウザで表示できるようになる。
このように,データの意味と表示方法を別々にできることにはもう一つのメリットがある。例えば一つのXMLファイルに対してXSLファイルを複数用意しておけば,同じデータでも見た目を大きく変えられる。例えば携帯電話向けのページを作るのに,データの内容は変えずにXSLだけを用意すればよい。HTMLでは表示方法それぞれについてHTMLファイルを準備しなければならなかった。
CSVではデータが意味情報を持てない
これまで企業間のデータ交換は「EDI」(Electronic Data Exchange)と呼ばれ専用線を通じてやり取りされることが多かった。データ・フォーマットとしてはCSV(Comma Separated Values)つまりカンマ区切りのデータ・フォーマットが多用されている。インターネットの普及によって,このEDIは「B2B-EC」と名前も変わり目的や用途も拡大しようとしている。CSVもテキスト・ベースであることとデータを意味別に区切って表現している点ではXMLと同じである。しかしカンマ区切りの場合には,データそれ自体にはデータの意味が含まれていない。そのため企業間で,1番目のデータは何のデータで2番目のデータは何のデータというふうにデータの順番と意味とをあらかじめすり合わせる必要があった。
専用線を使った1対1の取引ならこれでもさほど不都合はない。だがインターネットの上では,1対1ではなく,1対多,あるいは多対多の取引が中心になる。つまり不特定多数の企業間でのデータ交換が必要になる。このレベルになるとカンマ区切りで統括するのは無理になる。もちろんイニシアチブを持った企業または団体が厳密にデータフォーマットを取り決めてそれを各社に厳守させれば成り立たないこともないが,汎用性,拡張性,普及性において阻害となる危険性がある。XMLはデータ間の区切りにデータの意味情報も持たせたことによって,この企業間のダイナミックなデータ交換に耐えうるフォーマットとなった。すなわちB2B-ECを現実にするのにXMLは不可欠なのである。
XML間の変換に欠かせないXSLT
さてここで一つ考えなければならない問題がある。XMLでデータの意味をフォーマットに入れられるといっても,各社あるいは各業界によって使うタグが違ってくる可能性がある。例えばあるイニシアチブの持った団体または企業がある業界のB2B-ECを展開しようと考え,タグ名に「<商品名>」や「<価格>」などを使うことを決めていったとする。しかしそこに別の業界のB2B-ECが存在していて,両者の融合が図られたとする。この時一方のタグ名はもしかしたら「<製品名>」や「<値段>」となっているかも知れない。タグが1対1に対応できないケースも当然予想される。もしくはグローバリゼーションにより「<Product>」や「<Price>」といったタグが必要になるかもしれない。
XMLに求められる次なる課題は,こういったXMLに基づき決められたそれぞれのフォーマットの相互データ交換である。
実はXSLTというXMLの一つの仕様がこの解決に大きく寄与するはずだ。前述のようにXMLではタグにはそのデータの意味情報を持たせ,表現情報はXSLという仕様で分離して持たせることになっている。W3Cで進めている標準化作業でXSLは「勧告」直前まで来ているものの,実はまだ「勧告」に至っていない。
一方,XSLの標準化を進めるうちに,途中でXSLT(XSL Transformation)という規定が分離し,独立して仕様策定が進められることになった。前述のようにXSLはXMLのタグを,表示用のタグを持つXMLに変換する(HTMLはXMLに準拠していないが,XMLをHTMLに変換すると考えれば分かりやすい)。変換先を表示用のXMLに限定しなければ,XMLを別のXMLへ変換する規則と一般化できる。これがXSLTであり,XMLファイル間のフォーマット変換法(タグ名や構造の変換)を一般化した規則である。XSLはXSLTの一つの実装としてスタイル言語,つまり表示用の形式に変換する仕様となる。そしてB2B-ECにとっては幸いなことに,XSLTはXSLに先んじて「勧告」となった。
XSLTを利用すると,各社の取り決めたXMLのフォーマットをダイナミックに相手側のXMLのフォーマットに変換するルールを決められる。例えば前述の例ならば<商品名>は<Product>に,<価格>は<Price>に,といった変換のルールをXSLTで記述するのである。これによってXSLTはB2B-ECにおいて非常に重要な仕様となった。図2に先程の発注伝票をXSLTによってさまざまなフォーマットに変換している例を示してみた。

このXSLTまたはXSLを使用してのもう一つのメリットは,さまざまな媒体に応じたデータ・フォーマットに対応できることである。昨今,携帯電話やPDA端末,テレビによるWebの表示など,媒体も多様化している。XMLはこれら表示エリアの異なる媒体に対しても,XSLTやXSLを利用することによって,それに合わせた表示ができる(図3)。

XMLにおけるスキーマ
RDBのテーブル定義が,コラム名やデータ型,データの長さなどスキーマ情報を持っているように,XMLにもスキーマ情報を持たせることが可能である。スキーマの概念はSGMLの時から継承されている。前述の発注伝票を「DTD」や「XML Schema」と呼ばれる2種類のXMLスキーマ言語で図4に表現してみた。

XMLにおけるスキーマでは,このようにXMLの構造(木構造)を規定(制限)したり,タグの名前,データのタイプなどを規定(制限)することができる。これによって,各企業間でのデータ交換においての標準規定を定めることができ,効率的なデータ交換を手助けする。
XMLのデータ生成時にスキーマを利用すれば受け取った側での処理エラーをなくせるし,アプリケーション自身もこのようなフォーマットが正しいかどうかのチェックに手間をかけなくて済み,業務ロジックのチェックや処理に専念できるようになる。つまりXMLにおけるスキーマは,汎用性,拡張性あるXMLをある一定の規制をするためのルールの表記である。これをXMLの実データ(インスタンス)に持たせることで,コンピュータ上でチェックや処理をできるようにする。
XMLの魅力は,この規制を採用することももちろんできるし,逆に採用しないというデータの作成も可能な点である。前者を「検証済みXML文書」と呼び,後者を「Well-Formed XML文書」と呼ぶことが多い。予め最低限のXMLのルール(必ず開始タグ<xxx>と終了タグ</xxx>に囲まれなければならないといったことなど)が守られていれば,自由に生成しやりとりすることができるといったことも,XMLでは許されている。XMLの可能性が広いと言われる所以はここにもある。企業間のシステムのように規定を厳しく取り決めるような業務にもXMLは採用可能であるし,単なる文書データや汎用性,拡張性の高いデータにも応用可能なのがXMLである。
ところで,SGMLからの流れで,今まで「DTD」と呼ばれるXMLスキーマ言語が一般的であったが,今後は変わるだろうといわれている。W3Cでは「XML Schema」と呼ばれる新しいスキーマ言語の標準を制定しており,もうじき「勧告」となる模様だ。他にもMicrosoftが「XDR」というスキーマ言語を制定したり,日本発では「RELAX」というスキーマ言語も提唱されている。これらは方言のようなもので,今後どの言語が主流になるかは不明であるが,以下の理由で,企業間システムにおいてはDTDは「XML Schema」または他の方言に吸収されていくだろうと見られている。
- DTD自身がXMLのフォーマットになっていない。XMLを処理する上で,統一されたフォーマットで処理できないのは,プログラムの効率上望ましくない。
- DTDでは,「整数」,「不動小数点数」,「文字データ」,「日付データ」などといったデータの種類を細かく規定できない。また構造上も繰り返しが最大何回までといったきめ細かな規定ができない。
- DTDでは,「ネームスペース(名前空間)」と呼ばれるXMLの規定に完全に対応できていない。「名前空間」というのは,部品化された複数のXMLのファイルを使用したりする時に,同じ名前の「タグ」名が出てきて競合するために「接頭語」を付けて競合を避けるための規定である。
タグ名競合の回避策ネームスペース
XMLでは,インターネットという情報の伝達性を利用して,部品化も進められている。代表的な例として,数式をXMLで表現できるようにしようと規定している「MathML」とか,地図情報をXMLで表現するための「G-XML」など多数ある。HTML自身をXMLで表現できるようにしようとした「XHTML」といった規定もある。http://www.xml.org/xmlorg_catalog.htmlを一度ご覧いただくと,XMLを応用したさまざまな仕様(スキーマ)が存在することが認識できるであろう。
部品化の話に戻るが,このように多数のXMLで決められたスキーマを再利用することが可能である。C言語でいうinclude文のように,XMLでは外部ファイルを取り込むことができ,XMLの部品化,再利用が可能な特徴を持っている。
なお,語いの混乱をなくす意味で整理すると,DTDやXML Schema,RELAXのようなものをスキーマ言語と呼び,これらによって決められたMathMLなどXMLの各種フォーマットのことをXMLのスキーマと呼んでいる。またこのXMLのスキーマに沿って書かれた実データをXMLインスタンスと呼ぶことが多い。
このように複数のXMLファイルを融合させていく場合,配慮しなくてはならなくなるのが,タグ名や属性情報などの競合回避である。すなわち複数のスキーマ間で同じタグを定義している場合,両方を取り込んだXMLインスタンスでは,どちらのスキーマのタグを使っているのか分からなくなってしまう危険があり,解釈を一意にする必要があるのだ。XMLでは「ネームスペース」という規定によりタグ名の頭に接頭語を付けることでタグ名の競合が起こらないようにしている。これがあることによって,安心して各種のスキーマを定義し,それらを組み合わせて利用できる。
その他のXML技術動向
表1にXMLの仕様の制定の状況についてまとめてみた。
| 勧告時期 | 仕様名 | 現状 |
| 1998年2月 | XML 1.0 | 勧告 |
| 1998年10月 | DOM Level 1 | 勧告 |
| 1999年1月 | Namespaces in XML | 勧告 |
| 1999年11月 | XSLT,XPath | 勧告 |
| 2000年内 | XPointer | 意見受付最終段階 |
| 2000年内 | XLink | 意見受付最終段階 |
| 2000年内 | XML Schema | ドラフト |
| 2000年内 | XML Signature | ドラフト |
| 2000年内 | DOM Level 2 | ドラフト |
| 2000年内 | XSL | ドラフト |
W3Cからの最初の制定,XML1.0が勧告されたのが1998年の2月のことである。いまから1年半以上前のこととなる。その後,前述のネームスペース(1999.1.14),DOM Level 1(1998.10.1),XSLT(1999.11.16),XPath(1999.11.16)が勧告された。「DOM」とはDocument Object Modelの略で,アプリケーションからXMLを操作する際のプログラミング・インターフェイスを取り決めたものである。
「XPath」は,XMLのツリー構造におけるタグの位置を相対的または絶対的に指し示すための方法を規定したものである。話がややこしくなるが,XPathは「XLink」という標準から「XPointer」が分離し,そのXPointerからさらに分離されてできた規定である。XLinkはHTMLでいうリンク機能のXML版で,リンク機能を高度化したものである。一つのリンク点から複数へのリンクを可能にする「拡張リンク」の機能を持たせたり,双方向のリンクを実現させようとする規定を行っているものである。このリンク機能の中からリンク先をポイントする機能の部分を抜き出したのが,XPointerである。XPointerではHTMLと異なり,「アンカー点」の指定のないところにも自由にポイントできるよう仕様を決めているため,既存のXMLファイルの文中にもポイントできるなど,応用性が高められている。
そしてXPointerからパスの指定の部分が分離して標準化として進められたのがこのXPathであり,先に「勧告」となったものである。XPathはXSLTの中でもパスの指定に利用されている。
さて表1を見てお気づきのとおり,勧告目前のもので重要なものがいくつか控えているのがわかるだろう。
XMLにおけるセキュリティとして今後重要になると期待されているXML Signature。インターネット上の重要データのやりとりには欠かせない機能である。いままで電文全体をSSLなどにより暗号化する方法は実用化されているが,今後は電文中の一部分だけを暗号化したいとか,XMLのフォーマットの中で電子認証を行いたいといったニーズは当然起こってくる。その規定を行っているのが,XML Signatureである(図8)。
XMLの操作のコアとなる,DOM Level 2。これは既に勧告済みのDOM Level 1の追加仕様の位置付けとなっている。XMLの操作を行うものを「XMLパーサ」と総称するが,DOMを装備したものは意外に少なく,商用ベースの「XMLパーサ」はごく限られたものしかないのが現状だ。
XMLのスタイル表現言語であるXSLや,スキーマ言語のXML Schemaについては前述した。図9はXMLに関連するこれらの仕様を別の視点から図にしてみたものである。理解の援助となればと思う。

図5を見て感じることは,今後XMLを使用したアプリケーションが普及するためには,DOMを実装した軽量なXMLパーサが如何に重要かということだ。XMLの操作は元々比較的負荷のかかる処理と考えられている。インターネット上を通してB2Bなどの業務を順調に稼動させることを考えると,大量のトランザクションもこなさなくてはならない。XMLパーサの部分がボトルネックになっては折角のXMLも台無しとなってしまう。XMLを使用したシステム構築を成功させるには,安定して高パフォーマンスなXMLパーサに出会い,採用できるかにかかっていると言っても過言ではないだろう。
XMLの今後の可能性
XMLの可能性は無限である。いままで述べてきた特徴からだけ見ても,(1)法令やISOなどの規定文書のように,長期保存性の必要なデータを扱うシステム,(2)多様な機器(PDAや携帯電話など)を対象とした表現の形式に多様性を求められるシステム,(3)社内のナレッジ・マネジメント・システムや企業間のデータ交換のように,参加者・用途が多様なデータネットワーク・システム,といったところではXMLは積極的に使用されることになるだろう。
また今後市場の急速な拡大が期待されるB2B-ECでは,XMLをどううまく取り込めるかが成功の可否の重要なポイントになると思われる。いままでのEDIの延長上で考えてはB2B-ECは成功しない。インターネットとXMLの特徴を十分に踏まえて,不特定多数の企業と動的にデータ交換ができる仕組みを考える必要がある。そう,まるで築地の市場がインターネット上に再現されたかのようなシステムである。このような仕組みに対応する製品,市場がこの半年以内にブレイクするものと筆者は信じている。
(C) 2001 Infoteria Corporation 【禁無断転載複製引用】
日時: 2001年04月23日 00:00 | | TrackBack
