XML  »  Guide  »  Guida XML di base 

Entità, documenti e considerazioni su XML



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.

Ultimi articoli XML

Open Graph Protocol, Facebook e il Web Semantico

Come sfruttare il Web Semantico "made in Facebook"

Introduzione a RDFa - 2

Arricchire un documento HTML con metadati semantici presi dal...

Introduzione a RDFa

Cos'è e a cosa serve il linguaggio che potrebbe aprire il campo alle...

Usare SVG per creare sfondi flessibili, scalabili e divertenti

Scopriamo cos'è il formato SVG e come possiamo usarlo in modo...

Visualizzare i metadati RDF Dublin core con le trasformazioni XSL

Mettere insieme XSL, XPATH e le definizioni Dublin core per...

Altri articoli

Guide XML

Guida Podcasting

Un percorso in 16 lezioni, per entrare nella filosofia del podcast...

Guida Smil 2.0

Un percorso pratico alla scoperta di SMIL: il linguaggio (XML) per...

Guida Web service

Cosa sono, a cosa servono e come si creano servizi Web, i sistemi...

Altre guide

Newsletter @XML

Ogni mese, direttamente nella tua e-mail: articoli, guide, FAQ e approfondimenti sui linguaggi della famiglia XML.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Nessun corso previsto

Nessun corso previsto