矢沢 久雄

 この講座では,XML(エックス・エム・エル)の知識がまったくない読者を対象として,XMLとは何であり,どのような分野で役に立つのかを説明します。IT業界で仕事をしている人で,XMLという言葉を聞いたことがない人は,ほどんどいないでしょう。現在,何かにつけてXMLが話題になっているからです。XMLをテーマとした雑誌記事や書籍も数多く出版されています。皆さんのまわりでも,すでにXMLをバリバリ活用している人がいるかもしれません。何となく傍観しているうちに「XMLブームに乗り遅れてしまった…」などと不安になっている人はいませんか? そのような人にこそ読んでいただきたいのが,この連載です。最後まで,よろしくお付き合いください。

●XMLは,マークアップ言語の一種である

 XMLは,eXtensible Markup Language(拡張可能なマークアップ言語)の略語です。XMLは,特定の企業の技術ではありません。インターネットにかかわる様々な取り決めを行っているW3C(World Wide Web Consortium)という組織によるオープンな規格です。W3Cで正式に取り決められた規格のことを「勧告」と呼びます。W3C勧告となっているマークアップ言語には,Webページの作成に使用するHTML(Hyper Text Markup Language)もあります。皆さんもHTMLのことはご存知でしょう。

 まず,マークアップ言語とは何かを説明しておきましょう。リスト1をご覧ください。これは,単なる2行の文書です。この文書をWindowsの「メモ帳」などのテキスト・エディタで入力し,「MyFile1.txt」のようなファイル名を付けて保存すれば,テキスト・ファイルができあがります。ただし,MyFile1.txtの内容は単なる文書データです。このファイルから文書以外の情報を得ることはできません。

 リスト2に,HTML文書(HTMLファイル)の例を示します。HTML文書は,テキスト・エディタで作成できるテキスト・ファイルの一種です。ただし,HTML文書の内容は単なる文書データだけではありません。<HTML> ,<BODY>,<H1> ,<H2> などのように<と>で囲まれたタグによって,文書データに部分的な意味付けがなされています。このように,タグによって文書データに意味付けを行う方法を取り決めたものを,マークアップ言語と総称します。

 マークアップ言語では,<HTML>と</HTML>のように,スラッシュのないタグとスラッシュのあるタグで文書データを部分的に囲み,タグによって意味付けされる範囲を指定します。タグの種類が異なれば,意味付けの内容も異なります。<HTML>は,HTML文書であることを意味します。<BODY>は,本文であることを意味します。<H1>と<H2>は,見出し文字であることを意味します。1や2は見出しのレベルを意味し,多くの場合に,<H1>の方が<H2>より文字サイズが大きくなります。

●HTMLとXMLの違い

図1●Webブラウザに表示されたHTML文書
 HTMLは,Webページを記述するためのマークアップ言語です。Internet Explorer(IE)などのWebブラウザは,HTML文書の内容を解釈して,文書や画像などのデータを適切に表示します(図1[拡大表示])。HTMLのタグの機能は,ワープロにおける文字飾り(文字サイズや太字などを指定するもの)と似たようものだと考えるとよいでしょう。どのような種類のWebブラウザであっても,同じ文字飾りが施されたWebページが表示されるのは,HTMLが世界レベルで統一された規格だからです。規格が統一されているというのは,実に便利なことですね!

 本題のXMLに話を戻しましょう。XMLもマークアップ言語の一種です。XML文書(XMLファイル)は,様々な種類のタグが使われたテキスト・ファイルです。HTML同様,テキスト・エディタを使ってタグを記述してXML文書を作成できます。XML文書のファイル名の拡張子は,「.xml」とします。ただしXMLのタグの目的は,HTMLのようにWebページに装飾を施すことではありません。

 リスト3に,XML文書の例を示します。このXML文書とHTML文書(リスト2)の内容を比較してみると,その違いがよく分かるはずです。HTML文書では,タグによってWebページに装飾が施されていました。それに対して,XML文書では,タグによってデータが細かく区切られています。リスト2では,<all-data>がデータ全体の範囲を表し,<company>が1件の企業データの範囲を表し,<name>が企業名を表し,<address>が住所を表し,<employee>が社員数を表しています。これらのタグによって「日経BP社」,「東京都千代田区」,「1000」,「(株)ヤザワ」,「栃木県足利市」,「5」といったデータを区切り,それぞれ意味付けしていることに注目してください。XML文書は,何らかのアプリケーションによって利用されるデータ・ファイルなのです。

 XMLはHTMLとは異なり,インターネット専用というわけではありません。スタンドアロン環境で動作するアプリケーションのデータ形式にXMLを使っても,構わないのです。注目してほしいのは,XMLが世界レベルで統一された規格であることです。統一された汎用的な形式でデータを格納するのですから,それをインターネットを通して世界中で再利用できます。そういった意味から,XMLはインターネットと相性のよいものだといえます。

●CSVより便利なXML

 XMLが登場する前から,汎用的なデータ格納形式がありました。CSV(Comma Separated Value)がそれです。CSVでは,テキスト・ファイルの中にデータをカンマ(,)区切って格納します。文字データはダブルクォーテーションで囲み,数値データはそのまま記述します。1件のレコード(レコードとは,意味のあるデータのまとまりのこと)の末尾には改行を入れます。これが,CSVの書式です。リスト4に,CSVファイル(CSV形式でデータが格納されたファイル)の例を示します。ここでは,企業名,住所,従業員数の順に2件のレコードを格納しています。CSVファイルのファイル名の拡張子は,.csvや.txtなどにします。

 CSVは,異なるアプリケーションや異なるコンピュータの間でデータを交換する場合に便利です。例えば,Micsorft Excelのデータ・ファイルとMicrosoft Accessのデータ・ファイルは,データの格納形式が異なるので,直接データを交換できません。ただし,ExcelにはデータをCSVファイルとして保存する機能があり,AccessにはCSVファイルを読み込む機能があるので,CSVファイルを使えば相互にデータを交換できます。大型コンピュータのデータをCSVファイルとして保存し,それをパソコンで読み込むようなこともできます。CSVは,なかなか便利であり,現在でも様々な場面で活用されています。

 しかし,もしもCSVだけで用が足りるのなら,これほどまでにXMLが注目されることはなかったはずです。CSVには2つの問題点がありました。XMLでそれらが見事に解決されたのです。CSVの問題点の一つは,個々のデータに意味付けがなされていないということです。例えば,「"日経BP社","東京都千代田区",1000」というレコードにおいて,「日経BP社」,「東京都千代田区」,「1000」というデータが何を表しているのかは,CSVファイルだけでは分かりません。もう一つの問題点は,テキスト・ファイルであっても,使用されている文字コードが異なれば,異なる環境では再利用できないということです。例えば,Unicodeで作成されたCSVファイルは,シフトJISコードを使用している環境では読み書きできないのです。もちろん,文字コードを変換すればよいのですが,どんな種類の文字コードが使われているのかは,CSVファイルを見ただけでは分かりません。

図2●XMLはCSVの問題点を解決している
 もう一度,XML文書(リスト3)を見てください。<all-data>,<company>,<name>,<address>,および<employee>といったタグが,データの意味付けを行っているのは,すでに説明したとおりです。さらに,先頭行に注目してください。 <?xml version="1.0" encoding="Shift_JIS"?>の部分は,この文書がXMLバージョン1で作成されていて,文字コードにシフトJISが使われていることを示しています。先頭行にXMLのバージョンと文字コードの情報があるところがポイントです。XML文書を受け取った側は,その先頭行だけを調べれば,それが何と言う文字コードで作成されているかわかります(図2[拡大表示])。

図3●Internet Explorer 5.xにXML文書を読み込んだところ
 XML文書の内容を解釈できる身近なアプリケーションには,IE 5.xがあります。リスト3に示したXML文書をIE 5.xに読み込むと,<?xml version="1.0" encoding="Shift_JIS"?>の部分を解釈して,その内容を表示してくれます。もしも,XMLファイルをUnicodeで作成した場合には,先頭行を<?xml version="1.0" encoding="Unicode"?>とします。Windows 95/98/Meのように,文字コードとしてシフトJISを使っている環境であっても,IE 5.xが自動的にXMLファイルの文字コードを解釈して変換してくれます(図3[拡大表示])。

 XMLは,実にシンプルなものですが,インターネットの世界でデータの交換を行うのに十分な機能を備えていることがわかったでしょう。ビジネスにインターネットを活用するためには,確実なデータ交換が必要となります。だからこそ,これほどまでにXMLが注目されているのです。

 次回は,具体的にXML文書を記述するときの書式を説明します。お楽しみに!

今後の予定
第2回 XML文書を作成する方法
第3回 アプリケーションからXML文書にアクセスする方法
第4回 スタイルシートを使ってXML文書をレイアウト表示する方法
第5回 XMLで統合されるコンピュータの世界