Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Entità, documenti e considerazioni su XML

Definire caratteristiche personalizzate dei documenti nel DTD
Definire caratteristiche personalizzate dei documenti nel DTD
Link copiato negli appunti

Abbiamo visto come XML preveda degli elementi, detti entità, che consentono di sostituire caratteri speciali. Più in generale, una entità consente di sostituire sequenze di caratteri con nomi speciali della forma & nome;. È possibile definire entità personalizzate all'interno di un Dtd in modo da sostituire qualsiasi sequenza di caratteri.

Per definire un'entità personalizzata si utilizza la dichiarazione
<!ENTITY>. Il seguente esempio mostra la definizione di un'entità & html; che rappresenta un'abbreviazione per la stringa HyperText Markup Language:

<!ENTITY html "HyperText Markup Language">

Grazie a questa dichiarazione possiamo utilizzare l'entità & html; al posto dell'intera stringa all'interno del documento XML che fa riferimento a questa grammatica.

Definito un Dtd abbiamo definito la grammatica per un linguaggio di markup. A questo punto dobbiamo mettere in relazione un documento XML con il suo Dtd, in modo che un parser XML possa verificare non soltanto la struttura ben formata del documento, ma anche la sua validità rispetto alla grammatica specificata.

Esistono due modi per indicare il Dtd cui un documento XML fa riferimento. Il primo modo prevede la presenza del Dtd all'interno del documento XML, come nel seguente esempio:

<?xml version="1.0">
<!DOCTYPE articolo[
...Definizioni del Dtd...
]>

<articolo>
...Contenuto del documento XML...
</articolo>

La dichiarazione <!DOCTYPE> indica che il documento individuato dall'elemento root <articolo> segue le regole definite tra le parentesi quadre.

Il secondo modo prevede che il Dtd sia definito in un file esterno ed il documento XML abbia un riferimento a tale file, come nel seguente esempio:

<?xml version="1.0">
<!DOCTYPE articolo SYSTEM "articolo.dtd">

In questo caso si fa riferimento all'URI del Dtd definito nel file articolo.dtd. L'indicazione del file contenente il Dtd può essere espressa come URL assoluto o relativo. Ad esempio, se il Dtd viene pubblicato su un sito web è possibile specificare il riferimento al Dtd come nel seguente esempio:

<!DOCTYPE articolo SYSTEM "http://www.myXML.it/articolo.dtd">

Utilizzando i Dtd, quindi, abbiamo un maggior controllo sulla struttura e sull'uso dei tag in un documento XML, evitando che la libertà nella definizione dei tag possa far perdere il controllo sui contenuti.

Tuttavia l'uso dei Dtd per definire la grammatica di un linguaggio di markup non sempre è del tutto soddisfacente. A parte il fatto che la sintassi utilizzata per definire un Dtd non segue le regole stesse di XML, i Dtd non consentono di specificare un tipo di dato per il valore degli attributi, né di specificare il numero minimo o massimo di occorrenze di un tag in un documento o altre caratteristiche che in determinati contesti consentirebbero di ottenere un controllo ancora più accurato sulla validità di un documento XML.

Queste limitazioni hanno spinto alla definizione di approcci alternativi per definire grammatiche per documenti XML. tra questi approcci il più noto è XML Schema.


Ti consigliamo anche