エンティティは、コンテンツまたはマークアップの代わりに XML で使用される名前を示す宣言です。 エンティティには 2 つの部分があります。 最初に、エンティティ宣言を使用して、置換コンテンツに名前を関連付ける必要があります。 エンティティ宣言は、ドキュメント型定義 (DTD) または XML スキーマの <!ENTITY name "value">
構文を使用して作成されます。 次に、エンティティ宣言で定義されている名前が XML で使用されます。 XML で使用する場合は、エンティティ参照と呼ばれます。 たとえば、次のエンティティ宣言は、"Microsoft Press" のコンテンツに関連付けられている publisher
名前のエンティティを宣言します。
<!ENTITY publisher "Microsoft Press">
次の例は、エンティティ参照として XML でこのエンティティ宣言を使用する方法を示しています。
<author>Fred</author>
<pubinfo>Published by &publisher;</pubinfo>
一部のパーサーでは、ドキュメントがメモリに読み込まれると、エンティティが自動的に展開されます。 したがって、XML がメモリに読み込まれると、エンティティ宣言が記憶され、保存されます。 パーサーは、その後、一般的なエンティティ参照を識別する &;
文字を検出すると、その名前をエンティティ宣言テーブルで検索します。 参照 &publisher;
は、それが表すコンテンツに置き換えられます。 次の XML を使用して、
<author>Fred</author>
<pubinfo>Published by &publisher;</pubinfo>
エンティティ参照を展開し、 &publisher;
を Microsoft Press コンテンツに置き換えると、次の拡張 XML が提供されます。
アウトプット
<author>Fred</author>
<pubinfo>Published by Microsoft Press</pubinfo>
エンティティにはさまざまな種類があります。 次の図は、エンティティの種類と用語の内訳を示しています。
XML ドキュメント オブジェクト モデル (DOM) の Microsoft .NET Framework 実装の既定値は、エンティティ参照を保持し、XML の読み込み時にエンティティを展開しないことです。 これは、ドキュメントが DOM に読み込まれると、参照変数を含む &publisher;
ノードが作成され、子ノードは DTD で宣言されたエンティティ内のコンテンツを表します。
次の図は、 <!ENTITY publisher "Microsoft Press">
エンティティ宣言を使用して、この宣言から作成された XmlEntity ノードと XmlText ノードを示しています。
エンティティ参照が展開されたときと展開されない場合の違いは、メモリ内の DOM ツリーで生成されるノードに違いを生み出します。 生成されるノードの違いについては、「エンティティ参照は保持され、エンティティ参照は展開され、保持されない」のトピックで説明されています。
こちらも参照ください
.NET