エンタープライズ:特集 2003/09/24 14:41:00 更新

[JAVA Developer特別企画]2003年11月号
XMLプログラミング初歩の初歩 〜DOMの基本テクニック〜 (1/6)

デプロイメント記述子やAnt、Webサービス、XMLデータベースなど、XMLの利用はますます拡大しています。XMLは、関連する知識の多さ、ルーツの多様化などにより、最初の一歩が大変です。この企画では、XMLを理解し、アプリケーション開発に活用していくために、その基礎知識の習得を目指します。
JAVA Developer 2003年11月号より転載

XML−基礎編
 XMLは、さまざまな企業や団体で利用されています。XMLはJavaとのかかわりが深く、アプリケーション開発において直接・間接的にXMLを利用しています。XMLは、W3C(www.w3.org)が取りまとめ、1998年2月10日に「XML(Extensible Markup Language)1.0」を勧告。2000年10月6日には、1.0 Second Editionが勧告され、現在1.1の勧告に向けて作業が行われています。
 本記事では、XMLをアプリケーション開発で利用できるようになることを目的として、主としてXMLの基礎を解説し、最後に簡単な活用法を紹介します。なおXMLは、日本工業規格JIS X 4159:2002において「拡張可能なマーク付け言語」と翻訳されていますが、記事内では原則としてXMLに統一して説明します。

●XML誕生の背景
 XMLを理解するために、XMLがどのような目的で作られたのかを簡単に紹介しましょう。
 XML 1.0の要約(Abstract)には、「The Extensible Markup Language (XML) is a subset of SGML that is completely described in this document. Its goal is to enable generic SGML to be served, received, and processed on the Web in the way that is now possible with HTML. XML has been designed for ease of implementation and for interoperability with both SGML and HTML.」と記述されています。
 この要約を整理すると、次のようになります。
・XMLは、SGMLのサブセットである
・XMLの目標は、HTMLと同じようにSGML(文書)をインターネット(Web)を通じて送受信し、処理できるようにすることである
・XMLは、SGMLおよびHTMLの両方と相互運用性がある
 ここに登場するSGML(Standard Generalized Markup Language)とHTML(HyperText Markup Language)は、XMLを理解するうえで重要なキーワードです。
 SGMLは、文書のタイトル、著者、引用など、意味のある文字をマークアップし、論理構造および意味構造を記述するための汎用的な言語です。仕様は膨大で、だれもが容易に使いこなせるものではなく、また文書間を連携させるためのハイパーリンク機能は持っていません。
 インターネットとともに進化しているHTMLは、インターネット(WWW)向けの文書を記述するための言語であり、ハイパーリンクによって文書と文書を関連付けることができるのが特徴です。仕様はシンプルで広く普及しているものの、文書の論理構造や意味構造を表現することを主目的としていません。
 XMLは、SGMLとHTMLの欠点(課題)を補うべく、SGMLをベースにHTMLの利点を取り込む形で誕生した言語といえるでしょう。

図1
図1 XML、SGML、HTMLの関係

●マーク付け(markup)とは
 XMLのMは、markupの頭文字ですが、読者の皆さんは「マーク付け」と聞いてどのようなことをイメージしますか。
 markup(※1)の意味は諸説いろいろありますが、XMLにおけるマーク付けは、なんらかの意味のある文字(文章)を開始タグと終了タグで囲むことです(図2)。「開始タグ」と「終了タグ」は、どちらも名前を < と > ではさみ、終了タグは<と「名前」の間に / をつけるのが決まりです。開始タグと終了タグで囲んだ文字のことを「内容」、全体のことを「要素」と呼びます。
図2
図2 マーク付けと呼び名

※1 XMLのベースとなったSGMLは、IBMの社内文書で使われていたGML(Generalized Markup Language)を機能拡張したものです。Markupは本来辞書に載っていない単語で、「mark up」から作った造語。編集者などが、原稿に対して、見出しや本文といった部分に書体や文字サイズなどの体裁を手書きで書き込むことを「mark up」と呼んでいた。GMLでは同じような指示を手書きではなく電子的に行い、そのことを「markup」と一語でいうことにしたという。

 また内容を持たない要素を記述することも可能です。


<tag-name></tag-name>

 このような要素のことを「空要素(empty element)」といい、次のように記述することも許されています。


<tag-name/>

 また、開始タグには、「属性」を指定できます(図3)。属性は、「属性名="属性値"」または「属性名='属性値'」のように、'または"で属性値を囲んで記述します。属性を複数指定する場合は空白を入れて記述しますが、1つのタグの中に同じ名前の属性を記述することはできません。

図3
図3 開始タグと属性

 XMLにおけるマーク付けの基本ルールは、HTMLのマーク付けと同じです。ただし、HTMLでは<HEADER>や<TABLE>などのように名前が定義されているのに対し、XMLではそのような名前を定義していません。また、HTMLの名前は英大文字と英小文字は区別しませんが、XMLでは区別します。XMLでは、利用者が名前を定義して使用することから、マーク付け言語を定義するための言語(Meta Markup Language)といわれます。

[JAVA Developer特別企画]
XMLプログラミング初歩の初歩
 〜DOMの基本テクニック〜
・XML−基礎編
・文書型宣言
・XML−利用編

関連リンク
▼JAVA Developer
▼定期購読のご案内
▼バックナンバー販売協力店

JAVA Developer11月号表紙 JAVA Developer 11月号

大特集
DBチューニング大会

特集2 AS徹底解説番外編
[特別企画]
・動的画像生成
・DOMの基本テクニック
・目指せ最強! 最速! CodeRally
・WS-Iの最新事情レポート

      | 1 2 3 4 5 6 | 次のページ

[松浦 武範,JAVA Developer]