矢沢 久雄
この講座では,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文書 |
本題の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の問題点を解決している |
![]() |
図3●Internet Explorer 5.xにXML文書を読み込んだところ |
XMLは,実にシンプルなものですが,インターネットの世界でデータの交換を行うのに十分な機能を備えていることがわかったでしょう。ビジネスにインターネットを活用するためには,確実なデータ交換が必要となります。だからこそ,これほどまでにXMLが注目されているのです。
次回は,具体的にXML文書を記述するときの書式を説明します。お楽しみに!
今後の予定
第2回 XML文書を作成する方法
第3回 アプリケーションからXML文書にアクセスする方法
第4回 スタイルシートを使ってXML文書をレイアウト表示する方法
第5回 XMLで統合されるコンピュータの世界