第 3 章 XMLとRSS
3.1 XMLとは
XML(eXtensible Markup Language)はマークアップ言語の1つです。マークアップ言語は、
「 < > 」で囲まれたタグを使用してデータを表現します。Webページを作成するHTMLもマ ークアップ言語の一つです。HTMLはWebブラウザ上で文字を強調したり、段落をつけたりす るタグが取り決められています。しかし、XMLはデータを作成する人がタグを自由に取り決め ることができます。このため、XMLは Webページ以外の分野でも利用できるデータ形式とな っています。
3.1.1 XML の特徴
XMLの主な特徴として以下の4つがあります。
計算機上で扱いやすい
XML は簡潔で、なおかつ厳密な文法を持っているためコンピュータ上で扱いやすいという特 徴を持っています。そのため、商品データからさまざまな文書を自動的に作成したり、インター ネットを介して商品データを交換するシステムを構築したりする事ができます。
テキスト形式である
XML はテキスト形式のファイルで扱われ、マルチプラットフォームでのデータ交換が可能で す。テキストファイルはほとんどすべてのプラットフォームでサポートされており、テキストエ ディタなどで人間が理解することもできます。また、文字コードや言語の異なるプラットフォー ムへの対応は、Unicodeの採用とXMLファイルに直接文字コードや言語を指定することにより 解決できます。
タグで記述される
XMLはHTMLのようにタグで記述されます。HTMLは <A> タグや <BR> タグのように使 用できるタグは決まっています。これに対し、XMLは、自由にタグの名前をつけることができ ます。つまり、文書の構造を任意に定義することができます。また、わかりやすい名前のタグを 使用することにより、人間にもコンピュータにも理解しやすいデータが作成できます。
ツリー構造である
XML 文書は必ずツリー構造になっています。ツリー構造とは、一つの頂点からスタートして 枝分かれを繰り返す、木(ツリー)のようなデータ構造のことです。XML文書では頂点にルー トタグと呼ばれるタグが存在し、その下にタグが枝分かれしながら存在します。この枝分かれは、
XML文書の入れ子構造と対応しています。
図 3-1 XMLのツリー構造
3.1.2 XML 文書の構成
XML文書は主に3つの部分で構成されます。
XML宣言
DTD(Document Type Definition)
XMLインスタンス
これらの3つの構成要素は上からこの順番で記述しなければなりません。なお、DTDは省略可 能です。XMLではタグを自由に定義できますが、同名のタグがあちこちで定義されてしまう恐 れがあります。このような場合には名前空間という概念によりタグを識別します。例えば”
http://purl.org/dc/elements/1.1/”と”http://purl.org/rss/1.0/”という2つの場所で別々に定義 されているtitleというタグを同一のXMLファイル中で使用するには、XMLインスタンスが開 始する部分で名前空間接頭辞を定義しておき、接頭辞を用いたタグ名を使用することで識別する ことできます。
名前空間接頭辞の定義例
xmlns:dc=”http://purl.org/dc/elements/1.1/”
xmlns:rss= “http://purl.org/rss/1.0/"
タグの例 <dc:title>
<rss:title>
3.1.3 XML の基本文法
XML宣言部
続く文書がxmlであることを宣言し、文字コードを指定します。
<?xml version="1.0" encoding="UTF-8" ?>
DTD
DTDを一言で説明すると、その後に記述するXMLインスタンスのテンプレートであると言え ます。XML要素をマークアップする際の規則の記述はこのDTDの中で行います。DTDは文書 中に記述することも、外部ファイルに記述したものを指定して利用することもできます。DTD が定められていて、そのDTDに準拠しているXML文書はvalidな(妥当な)XML文書と呼ばれ ます。XML は「すべての開始タグと終了タグが対になっている」「ルートとなるタグが他のタ グの入れ子になっていない」「入れ子になっているタグの終了タグが親タグの終了タグより後に 来ない」といった条件を満たす必要があるのですが、DTDを指定していない場合にこれらの条 件を満たしたXML文書はwell-formedな(整形式な)XML文書と呼ばれます。すべてのXML
文書はwell-formedであり、その中でもDTDに準拠したものがvalidなXML文書となります。
<!DOCTYPE 成績 [
<!ELEMENT 科目 (#PCDATA)>
..
XML要素の記述
開始タグと終了タグで囲まれた部分が要素となります。
<要素> 内容 </要素>
内容を持たない場合は <要素> </要素> は <要素/> と記述することもできます。
コメントの記述
HTMLと同様、 "<!- -->" の中に囲まれた部分がコメントになります。
<!- この部分がコメントになります。 -->