この附属書は,4.4 (XMLプロセサによる実体及び参照の扱い)で規定されている,実体参照及び文字参照を認識し展開する一連の流れを例によって示す。
DTDが,次の宣言を含む場合を考える。
<!ENTITY example "<p>An ampersand (&#38;) may be escaped numerically (&#38;#38;) or with a general entity (&amp;).</p>" >
example
"の値として,次の文字列を保存する。
<p>An ampersand (&) may be escaped numerically (&#38;) or with a general entity (&amp;).</p>
&example;
"を参照すると,このテキストは再び構文解析される。このとき,要素"p
"の開始タグ及び終了タグを認識し,三つの参照を認識し展開する。その結果,要素"p
"は,次の内容(すべてデータであって,区切り子又はマーク付けは存在しない。)をもつ。
An ampersand (&) may be escaped numerically (&) or with a general entity (&).
規則及びその効果をより詳細に示すため,さらに複雑な例を示す。次の例で,行番号は参照の便宜のためだけに付ける。
1 <?xml version='1.0'?> 2 <!DOCTYPE test [ 3 <!ELEMENT test (#PCDATA) > 4 <!ENTITY % xx '%zz;'> 5 <!ENTITY % zz '<!ENTITY tricky "error-prone" >' > 6 %xx; 7 ]> 8 <test>This sample shows a &tricky; method.</test>
a) |
4行目で,37番の文字への参照を直ちに展開し,パラメタ実体" |
b) |
5行目で,文字参照" |
c) |
6行目で," |
d) |
8行目で,一般実体" |