Lettura delle dichiarazioni di entità e dei riferimenti a entità nel DOM

Un'entità è una dichiarazione che stabilisce il nome da utilizzare in XML al posto del contenuto o del tag. Le entità sono composte da due parti. Innanzi tutto è necessario legare un nome al contenuto di sostituzione, utilizzando una dichiarazione di entità. Le dichiarazioni di entità vengono create utilizzando la sintassi <!ENTITY name "value"> in un DTD o in uno schema XML. In secondo luogo, il nome definito nella dichiarazione viene successivamente utilizzato in XML e in questo caso, viene chiamato riferimento all'entità. La dichiarazione di entità illustrata di seguito, ad esempio, è relativa a un'entità del nome publisher che viene associata al contenuto di "Microsoft Press".

<!ENTITY publisher "Microsoft Press">

Nel seguente esempio è illustrato l'uso di questa dichiarazione di entità in XML come riferimento all'entità.

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

Alcuni parser consentono di espandere automaticamente le entità quando viene caricato un documento in memoria. Quindi, quando l'XML viene letto in memoria, le dichiarazioni di entità vengono ricordate e salvate. Successivamente, quando il parser incontra i caratteri &...; che identificano un riferimento all'entità generale, il parser cerca quel nome in una tabella di dichiarazioni di entità. Il riferimento, &publisher; viene sostituito dal contenuto che rappresenta. Utilizzando l'XML seguente,

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

espandendo il riferimento all'entità e sostituendo &publisher;con il contenuto di Microsoft Press, viene restituito il seguente XML espanso:

Output

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

Esistono molti tipi di entità. Nel diagramma seguente è riportata la suddivisione dei tipi di entità e della terminologia.

Per impostazione predefinita dell'implementazione .NET Framework del DOM, i riferimenti alle entità vengono conservati e le entità non vengono espanse quando si carica l'XML. 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 nel DTD.

Nel diagramma riportato qui di seguito sono illustrati i nodi XmlEntity e XmlText creati utilizzando la dichiarazione di entità <!ENTITY publisher "Microsoft Press">.

Il fatto che i riferimenti alle entità vengano espansi oppure no determina quali nodi vengono generati nella struttura del DOM, in memoria. La differenza tra i nodi generati è descritta negli argomenti Riferimenti alle entità conservati e Riferimenti alle entità espansi e non conservati.

Vedere anche

Modello a oggetti di documenti XML (Document Object Model, DOM)