「整形式XML
文書」とは、必要最低限の最も基本的な XML
データのタグ付け規則に従って作成された文書を意味します。
XML
文書は、以下のような規則に従って記述された XML
データを含んだ文書を指します。HTML
では、終了タグの省略が許されている要素があります。また、タグの親子関係があやふやでも、Webブラウザ側で補完して表示してくれるものもあります。ある程度の文法違反を許してしまうほどの寛容さを持っています。XML
の記述は、非常に厳格で、上記のような規則に従わなければなりません。つまり、XML
は、整形式XML
として記述しなければならないのです。XML
文書は、必ずしも DTD
を記述する必要はありませんが、エンティティ宣言で置き換え文字列の定義を行う場合と、外部ファイルの参照の定義を行う場合には、必須になります。XML
文書の構成パターンは幾つかありますが、その1つは XML
データのみで記述したパターンです。XML
データのみで記述されるパターンは、1つの文書に外部ファイル(例えば XSL
文書など)を参照する宣言が含まれます。整形式XML
サンプル
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="sample.xsl"?> ← 外部文書を参照 <magazineinfo> <book>初心者のためのホームページ作り</book> <author>ばんばん</author> <content>XML初級講座</content> </magazineinfo>
XML
データと同じ1つのファイル内で、DTD
のエンティティ宣言に、置き換え文字列を定義したものです。DTD
のエンティティ宣言に、置き換え文字列を定義した整形式XML
文書は、以下のようなコーディングとなります。エンティティ宣言によるサンプル
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE magazineinfo [ <!ENTITY ext "Extensible Markup Language"> ← エンティティ宣言 ]> <magazineinfo> <book>初心者のためのホームページ作り</book> <author>ばんばん</author> <content>XML(&ext;)初級講座</content> </magazineinfo>
&ext;
というエンティティが、「Extensible Markup Language」
に置き換えられて記述されているのがお分かりと思います。XML
文書の構成パターンの3つ目は、XML
データと同じファイル内に記述した DTD
のエンティティ宣言に、外部ファイルの参照の定義を記述したものです。DTD
のエンティティ宣言で定義した外部ファイルは、XML
データから参照することができます。内部DTD
に外部ファイルの参照を定義したサンプル
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE magazineinfo [ <!ENTITY w3c SYSTEM "sample2Linkw3c.xml"> ← 外部ファイルの参照 ]> <magazineinfo> <book>初心者のためのホームページ作り</book> <author>ばんばん</author> <content>XML初級講座</content> <link>&w3c;</link> </magazineinfo>
XML
文書の構成パターンの4つ目は、XML
データとは別の外部ファイルに記述した DTD
のエンティティ宣言に、置き換え文字列の定義を記述したものです。XML
文書に、この DTD
の外部ファイル宣言を記述することで関連付けは行われ、外部DTD
のエンティティ宣言で定義した置き換え文字列は、XML
データから参照することができます。外部DTD
に置き換え文字列を定義したサンプル
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE magazineinfo SYSTEM "sample.dtd"> ← 外部ファイルを参照 <magazineinfo> <book>初心者のためのホームページ作り</book> <author>ばんばん</author> <content>XML(&ext;)初級講座</content> </magazineinfo>
DTD
が外部にあり、その外部DTD
から、エンティティを参照しているのが理解できると思います。XML
データとは別の外部ファイルに記述した DTD
のエンティティ宣言に、外部ファイルの参照を定義したものです。DTD
から、さらに先の外部ファイルの参照を定義するものです。