XMLとはどう使うもの?

XMLというのはどう使用するものなのですか?



XMLは,汎用的に持ち回りのできるドキュメントを作るためのマークアップ言語・SGMLのサブセットとして作られ,現在ではインターネットのいくつかの分野で利用されています。
 マークアップ言語といえばWebページを作るときに使われているHTMLがありますが,HTMLは基本的に文書の構造(例えば「見出し」や「引用」)と見かけだけを定義します。つまり,内容を把握したいと思ったらブラウザに表示された内容を人間が見て判断しなければなりません。
 それに対して,XMLは独自にタグを定義できるので,文書の内容がそれが何を意味するのかも文書自身の中で明らかにすることができます。例えば,

<書くべき原稿>
<優先順位 no="1">
<内容>
クリニック
</内容>
<編集部>
/Vmag.
</編集部>
</優先順位>

のように書けば,そのデータが「書くべき原稿」に関するもので,「1番」は「クリニック」である,ということが機械的に判断できるのです。
 また,XMLはW3Cで標準化され,インターネットで汎用的に使える技術ということもあって,XMLを扱える一般のアプリケーションソフトが多く出回っていることも特徴です。例えば身近なところでは,WebブラウザのInternet Explorerなどがそうで,バージョン5以降ではXMLファイルを表示させることができます。
 例えば,右の「書くべきもの」をリストしたXML本体(リスト1)と,表示方法を記したスタイルシートファイル(リスト2)ですが,Internet Explorerでは画面のように表示させることができます。XMLファイルの<優先順位 ……> 〜 </優先順位>の部分を増やすと内容を追加することができ,スタイルシートのHTMLで書かれた部分を追加すれば色付けやイメージの貼り付けなども可能です。
 さて,XMLの使われ方として現在最も多いのは,B2B(企業対企業)商取引などの用途です。これまで企業同士で物流情報などをやり取りするには,EDIなどの専用のシステムを作り,データ形式も細かく決めなくてはならず手間がかかっていました。この点についてXMLならば,データフォーマットがあらかじめ決まっているので簡単にほかの会社との情報のやり取りができ,また表示部分にWebブラウザが利用できるなど,システム構築が身軽になるというメリットがあります。
 ですが,XMLデータを作ったり利用すること自体は,先にサンプルで挙げたように個人レベルでもまったく難しいことではありません。なにか記録簿のようなもの(例えば個人のデータベース──持っているCDの管理とか)を作りたいが,わざわざデータベースソフトを使うほどの規模でないな,という用途に使うのも,もちろん,それはそれでよいと思います。
(大和 哲)


リスト1
<?xml version="1.0"
encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl"
href="style.xsl"?>
<書くべき原稿>
<優先順位 no="1">
<内容>
ブイマグクリニック
</内容>
<編集部>
DOS/Vマガジン
</編集部>
</優先順位>

<優先順位 no="2">
<内容>
用語集
</内容>
<編集部>
Yahoo!ガイド
</編集部>
</優先順位>

<優先順位 no="3">
<内容>
コラム
</内容>
<編集部>
FMV・asby club
</編集部>
</優先順位>
</書くべき原稿>


リスト2
<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/">
<html>
<head><title>XMLの簡単なサンプル(ToDoリスト)</title></head>
<body>
<p align="center">ToDo リスト</p>
<xsl:apply-templates select="書くべき原稿" />
</body>
</html>
</xsl:template>

<xsl:template match="書くべき原稿">
<xsl:for-each select="優先順位">
<table border="1" width="320" align="center">
<tr>
<td bgcolor="#bfeabb"><p>内容:<xsl:value-of select="内容" /></p></td>
<td ><p>編集部:<xsl:value-of select="編集部" /></p></td>
</tr>
</table>
</xsl:for-each>
</xsl:template>

</xsl:stylesheet>



リスト1が文書の内容が書かれたXMLファイル本体。リスト2がブラウザでの見かけを決めるスタイルシートだ。Internet Explorer 5はXMLに対応していて,リスト1のファイルを読み込ませると図のように内容が表として表示される