ここでは情報処理分野でかつて脚光を浴び、いまでは幅広く使われている XML という技術を取り上げます。 XML は、Web ページの記述言語である HTML に名前が似ていますが、 その位置づけは全く異なります。 HTML は Webページ を記述するための「言語」であるのに対して、 XML はそのような「言語」自体をつくり出すための仕組みです。 HTML では Web ページしか記述することができませんが、XML を使うと、 動画の内容、CG のモデルなど、 さまざまものを記述する「言語」を新たにつくり出すことができます。 実際、世の中のさまざまなデータが XML の枠組みを利用して記述する方向へと進んでいます。
XML は Extensible Markup Language の略で、直訳すると「拡張可能なマークアップ言語」となります。 言語と聞くとJavaやC++といったプログラミング言語を思い浮かべるかもしれませんが、マークアップ言語はプログラミング言語のように処理を記述するものではありません。
みなさんは現在最も広く使用されているマークアップ言語を知っています。 それは、Webページを記述するための言語である HTML (HyperText Markup Language) です。 HTMLでは、見出し、段落、表などの要素(Element)を、 h1~h6、p、tableといったタグ(tag)によって表しました。
<p>ここが段落と決められています。</p>
pがタグ名で、<p>が開始タグ、</p>が終了タグです。 また、タグに囲まれている部分が要素の内容(content)です。 HTML文書において段落要素以外にどのような要素があるのかは、 W3Cという組織が勧告しているHTMLの仕様の中で定められています。
<img src="test.png">
この場合、imgがタグ名、srcが属性名で、"test.png"が属性値と呼ばれます。どの要素にどんな属性/属性値が指定できるか、あるいは指定すべきかは、やはりHTMLの仕様で定められています。
XMLの枠組みでは、文書の中にどんな要素あって、 それがどんなタグ名で記述されるかは目的に応じて自由に決めることができます。 それが「言語」を作り出すということです。
<段落>これを段落と決めました!</段落>
上記の例では、「段落」というタグ名が使われています。
HTMLで用意されている要素は、文書の構造に関するものです。 以下の例では箇条書きという構造を表していますが、 箇条書きされている項目が何を意味するのかは表現されていません。
<ul> <li>〒101-8457</li> <li>東京都千代田区神田錦町2-2</li> <li>03-5280-XXXX</li> <li>電大 太郎</li> </ul>
XMLでは、文書の内容を表現することが可能です。
<個人データ> <郵便番号>〒101-8457</郵便番号> <住所>東京都千代田区神田錦町2-2</住所> <電話番号>03-5280-XXXX</電話番号> <氏名>電大 太郎</氏名> </個人データ>
これにより、氏名が何、住所がどこ、といった内容を表現することができ、 名前から個人データを検索したり、名前と電話番号だけを抽出したりといった データ処理が可能になります。
この例ではXML文書が住所録のデータとして独立していますが、他のデータと組み合わせ、 そのデータの内容を記述するためにXML文書を使うこともよくあります。 例えばビデオ映像と組み合わせ、 その映像のどこに誰が映っているかという情報をXML文書に記述することが行われています。 一般に、あるデータがあったとき、そのデータに関する情報のことをメタ情報といいます。 先ほどの例では、XML文書は映像のメタ情報を記述しているメタデータ、ということになります。