<!ELEMENT name content-model>
EMPTY
: l’elemento non può contenere nulla;ANY
: l’elemento
può contenere testo e ogni altro elemento;<!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) |
<!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.