Condividi tramite


ELEMENT

L'istruzione ELEMENT consente di dichiarare ogni elemento usato 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
    Nome dell'elemento. È necessario rispettare la distinzione tra maiuscole e minuscole.

  • content
    Il modello del contenuto consentito per l'elemento, che deve essere uno degli elementi seguenti:

    • ANY - Nell'elemento è consentito qualsiasi contenuto. Quando usata 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 usare 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 usati insieme ai nomi di altri elementi dichiarati nella DTD per creare la regola di contenuto dell'elemento.

      Symbols

      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, usando 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 annidare 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 usare 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 annidate è possibile usare una virgola. Questa indica che gli elementi o le regole devono essere presenti nell'ordine specificato.

      ?

      È possibile usare 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 usato una sola volta in questo punto della struttura del documento XML.

      +

      È possibile usare 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 usato più volte in questo punto della struttura del documento XML.

      *

      È possibile usare l'asterisco come suffisso o operando. Questo indica che l'elemento o la regola che lo precede è facoltativo/a. Il segno più può essere usato 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*)  >
    

Vedere anche

Concetti

ATTLIST (Elenco attributi)

ENTITY (XML)

NOTATION