Ricerca…


Osservazioni

Dal punto di vista dello storage, un documento XML è costituito da entità. Una delle entità è l'entità documento, che è il documento XML principale stesso.

Le entità possono essere classificate in questo modo (ordinate in modo decrescente in ordine decrescente di utilizzo):

  • entità documento : questo è il file XML principale.
  • entità generali interne : questa è la più comune oltre all'entità documento e di cui è a conoscenza la maggior parte degli utenti XML. Spesso, la parola entità è usata casualmente per loro. Permettono di specificare alcune scorciatoie per testi sostitutivi più lunghi nel contenuto del documento. Sono dichiarati nella DTD.
  • il sottoinsieme DTD esterno : un altro file in cui parte del DTD è esternalizzata.
  • entità parametro : scorciatoie, da usare nella DTD.
  • entità generali parsed esterne : sono frammenti XML memorizzati in altri file.
  • entità non analizzate : possono trattarsi di file su cui XML non pone restrizioni, incluse immagini, suoni, ecc.

In molti casi, un documento XML è costituito esclusivamente dall'entità del documento.

Entità generali predefinite

XML pre-definisce cinque entità generali che possono essere utilizzate senza dichiararle:

& " ' < >

Sono associati ai nomi amp , quot , apos , lt e gt .

<?xml version="1.0"?>
<entities>
  &amp; is an ampersand.
  &quot; is a quote.
  &apos; is an apostrophe.
  &lt; is a lower-than sign.
  &gt; is a greater-than sign. 
</entities>

Entità generali (interne) definite dall'utente

È possibile definire le proprie entità generali. La dichiarazione si verifica nel sottoinsieme DTD, con un nome e il testo sostitutivo associato.

Può quindi essere utilizzato nel documento usando la sintassi di riferimento dell'entità &...; , sia nel testo, sia nei valori degli attributi.

<?xml version="1.0"?>
<!DOCTYPE my-document [
  <!ENTITY my-entity "This is my entity">
]>
<my-document>
    The entity was declared as follows: &my-entity;
    <element attribute="Entity: &my-entity;"/>
</my-document>

Entità parsed esterne

I frammenti XML, noti anche sotto il nome di entità parsed esterne , possono essere archiviati in file separati.

I frammenti XML, a differenza dei documenti XML, sono meno restrittivi, in quanto diversi elementi possono apparire di livello superiore, oltre a nodi di testo. Come un documento XML, un'entità analizzata esterna può iniziare con una dichiarazione XML, ma questa dichiarazione non è considerata parte del testo sostitutivo.

Questo è un esempio di entità parsed esterna:

<?xml version="1.0" encoding="UTF-8"?>
This is some text
<element/>
<element/>

Un'entità parsed esterna può quindi essere dichiarata in un documento XML, nella DTD, e può essere utilizzata con un riferimento di entità, che ha la stessa sintassi delle entità interne generali:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<root>
    &fragment;
</root>

Con il riferimento all'entità risolto, questo documento è equivalente a:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE root [
<!ENTITY fragment SYSTEM "fragment.xml">
]>
<root>
  This is some text
  <element/>
  <element/>
</root>

Ogni tag di elemento di apertura in un'entità analizzata esterna deve avere un tag di fine corrispondente: non è consentito distribuire singoli elementi su più entità, né per diffondere markup.

È necessario un parser di convalida per risolvere il riferimento all'entità e includere il testo sostitutivo nel documento come sopra. Un parser non validante può saltare questo, e invece dire all'applicazione consumante che esiste un riferimento non risolto a un'entità analizzata esterna.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow