XML


 

次期 HTML
 

 HTMLの仕様書はW3Cより勧告されHTML4.01で最終だそうです。 その後はXMLが公式な仕様書となるだろう。HTMLの次期仕様書がXML のようであるが、 実は誤解といえる。HTMLはそのままと考えたほうが正解である。

 HTMLの上位規定SGMLがあったのをご存知だろうか。ISO(International Organization for Standardization)によって制定された、文書の意味構造を記述するための言語、Standard Generalized Markup Language。この規格の一部として HTMLが策定され、インターネットで広く利用されて来た。というより、 この言語がコンピュータネットワークの能力を引き出したといったほうが 正解なのだろう。
 SGMLはワープロが開発され文書が電子化された時代、互換性を持たせるため 1986年に策定されている。仕様が複雑過ぎて専門家でないと扱えないといった 事情により普及しなかった。SGMLの簡略版としてインターネット言語、 HTMLは制定された。先に統一規格書があるなかで生まれ育った HTMLはSGMLの第一子とも言える。
 HTMLの特徴は、次のような点だろう。
  • 「TEXTファイル」
  • 「タグを利用したマークアップ」
  • 「構造化文書」
  • 「特定のベンダに依存しない」
 「タグを利用したマークアップ」。このことが、Web文書の成功の キーストンである。「特定のベンダに依存しない」 というのは、ユーザーの立場からすれば、いささか疑問 はある。「構造化文書」とはなんだったろう。改めて考えてしまう。 HTMLの成功を力として 次期SGMLの仕様書がXMLである。etensible Markup Language は「メタ言語」と言われる。何だろう?

 

「構造化文書」
 

 WordやExcelといった文書はもとより、測量データーもXML。となれば、 たまの休日、Webサイト作りといったものではな。速習XMLがビジネス マンの必須科目となる。
 測量データーが国土地理院からダウンロウドして手に入る。 これがXML。IEの6を使っているのだが、測量データーがIEで眺められる。 TABで綺麗にインデントされ表示される。マイクロソフトはIE5よりXML対応していたと知ってびっくり。ソースをじっくり眺めると、確かに「構造化文書」である雰囲気が 伝わってくる。HTMLにもルールはあった。文章を書く位置は決まっていた。 表のルールもあった。
<HTML>
<HEAD>
<TITLE>oooo</TITLE>
</HEAD>
<BODY>

<TABLE>
<TR><TD>oooo</TD></TR>
<TR>
<TD><A HREF="*****">
<IMG SRC="++++++"></A></TD>
</TR>
</TABLE>

</BODY>
</HTML>
これがHTMLのルール。

このルールが構造化というなら、XMLの構造はどうなの?


 

「メタ言語」
 

 「メタ言語」とは、それを基にして別の言語を作成できる機能を提供する言語。 つまりは、憲法(constitution)ということか。民法は憲法の精神を侵しては いけない。そういうこと。
  • 特定のソフトやハードに依存せず、テキスト形式で記述できる。
  • マークアップである。
HTMLがそうだったようにXMLもこれは大前提だそうだ。

<TITLE>100円</TITLE>
これはHTML。

<表題>100円</表題>
これはHTMLではない。XMLではある。


<単価>100円</単価>
憲法XMLは、このように100円を修飾するためにタグを使う。100円をマークアップしているという。

<TITLE>100円</TITLE>
HTMLの表題は100円とマークアップしている。

HTMLはXML憲法下のWeb文書法だから、タグを文章表記記号として 利用している。れっきとしたXMLである。しかしコンピューターと テキストの間で、実に巧妙にマークアップタグは利用されたものだ。ブラウザ はこのタグを読んで画面に文字を表示しているのだ。

だが、XMLはタグをもっと一般的に、内容を説明するものと だけ規定している。<名前>のセットでタグと呼ぶ。内容開始タグ終了タグのセットで「要素」としている。

 

勝手に「タグ」
 

<TABLE>と</TABLE>のように、この組み合わせでタグを使う。これが憲法になった。これしか駄目。
ということで、開始タグはあるが終了タグのないHTMLの<BR>は憲法違反で消滅するそうだ。

XMLでは大文字と小文字が区別される。これからは大文字と小文字を区別しよう。

XMLの構造
<?xml version="1.0" encoding="Shift_JIS" standalone="yes"?>

<請求額 顧客ID="1" >
  <単価>100円</単価>
	<数量>10個</数量>
  <金額>1000円</金額>
</請求額>
XML宣言と要素より構成される。

XML宣言
<?xml version="1.0" encoding="Shift_JIS" standalone="yes"?>

宣言 説明 必須or省略可能
version XML仕様のバージョンを宣言 必須(1.0を指定)
encoding 文字データのエンコーディングを宣言 省略可能。デフォルトは、UTF-8またはUTF-16
standalone 外部DTDを参照しないかどうかを宣言 省略可能。デフォルトはno

 XML仕様のバージョンが1.0、文字エンコーディングがUTF-8またはUTF-16、スタンドアロン文書宣言がnoをすべて満たしている場合、XML宣言自体の省略が可能。


要素
 <要素名  属性名="属性値"> 内容</要素名>
  •  内容を名前の開始タグと終了タグで囲んで要素とする。
  • 開始タグには属性を付けることができる。
  • 要素の中に要素(子要素)がある階層構造ととらえる。 一番親の要素をルート要素と呼ぶ

 XML文書内で名前として使ってはいけないケース。

  1. 全角英数字、半角カナ、丸付き数字を含んではいけない
  2. 1文字目に数字は使えない
  3. 「XML」から始まる名前は大文字小文字の組み合わせを問わず、予約されているので使えない
  4. タグ内では次の実体が定義なしで使える。
  5. 記号 実体
    & &amp;
    < &lt;
    > &gt;
    ' &apos;
    " &quot;

    HTMLで空白を挿入したいときに使う「&nbsp;」はXML 1.0仕様ではサポートされていません。

    以上がXMLのルール。これを満たせばwell-Formed XML(整形式XML)とされる。
    XML 1.0仕様はファイルの命名規則を特に規定していません。拡張子は何にしても構いません。通例は.xml。


 

スキーマ(文書の構造)
 

 要素や属性の名前、出現順などの細則をスキーマと呼ぶ。そのスキーマを定義する言語として、XML 1.0は「DTD」(Document Type Definition)を規定している。

DTDの記述位置
XML宣言と要素本体の間に記述する。
内部で指定
<!DOCTYPE  ルート要素名  [この中にDTDを記述]>

外部で指定
<!DOCTYPE  ルート要素名  SYSTEM  "外部ファイルのURI">

<!DOCTYPE  ルート要素名  PUBLIC "公開識別子" "外部ファイルのURI">

DTDの記述方法
要素型宣言
<!ELEMENT 要素名 DTD内容>
DTDの内容 説明
<!ELEMENT a (#PCDATA)> 要素aの内容が文字データ
<!ELEMENT a (b)> 必ず1回 子要素bが出現する
<!ELEMENT a (b, c)> 左から記述された順に子要素が出現する
<!ELEMENT a (b | c)> | で区切られた子要素のうち、いずれか1つが出現する
<!ELEMENT a (b?)> 子要素は0回または1回出現する
<!ELEMENT a (b+)> 子要素は1回以上出現する
<!ELEMENT a (b*)> 子要素は0回以上任意の回数で出現する
<!ELEMENT a ANY> DTDで定義されている要素であれば、どんな順序、どんな回数出現してよい
<!ELEMENT a EMPTY> 要素aは空要素である

属性リスト宣言
<!ATTLIST 要素名 属性名 属性の型 デフォルト値>

指定できる属性の型
種類 説明
CDATA 文字データ
ID 識別子
IDREF 識別子参照値。ID型の属性で指定された識別子への参照値
IDREFS 複数のIDREFの属性値
NMTOKEN 「名前トークン」というタイプの文字列
NMTOKENS 複数の「名前トークン」
ENTITY エンティティ参照値
ENTITYS 複数のエンティティ参照値


指定できるデフォルト値
種類 説明
#IMPLIED 属性は省略可能
#REQUIRED 属性は必須
"デフォルト値" 属性値が記述されていなかったときに渡されるデフォルト値
#FIXED  "デフォルト値" 固定値を指定

実体宣言
<!ENTITY 実体名 "実体">
<!ENTITY role "共通仕様書";>
本文では&role;と記述しておくと「共通仕様書」に置き換えられて表示される。


DTDに従って記述されているXML文書を「valid XML」と呼ぶ。
XMLは憲法。民法はDTDを加えた「valid XML」と理解しよう。

XML用語事典インデックス


2003.10.17
by Kon