解析対象外データを埋め込む
前ページの手順に従って解析対象外データ用のエンティティを定義したら、それをXML文書に埋め込むことができます。解析対象がエンティティには、解析対象エンティティのような&記号を使ったエンティティ参照がありません。kライ席対象がデータを埋め込むには、特別に宣言された属性を使います。
1. DTD内で、解析対象外データを参照する属性を含む要素を定義します(「要素を定義する」参照)。
DTDコード <!ELEMENT outline_specification (floor_chart*)>
<!ELEMENT floor_chart (name+, picture) >
<!ELEMENT name (#PCDATA)>
<!ATTLIST name language (Japanese | Latin) #REQUIRED>
<!ENTITY floor1_pic SYSTEM "image4c.jpg" NDATA jpg >
<!NOTATION jpg SYSTEM "image/jpg">
<!ELEMENT photo EMPTY ">
<!ATTLIST photo source ENTITY #REQUIRED >まず、解析対象外データを参照する属性を含むphoto要素を定義します。その後、sourceというエンティティ属性そのものを定義します。
2. <! ATTLIST element_name と入力します。
element_nameの部分には、1.で宣言した要素を入力します。
3. att_nameと入力します。
att_nameの部分は、解析対象外データへの参照負含む属性の名前を指定します。
4. ENTITY と入力し、解析対象外データへの参照を不意組めることのできる属性であることを示します。
またはホワイトスペースで区切った解析対象がデータファイルへの複数の参照を含める場合は、ENTITIES と入力します。
5. 属性の規定値を入力します。
詳細については「単純な属性を定義する」を参照してください。
6. > と入力して属性宣言を終えます。
1. XML文書の本文中で、データを埋め込む場所に att_name="value" と入力します。
att_name の部分には、エンティティ型として宣言した属性を入力します。value の部分には、前ページ で解析対象外データを含めるために作成したエンティティの名前を指定します。
XMLコード <?xml version="1.0" encoding="Shift_JIS" standalone="no" ? >
<!DOCTYPE outline_specification[
<!ELEMENT outline_specification (floor_chart*)>
<!ELEMENT floor_chart (name+, photo) >
<!ELEMENT name (#PCDATA)>
<!ATTLIST name language (Japanese | Latin) #REQUIRED>
<!ENTITY floor1_pic SYSTEM "image4c.jpg" NDATA jpg >
<!NOTATION jpg SYSTEM "image/jpg">
<!ELEMENT photo EMPTY >
<!ATTLIST photo source ENTITY #REQUIRED>
] >
<outline_specification>
<floor_chart>
<name language="Japanese" >一階フロア図</name>
<photo source="floor1_pic" / >
</floor_chart>
</outline_specification>source属性の値は、解析対象外データを参照するエンティティの名前に対応します。
・XMLパーサーは、エンティティが参照巣r解析対象外データを表示するために記法の情報を遣うものと想定されていますが、現在XMLファイルを読み込むことのできるブラウザは、記法情報を利用するようには作られていません。つまり、これらのブラウザは埋め込まれたデータを表示しません。
・NOTATION型属性を作成して、記法宣言で指定されているデータを直接参照することもできます。(前ページ参照)
構文は <!ATTLIST element_name att_name NOTATION default_value> です。