Lettura delle dichiarazioni di entità e dei riferimenti a entità nel DOMReading Entity Declarations and Entity References into the DOM

Un'entità è una dichiarazione che stabilisce il nome da usare in XML al posto del contenuto o del markup.An entity is a declaration that states a name to be used in the XML in place of content or markup. Le entità sono composte da due parti.There are two parts to entities. Innanzitutto, è necessario associare un nome al contenuto di sostituzione tramite una dichiarazione di entità.First, you must tie a name to the replacement content using an entity declaration. La dichiarazione di entità viene creata mediante la sintassi <!ENTITY name "value"> in una DTD (Document Type Definition) o in uno schema XML.An entity declaration is created by using the <!ENTITY name "value"> syntax in a document type definition (DTD) or XML schema. Successivamente, il nome definito nella dichiarazione di entità viene usato in XMLSecondly, the name defined in the entity declaration is subsequently used in the XML. e, in questo caso, viene denominato riferimento all'entità.When used in the XML, it is called an entity reference. Ad esempio, la dichiarazione di entità seguente dichiara un'entità il cui nome publisher viene associato al contenuto di "Microsoft Press".For example, the following entity declaration declares an entity of the name publisher being associated with the content of "Microsoft Press".

<!ENTITY publisher "Microsoft Press">  

Nel seguente esempio è illustrato l'uso di questa dichiarazione di entità in XML come riferimento all'entità.The following example shows the use of this entity declaration in XML as an entity reference.

<author>Fred</author>  
<pubinfo>Published by &publisher;</pubinfo>  

Alcuni parser consentono di espandere automaticamente le entità quando viene caricato un documento in memoria.Some parsers automatically expand entities when a document is loaded into memory. Quindi, quando l'XML viene letto in memoria, le dichiarazioni di entità vengono memorizzate e salvate.Therefore, when the XML is being read into memory, entity declarations are remembered and saved. Durante il successivo rilevamento dei caratteri &;, che identificano un riferimento a un'entità generale, il parser ricercherà quel determinato nome in una tabella delle dichiarazioni di entità.When the parser subsequently encounters &; characters, which identify a general entity reference, the parser looks up that name in an entity declaration table. Il riferimento &publisher; verrà sostituito dal contenuto che rappresenta.The reference, &publisher; is replaced by the content that it represents. Usando il seguente codice XML,Using the following XML,

<author>Fred</author>  
<pubinfo>Published by &publisher;</pubinfo>  

espandendo il riferimento all'entità e sostituendo &publisher; con il contenuto di Microsoft Press viene fornito il seguente codice XML espanso.expanding the entity reference and replacing the &publisher; with the Microsoft Press content gives the following expanded XML.

OutputOutput

<author>Fred</author>  
<pubinfo>Published by Microsoft Press</pubinfo>  

Esistono molti tipi di entità.There are many kinds of entities. Nel diagramma seguente è riportata la suddivisione dei tipi di entità e della terminologia.The following diagram shows the breakdown of entity types and terminology.

Diagramma di flusso della gerarchia del tipo di entitàflow chart of entity type hierarchy

Per impostazione predefinita, nell'implementazione Microsoft .NET Framework del DOM XML, i riferimenti alle entità vengono conservati e le entità non vengono espanse quando si carica l'XML.The default for the Microsoft .NET Framework implementation of the XML Document Object Model (DOM) is to preserve the entities references and not expand the entities when the XML is loaded. Di conseguenza quando un documento viene caricato nel DOM, viene creato un nodo XmlEntityReference contenente la variabile di riferimento &publisher; con tutti i nodi figlio che rappresentano il contenuto dell'entità dichiarata nella DTD.The implication of this is that as a document is loaded in the DOM, an XmlEntityReference node containing the reference variable &publisher; is created, with child nodes representing the content in the entity declared in the DTD.

Usando la dichiarazione di entità <!ENTITY publisher "Microsoft Press">, nel diagramma seguente vengono mostrati i nodi XmlEntity e XmlText creati da questa dichiarazione.Using the <!ENTITY publisher "Microsoft Press"> entity declaration, the following diagram shows the XmlEntity and XmlText nodes created from this declaration.

nodi creati da dichiarazioni di entitànodes created from entity declaration

Il fatto che i riferimenti alle entità vengano espansi o meno determina quali nodi vengono generati nell'albero DOM, in memoria.The differences when entity references are expanded and when they are not makes a difference in what nodes are generated in the DOM tree, in memory. La differenza tra i nodi generati è descritta negli argomenti Riferimenti alle entità conservati e Riferimenti alle entità espansi e non conservati.The difference in the nodes that are generated is explained in the topics Entity References are Preserved and Entity References are Expanded and Not Preserved.

Vedere ancheSee Also

Modello DOM (Document Object Mode) XMLXML Document Object Model (DOM)