XMLマスターへの道
〜「XMLマスター:ベーシック」試験対策〜

第2回 XMLの概要と起源、関連規格

武田栄子
ウチダ人材開発センタ
2002/11/9

 前回 (「第1回 XMLマスター:ベーシック試験のレベルは?」)の最後に予習として下記の問題を出題しました。XMLマスター:ベーシック試験の出題方法がイメージできたでしょうか?

今回の問題
(Q1) XMLの起源となった仕様を1つ選択してください。

  (a) HTML
  (b) SGML
  (c) XHTML
  (d) XSLT
(Q2) XMLベースの実用化仕様ではないものを1つ選択してください。

  (a) SQL
  (b) SVG
  (c) SMIL
  (d) MathML

 今回は、この予習問題に解答するうえで必要な知識となる3つの内容、

  • XMLの起源
  • HTMLと共通点、相違点
  • XML関連規格と応用規格

 について解説することでXMLマスター:ベーシック試験に対応できるようにします。解答は、解説の後で掲載します。

XMLの起源

 XML(Extensible Markup Language)は、1998年10月にW3C(World Wide Web Consortium)より勧告された、インターネット対応で拡張可能なマークアップ言語です。執筆時点におけるXML規格で勧告済みの最新バージョンは、2000年10月に登場した1.0 Second Editionとなります。XMLの仕様を公開するページは常に同じURL(http://www.w3.org/TR/REC-xml)であり、このURLで表示される仕様がそのときの最新仕様、ということになるのです。

画面1 W3CのXML仕様書

 W3CはWWW (World Wide Web) に関する規格を標準化するために設立された任意団体です。WWW技術にかかわりの深い企業、大学・研究所、個人などが集まっており、日本では慶應義塾大学SFC研究所 (Keio-SFC) がホスト機関としてW3Cを共同運営しています。W3Cより勧告されている規格として、HTML (HyperText Markup Language)、CSS (Cascading Style Sheets)、DOM (Document Object Model) などが挙げられます。

 では、XMLとは何でしょうか。XMLの仕様書(画面1)を読むと、冒頭の概要(Abstract)に「XMLは、SGMLのサブセットであり……(以下略)」と書かれています。つまり、ISO(International Organization for Standardization)によって制定された、文書の意味構造を記述するための言語であるSGML(Standard Generalized Markup Language)を基に策定された規格がXMLなのです。

 SGMLは特定のソフトやハードに依存せず、電子化文書を長期間にわたって保存することを目的に策定されましたが「仕様が煩雑で扱いにくい」「Web環境を前提としていない」などの欠点がありました。そこで、「タグを利用したマークアップ」「構造化文書」「メタ言語」「特定のベンダに依存しない」というSGMLの長所を生かしつつ、SGMLよりシンプルでWeb環境に対応した仕様がW3Cによって模索されました。これがXML登場の背景です。

 下の表は、W3Cの仕様がどのようなステップを踏んで策定されるのかを表したものです。XMLも基本的にはこのステップを踏んで勧告に至りました。

ステップ 日本語 英語 説明
(1) 技術ノート Notes 標準化作業の前段階としてW3Cに提出された、企画段階の文書
(2) 草案 Working Drafts 技術ノートを基に仕様をまとめ、W3Cで議論することを目的とした文書
(3) 勧告候補 Candidate Recommendations 草案を基に議論と検証を行い、正式な勧告として公開できる状態になった文書
(4) 勧告案 Proposed Recommendations 勧告候補を基に正式な仕様となるために策定された文書
(5) 勧告 Recommendations すべての議論、意見の受け付けもすべて終了し、W3Cで正式に仕様が確定された文書
表1 W3C規格が標準化されるまでのステップ

 さて、SGMLやXMLは「メタ言語」です。メタ言語は、その言語を基にして別の言語を作成できる機能を提供します。この説明では漠然としているので、具体例を挙げてみましょう。例えば、XMLの構文で記述された言語として、SVG (Scalable Vector Graphics)、SMIL (Synchronized Multimedia Integration Language)、MathML (Mathematical Markup Language) などがあります。なお、今回例示したSVG、SMIL、MathMLはすでに実用化されており、W3Cより勧告された規格です。

HTMLとの共通点、相違点

 XMLはHTMLの延長線上にとらえられていることが多々あります。ここでは、最初にXMとHTMLの共通点を解説し、次に相違点を解説していきます。

 まず、共通点ですが、XMLとHTMLは、ともにSGMLの特徴であるマークアップを継承しています。例えば、「100」というデータがあるとします。ただし、これだけでは100が何を表すのか不明瞭です。このときに、<単価>100</単価>のように表現すれば単価が100であることが分かり、同じように、<数量>100</数量>のように表現すれば、数量が100個であることが利用者にも分かりやすくなります。このように、< と > を使ったタグでくくることにより、利用者の意図や目的に応じてデータに意味を持たせることをマークアップといいます。データベースの経験がある読者の方なら、「商品マスター」テーブルに含まれる「商品名」「単価」「数量」などの列名がマークアップのイメージに近いでしょう。

 そのほかにも、特定のソフトやハードに依存せず、テキスト形式で記述できることもXMLとHTMLの共通点として挙げられます。

図1 マークアップのイメージ (その1)

 次に、相違点です。XMLとHTMLはタグを使ってデータに意味を持たせるということを解説しましたが、1つ目の相違点として、タグの利用という点でXMLとHTMLには大きな違いがあります。

 HTMLでは、利用できるタグがW3Cによってあらかじめ決められていますが、XMLでは命名規則に従ってさえいればタグ名を利用者が自由に命名できます。例えば、「本日は晴天なり」という文章からなる段落のデータを意味付けしたいとします。HTMLの場合、段落を意味する<P> (Paragraph)タグを使って表現しますが、XMLの場合は<段落>だけでなく、<メモ>や<感想>のように目的に合わせたタグを利用者が作成して表現できます。なお、この例でも分かるように日本語もタグ名として命名できるのがXMLの大きな特徴です。

 それ以外にも、「大文字小文字が識別される/されない」「終了タグが必須/必須でない」などの違いがありますが、構文上の違いについては命名規則と併せて次回詳しく解説する予定です。

図2 マークアップのイメージ (その2)

 2つ目の相違点として、言語としての機能と登場の背景が違います。前述のとおり、XMLはメタ言語ですが、HTMLは利用できるタグが制限されていることからも分かるように、メタ言語であるSGMLの機能を生かしつつ、Webブラウザでの表示制御を目的としたアプリケーション言語としてもとらえることができます。

 ただし、HTMLは4.01で仕様の策定が終了しています。HTML 4.01の後継として、HTMLの仕様をXMLの構文で再定義したXHTML(The Extensible HyperText Markup Language)へ移行しています。

 いままでの説明をまとめたものが、下記の図3となります。SGMLはISOによって策定され、XML、HTML、XHTMLはW3Cによって策定された規格です。この点も試験のポイントとなるのでしっかりと押さえてください。

図3 SGML、XML、HTML、XHTMLの関係
SGMLは、ISOで策定された規格。水色のXML、HTML、XHTMLはW3Cによって策定された規格

XML関連規格と応用規格

 前述のとおり、XMLが提供しているのは構文です。そのため、XMLをどのように利用するかは利用者(スキーマを定義する設計者に相当)にゆだねられています。また、XMLがメタ言語であるためにさまざまな言語が定義され、それらは電子公文書、データベース、BtoB、EAI(Enterprise Application Integration)、グラフィックス系などのさまざまな分野で導入されています。

 XMLマスター:ベーシックの公式ページで公開されている「適用されるXML仕様と用語」にもあるように、XMLに関する応用標準技術を問う一般問題では、出題範囲はW3C標準の範囲となっています。本稿は試験対策ということもあり、各規格の詳しい解説はしませんが、その代わりとしてXMLの関連規格と実用化されている応用規格を下の表にまとめました。試験対策のツボとしては、こちらを参考に各規格を整理するとよいでしょう。

名称 内容
Canonical XML XML文書を正規化するための仕様。XML Signatureで使用される
DOM (Document Object Model) XML文書にアクセスするためのAPIの1つ
Namespace (Namespaces in XML) XML文書で使われるタグを目的に合わせて識別するための規格
SOAP (Simple Object Access Protocol) ネットワーク経由でオブジェクト間の通信を行う軽量のプロトコル
XForms HTMLで提供しているフォーム機能を分離独立させ、さらに強化することを目的とした規格
XHTML (The Extensible HyperText Markup Language) HTML 4.0を、XML 1.0の構文で再定義した規格
XLink (XML Linking Language) ほかのXML文書と併用して、ハイパーリンクを表現するためのリンク言語
XML Schema XMLのスキーマ言語の1つ
XML Signature XML文書に対して電子署名を行う書式を規定
XPath (XML Path Language) XSLTやXPointerで利用され、XML文書内の特定の部分を指し示す構文を提供
XPointer (XML Pointer Language) XLinkとともに使用されるリンク言語で、特定のXML文書の、特定の場所を指し示す構文を提供
XSL (Extensible Stylesheet Language) XML専用のスタイルシート言語
XSLT (XSL Transformations) XML文書の構造変換を行う規格
XML Infoset (XML Informtation Set) XML文書の情報構造を明示的に扱うための定義
表2 XML関連規格

名称 内容
CHTML (Compact HyperText Markup Language) 携帯電話やPDAなどの携帯情報端末で閲覧可能なWebページを作成するための記述言語。
MathML (Mathematical Markup Language) 数式を記述するためのマークアップ言語。
RDF (Resource Description Framework) メタデータの処理を扱うための規格。
SMIL (Syncronized Multimedia Integration Language) 時間に関するコントロールや、スクリーン上のプレゼンテーションのレイアウトなどを行うことを目的とした、マルチメディア記述用の規格。
SVG (Scalable Vector Graphics) ベクターグラフィック言語。
Voice XML (Voice Extensible Markup Language) 音声認識を行うための規格。
WIDL (Web Interface Definition Language) Web上でのインタラクションを統一された方法で操作可能にするための規格。
表3 実用化されている応用規格

今回の問題の解答

 今回の問題の解答は次のとおりです。先述の解説を読み直し、試験に向けてしっかりと対策してください。

(Q1) XMLの起源となった仕様を1つ選択してください。

 答えは(b)のSGML。HTML、SGML、XHTMLの解説は本稿の「XMLの起源」 を参照してください。XSLTは、XML文書の構造を変換することを目的としたXML関連規格です。

(Q2) XMLベースの実用化仕様ではないものを1つ選択してください。

  答えは(a)のSQLです。 SQL(Structured Query Language)は、リレーショナルデータベースの操作に使用するデータベース操作言語で、XMLとは異なる文法で記述されています。ANSI(American National Standard Institute)やJIS(Japan Industrial Standard)で標準化されています。

 誌面の都合によりすべてのキーワードを解説できないため、今回から記事の最後に「まとめノート」を用意しました。このまとめノートには、試験対策のポイント、出題範囲となる仕様、参考になる@ITの記事のリンクをまとめています。自習のときに使う参考ページとして、お役立てください。

 最後に、次回のための予習問題を載せます。次回はこの予習問題について解説していくので、チャレンジしてください。

予習問題
(Q1) 整形式XML文書をすべて選択してください。なお、文字エンコーディングは合っているものとします。

(a)
<?xml version='1.0'?>
<root>
  <a b="c"/>
</root>

(b)
<?XML version="1.0"?>
<root>
  <expr>4<1</expr>
</root>

(c)
<社員 番号="0001">
  <名前>佐藤太郎</名前>
</社員>
<社員 番号="0002">
  <名前>山田花子</名前>
</社員>

(d)
<あいうえお/>

(e)
<予定>
 <10月20日>紅葉狩り</10月20日>
</予定>

(f)
<H1>見出し1</h1>

(Q2) 以下のXML文書で要素を表しているものを1つ選択してください。

「XML文書」
<book isbn="012-345-6789">
XMLマスター:ベーシック対策
</book>

(a) book
(b) <book>
(c) isbn="012-345-6789"
(d) XMLマスター:ベーシック対策
(e) </book>
(f) <book isbn="012-345-6789">XMLマスター:ベーシック対策</book>


まとめノート:XMLの概要と起源、関連規格と応用規格

○今回の試験対策のポイント

  • XMLとは
  • W3C
  • SGML
  • W3C規格の標準化ステップ
  • HTMLとの比較
  • マークアップ
  • メタ言語
  • XML関連規格と応用規格

○今回の学習内容で出題範囲となる仕様

  • XMLに関する応用標準技術を問う一般問題
    出題範囲はW3Cが策定する標準の範囲となります。

○今回の学習内容で参考になる@ITの記事

○今回の学習内容で参考になるXML用語集 (@IT XML用語事典より)

(3)XML文書の要素、エンコーディング、宣言

Index
連載:XMLマスターへの道
  (1)XMLマスター:ベーシック試験のレベルは?
(2)XMLの概要と起源、関連規格
  (3)XML文書の要素、エンコーディング、宣言
  (4)すべてのXM文書は整形式である
  (5)valid XMLとDTDの関係
  (6)模擬問題:XMLの基本
  (7)模擬問題:W3C XML Schema
  (8)模擬問題:DOM
  (9)DTDの実体宣言と記法宣言
  (10)XSLTの基本構造を理解する
  (11)XSLTで必須の制御命令を覚える
  (12)XPathによるノードの指定法を理解する
  (13)名前空間を理解しDOMの概要をつかむ
  (14)XML Schemaを利用したスキーマ定義
  (最終回)XML Schema―型の再利用と名前空間


連載:XMLマスターへの道


XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

HTML5+UX 記事ランキング

本日月間