事前定義エンティティ  

XML は、ユーザー定義のエンティティ参照に加えて、表 21-1 に示す 5 つのエンティティ参照を含むことができます。これらのエンティティ参照は、宣言せずに使用できます。これらのエンティティ参照は、HTML ドキュメントで利用できるエンティティ参照のサブセットです。

事前定義エンティティ

エンティティ

文字

XML 宣言

<

<

<!ENTITY lt "&#38;#60;">

&gt;

>

<!ENTITY gt "&#62;">

&amp;

&

<!ENTITY amp "&#38;#38;">

&apos;

'

<!ENTITY apos "&#39;">

&quot;

"

<!ENTITY quot "&#34;">

&lt; および &amp; エンティティは、< または & が要素コンテンツまたは属性値に指定される場合に使用する必要があります。&gt; エンティティは、> がドキュメントコンテンツで指定される場合に頻繁に使用されますが、]]> をコンテンツに配置するのを避けることのみが必須です。通常、&apos; および &quot; は、値と、値を含めるために使用する引用符の間の競合を避けるために、属性値内のみで使用されます。

パーサーは、宣言されているかどうかとは無関係にこれらのエンティティを認識する必要がありますが、エラーを発生させることなく、これらのエンティティを DTD で宣言できます。

こうした "特殊な" 事前定義エンティティの存在により、XML ドキュメントで難問が生まれます。これらの参照は宣言せずに使用できるため、宣言されていないエンティティへの参照を含む、有効な XML ドキュメントの作成が可能になります。XML 仕様では、これらのエンティティを宣言して、これらのエンティティを事前定義しない古い SGML パーサーをサポートすることを推奨しています。しかし実際には、これらのエンティティを宣言しても、ドキュメントが不要に複雑になるだけです。