文書型宣言について
SGML文書では、その先頭に、
<!DOCTYPE ほにゃほや ・・・
などと記述して、その文書の型を宣言したりしますよね。
XMLもSGML同様、文書型宣言が存在する(?)んですが、XMLの場合は、別に文書型宣言が無くてもいいそうです。
# なんか変な感じ、、、
文書型宣言が必要(?)なら、DOCTYPE宣言をすればいいし、別にしなくてもいい。
どちらの場合でも、XML文書としては正しいそうです。
XML関連のドキュメントをいろいろ見ていると、
- valid XML document(正しい、正当なXML文書 ?)
- well-formed XML document(適合するXML文書 ?)
と、XML文書には2種類あることがわかります。どう違うかというと、
- valid XML documentには、文書型宣言(定義)がなくてはならない
- well-formed XML documentの方は、無くてもいい(XMLの構文規則に従っていればよい)
そうで。
で、文書型宣言については、以下の様なことが、XML-PR(WD)には書かれています。
- 文書型宣言をXML文書に記載する場合は、root element(文書の先頭(?)要素。HTMLでいうところの<HTML>)の前に記述する
- 文書型宣言の名称は、そのXML文書のroot elementの名称と同一(match)でなければならない(must)
ちなみに、要素を宣言する場合は、こんな感じになります。
<!ELEMENT P #PCDATA >
タグの省略はないですから、これでいい。
そうそう、どういうときに、文書型宣言(あるいは定義)が無くてもいいかというと、
- タグ付けされた文書から、文書型定義をアプリケーションが推測できる
場合にはなくてもいいそうで。
# これって、結構大変じゃないかと思うけど、どうなんだろう。
# XMLの仕様を良く読めばわかるかな。
とりあえず、この程度で
XML入門へ戻る
miuraj@isc.meiji.ac.jp