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

  • nome
    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 e 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.

      nome

      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. Questa, infatti, indica che entrambi gli elementi (ovvero sia l'elemento 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 che <title> può contenere solo dati di tipo carattere (nessun altro tag):

    <!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*)  >
    

Vedere anche

Concetti

ATTLIST (Elenco attributi)
ENTITY
NOTATION