ELEMENT
L'istruzione ELEMENT
consente di dichiarare ogni elemento utilizzato all'interno del tipo di documento definito dalla DTD. Innanzitutto dichiara l'elemento in base al nome, quindi specifica il contenuto consentito per l'elemento.
Sintassi
<!ELEMENT name content >
Parametri
- name
Il nome dell'elemento. È necessario rispettare la distinzione tra maiuscole e minuscole.
contenuto
Il modello del contenuto consentito per l'elemento, che deve essere uno degli elementi seguenti:ANY - Nell'elemento è consentito qualsiasi contenuto. Quando utilizzata in una dichiarazione dell'elemento, questa parola chiave consente un modello del contenuto senza restrizioni per gli elementi e tutti i relativi nodi figlio.
EMPTY - L'elemento non deve presentare contenuto e deve, quindi, rimanere vuoto.
Regola di contenuto dichiarata - Per utilizzare questa opzione è necessario scrivere una regola di contenuto e racchiuderla tra parentesi.
Nella tabella seguente sono indicati la parola chiave riservata o i segni di punteggiatura che possono essere utilizzati insieme ai nomi di altri elementi dichiarati nella DTD per creare la regola di contenuto dell'elemento.
Simboli Descrizione #PCDATA
Consente di includere nel contenuto dell'elemento dati di tipo carattere analizzati.
name
Il nome di un elemento. Può essere l'elemento definito oppure elementi diversi definiti mediante il nome nella DTD, utilizzando dichiarazioni
ELEMENT
aggiuntive.Se nella regola di contenuto non sono presenti altri segni di punteggiatura o simboli, è consentita e obbligatoria una sola occorrenza dell'elemento denominato.
()
Sebbene sia obbligatoria almeno una coppia di parentesi nella dichiarazione del modello di contenuto per un elemento, è possibile nidificare anche ulteriori insiemi di parentesi. Questa tecnica consente di definire un modello di contenuto più complesso per un determinato elemento.
|
Per separare due elementi denominati è possibile utilizzare una barra verticale. In questo modo, viene indicato che entrambi gli elementi (ovvero sia quello che precede che quello che segue la barra) possono essere elementi figlio.
,
Per separare due elementi denominati o due regole nidificate è possibile utilizzare una virgola. Questa indica che gli elementi o le regole devono essere presenti nell'ordine specificato.
?
È possibile utilizzare il punto di domanda come suffisso o operando. Questo indica che l'elemento o la regola che lo precede è facoltativo/a. Tuttavia, il punto di domanda può essere utilizzato una sola volta in questo punto della struttura del documento XML.
+
È possibile utilizzare il segno più come suffisso o operando. Questo indica che l'elemento o la regola che lo precede è obbligatorio/a. Il segno più può essere utilizzato più volte in questo punto della struttura del documento XML.
*
È possibile utilizzare l'asterisco come suffisso o operando. Questo indica che l'elemento o la regola che lo precede è facoltativo/a. Il segno più può essere utilizzato più volte in questo punto della struttura del documento XML.
Esempi
Dichiara un elemento
<test>
che può presentare qualsiasi contenuto:<!ELEMENT test ANY >
Dichiara un elemento
<Image>
che deve essere vuoto (ovvero un elemento che non può presentare alcun contenuto):<!ELEMENT Image EMPTY >
Dichiara un elemento
<title>
che può contenere solo dati di tipo carattere (nessun altro markup):<!ELEMENT title (#PCDATA) >
Dichiara un elemento
<fruit>
che contiene un elemento<apple>
oppure un elemento<orange>
:<!ELEMENT fruit (apple|orange) >
Dichiara un elemento
<book>
che contiene un elemento<author>
seguito da un elemento<title>
:<!ELEMENT book (author,title) >
Dichiara un elemento
<memo>
che contiene un elemento<body>
che può essere seguito da un elemento<postscript>
:<!ELEMENT memo (body,postscript?) >
Dichiara un elemento
<catalog>
che deve contenere uno o più elementi<book>
:<!ELEMENT catalog (book+) >
Dichiara un elemento
<table>
che può essere vuoto oppure contenere elementi<rowset>
:<!ELEMENT table (rowset*) >