一般解析エンティティ | |
<!ENTITY name "Replacement text."> <!ENTITY name SYSTEM "system-literal"> <!ENTITY name PUBLIC "pubid-literal" "system-literal"> 一般解析エンティティは、ドキュメントタイプの定義内で宣言し、ドキュメントのテキストと属性コンテンツ内で参照されます。ドキュメントが解析されると、エンティティの置換テキストはエンティティ参照に置き換えられます。次に、パーサーは置き換えられたテキストから解析を再開します。 一般解析エンティティは、パラメータエンティティの宣言に使用された構文のスーパーセットを使用して、DTD 内で宣言されます。 内部エンティティは、インラインの置換テキストをリテラル文字列として保存します。内部エンティティ内の置換テキストはエンティティ宣言そのものに完全に含まれるので、置換テキストを含めるための外部ファイルが不要になります。この状況は、多くの一般的なプログラミング言語と環境にみられる、文字列を置き換えるマクロの機能に非常に似ています。 <!ENTITY name "Replacement text"> 一般解析エンティティが参照されると、外部エンティティのコンテンツがドキュメントに含まれ、XML パーサーは新しく含まれたテキストから解析を再開します。 実際には、解析および未解析の、2 つのタイプの一般的なエンティティが XML 勧告で許可されています。未解析エンティティは、外部の一般解析エンティティと同じ構文を使用して宣言されますが、XML 表記名を宣言に追加することが異なります。 <!ENTITY name SYSTEM "system-literal" notation-name> <!ENTITY name PUBLIC "pubid-literal" "system-literal" notation-name> 一般未解析エンティティは、&name; 構文を使用して参照されません。外部の未解析エンティティを参照するには、属性タイプ ENTITY または ENTITIES を使用して属性を宣言する必要があります。 外部の未解析エンティティは、適切に理解およびサポートされていない XML の機能の 1 つであり、実際には通常は使用されません。外部の XML 以外のデータ (XLink や単純な URI 文字列など) を参照するには、別のメカニズムを使用することをお勧めします。 |