Dichiarazione di Elementi

<!ELEMENT name content-model> 

Modello di Contenuto

<!ELEMENT persona (titolo?, nome,cognome,(indirizzo | telefono)*)> 

Il modello di contenuto è simile a una espressione regolare. Ogni nome di elemento è anche un modello valido. Esso indica che l’elemento definito deve contenere esattamente un elemento del tipo dato.

Se p e q sono due modelli validi allora lo sono anche:

(p) raggruppamento (equivale a p)
p | q disgiunzione (p oppure q)
p, q concatenazione (p e poi q)
p* star (zero o più volte p)
 p+ croce (una o più volte p)
 p? opzione (p oppure nulla)

 Modelli Misti

<!ELEMENT testo (#PCDATA | nota)*> 

Il modello misto si usa per gli elementi che devono contenere anche testo semplice. Il contenuto testuale si indica con #PCDATA.

Se è si vogliono nidificare altri elementi, non è possibile specificarne l’ordine o le ripetizioni. In altre parole, si può usare solo l’operatore di disgiunzione.