
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(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 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の関連規格と実用化されている応用規格を下の表にまとめました。試験対策のツボとしては、こちらを参考に各規格を整理するとよいでしょう。
 
            
  | 
        ||||||||||||||||||||||||||||||
| 表2 XML関連規格 | 
 
            
  | 
        ||||||||||||||||
| 表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文書をすべて選択してください。なお、文字エンコーディングは合っているものとします。
 
 
 
 
 
  | 
        ||||||||||||
|  
             (Q2) 以下のXML文書で要素を表しているものを1つ選択してください。 
 
  | 
        
○今回の試験対策のポイント
         
      
- XMLとは
 - W3C
 - SGML
 - W3C規格の標準化ステップ
 - HTMLとの比較
 - マークアップ
 - メタ言語
 - XML関連規格と応用規格
 
○今回の学習内容で出題範囲となる仕様
○今回の学習内容で参考になる@ITの記事
- やさしく読む「XML 1.0勧告」 第1回 XMLの仕様書によると、XMLの目標とは…
 - 技術者のためのXML再入門 第1回 XMLの注目される特徴とは何か?
 - XMLを学ぼう 第1回 最短のXML入門とメタ言語
 - XMLを学ぼう 第2回 XMLのカタチ
 - XMLの基礎を理解しよう〜これだけ知っていれば大丈夫〜
 - XMLと関連仕様に強くなるために 〜 W3Cサイト徹底攻略法!〜
 - Ask XML Expert HTMLとXHTMLの違いはどこにある?
 
○今回の学習内容で参考になるXML用語集 (@IT XML用語事典より)
- BtoB
 - CHTML(Compact HTML)
 - Canonical XML (XML-C14N)
 - DOM
 - MathML
 - Note
 - RDF
 - SGML (Standard Generalized Markup Language)
 - SMIL
 - SOAP
 - SVG
 - TR (Technical Report)
 - W3C (World Wide Web Consortium)
 - XForms
 - XHTML (The Extensible HyperText Markup Language)
 - XLink (XML Linking Language)
 - XML Information Set
 - XML Schema
 - XML Signature
 - XML (Extensible Markup Language)
 - XML名前空間 (Namespace in XML)
 - XPath (XML Path Language)
 - XPointer (XML Pointer Language)
 - XSLT
 - XSL (Extensible Stylesheet Language)
 - メタ言語
 - 勧告 (Recommendation)
 - 勧告候補 (Candidate Recommendation)
 - スキーマ (Schema)
 - 電子商取引
 - マークアップ言語
 - ワーキングドラフト(Working Draft)
 
| (3)XML文書の要素、エンコーディング、宣言 
             | 
        
| 連載:XMLマスターへの道 | 
- QAフレームワーク:仕様ガイドラインが勧告に昇格 (2005/10/21)
データベースの急速なXML対応に後押しされてか、9月に入って「XQuery」や「XPath」に関係したドラフトが一気に11本も更新された - XML勧告を記述するXMLspecとは何か (2005/10/12)
「XML 1.0勧告」はXMLspec DTDで記述され、XSLTによって生成されている。これはXMLが本当に役立っている具体的な証である - 文字符号化方式にまつわるジレンマ (2005/9/13)
文字符号化方式(UTF-8、シフトJISなど)を自動検出するには、ニワトリと卵の関係にあるジレンマを解消する仕組みが必要となる - XMLキー管理仕様(XKMS 2.0)が勧告に昇格 (2005/8/16)
セキュリティ関連のXML仕様に進展あり。また、日本発の新しいXMLソフトウェアアーキテクチャ「xfy technology」の詳細も紹介する 
 
  | 
 |








