XML (eXtensible Markup Language)
$Date: 2002/12/21 22:13:01 $
XML
XML とはなにか
その名
(eXtesible Markup Language)
の通り, 拡張可能なマークアップ言語.
SGMLを簡略化したもので,
あらかじめ用意されたものしか利用できない HTML と異なり,
XML は自分で好みに応じて追加・修正・編集・拡張することが可能.
XML の設計目標から特徴的なものをいくつか:
- XML は, インターネット上でそのまま利用可能であること
- XML は, 広範多様なアプリケーションをサポートすること
- XML は, SGML と互換的であること
SGML
SGML とは
1980 年台に ISO
(International Organization for Standardization)
によって標準化されたもの.
他のマークアップ言語を記述するためのマークアップ言語.
SGML 文書の構造
- SGML 宣言
- DTD (Document Type Definition)
- 文書インスタンス
SGML の応用
- DocBook
- TEI (Text Encoding Initiative)
- CALS
SGML はなぜ難しいのか
- 目的に応じた DTD を利用するが,
その DTD に定義されている要素がたくさんありすぎて習得が困難
- 規格書の文法定義が複雑かつ難しい
- 十分なツールや周辺技術が出そろわなかった
HTML
おいたち
web 用途に HTML が生まれる.
処理系
当初は文書構造とレイアウト情報が混在していたものだったが,
CSS の登場によりレイアウト情報
(見ための情報)
が分離され, 近年では HTML の処理系は以下のようになっていると考えられる.
大まかな処理は;
- parser (構文解析器)であり,
入力された文書を読み込んで, renderer に解釈可能な形式でデータを渡す.
parser はどの要素がどの位置に現れるか, その属性はなにかなどを判定し,
要素が省略されていればそれを補うなどし, HTML を完全な木構造にする.
- stylesheet engine はスタイル情報を適宜解釈して,
renderer に渡す.
- renderer は parser と stylesheet engine からのデータを受けとり,
ディスプレイに表示する.
といった具合である.
HTML をこれ以上拡張することはなぜまずいのか
SGML のサブセットとして定義されたため,
そもそもの拡張性が乏しい.
また, 新しい要素を追加したとすると, そのために…,
- parser への要素追加
- renderer への要素情報の追加
などが必要になる.
ふたたび XML
XML のきまりごと
- 属性名・属性値は大文字小文字を区別する
→ <myname> と <MyName> は別物.
- 属性値は必ず引用府で囲む
→ <p class=hoge> は不可. <p class="hoge"> などとする.
- 終了タグは省略しない
→ <li> が現れたら, </li> をつける.
- 空要素は
(終了タグを持たないもの)
は空要素タグで書く
→ <hr/> のように "<要素名/>" とする.
これらを満たすことにより,
`well-formed (整形式; 整った形式)' となり,
解析可能
(parsable)
となる.
また, DTD に沿ったマークアップをすると
`valid (妥当)' となる.
XML のメリット
- 要素を自分で勝手に追加することができる
- 複数の XML 言語を混在させることができる
- データの流用性の向上
XML でなにができるのか
XML アプリケーション:
- MathML
(Mathematical Markup Language)
- SVG
(Scalable Vector Graphics)
- SMIL
(Synchronized Multimedia Integration Language)
- RDF
(Resource Description Framework)
- XSL
(eXtesible Stylesheet Language)
- XSL-FO
(eXtesible Stylesheet Language-Flow Objects)
- XSLT
(eXtesible Stylesheet Language Transformations)
- XHTML
(eXtesible HyperText Markup Language)
そのほかのもの:
参考
- Extensible Markup Language (XML) 1.0
- World Wide Web Consortium,
http://www.w3.org/TR/REC-xml
- XHTML による Web 開発
- 著: Ian S. Graham, 訳: 吉川 邦夫, 版: ASCII
- XML と SGML の公開 DTD 集
- アンテナハウス,
http://www.antenna.co.jp/XML/dtdlist.htm
Copyright (C) 2001-2003 Hideyuki KURASHINA. <kura@nisoc.or.jp>