Swappa : Uni / Basi di Dati - Complementi - Document Type Definition
Creative Commons License

 :: Basi di Dati - Complementi ::

Document Type Definition

Cos'è

Il Document Type Definition (DTD) è una specifica della struttura di documenti XML: se il documento rispetta tale specifica si dice valido rispetto ad essa. Il suo utilizzo è opzionale e può essere specificato sia all'interno del documento XML (generalmente all'inizio) che in un documento separato cui fa riferimento con una particolare direttiva (<!DOCTYPE root-element SYSTEM "filename">).

E' costituito da un insieme di regole, che possono essere di due tipi:

Sintassi

Elementi

Per definire gli elementi leciti all'interno del documento si utilizza la seguente sintassi:

<! ELEMENT nomeElemento (modelloDiContenuto)>

Il modello di contenuto può essere di vari tipi:

Ogni elemento può avere diversi indicatori di occorrenza per i suoi sotto-elementi, quindi diversa cardinalità:

Attributi

Gli attributi forniscono informazioni aggiuntive sugli elementi, e per definire quelli leciti all'interno del documento si utilizza la seguente sintassi:

          <!ATTLIST nomeElemento
          nomeAttributo1 (tipo) valoriPredefiniti
          nomeAttributo2 (tipo) valoriPredefiniti
          ...             ...   ...>

I tipi sono fondamentalmente tre:

Per quanto riguarda i valori predefiniti degli attributi, su essi possono essere imposti alcuni vincoli:

Esempio

Documento XML di partenza:

<elenco>
  <prodotto codice="123">
    <descrizione> libro </descrizione>
    <prezzo> 50 </prezzo>
  </prodotto>
  <prodotto codice="456">
    <descrizione> penna stilo </descrizione>
  </prodotto>
</elenco>

DTD risultante:

(1) <!ELEMENT ELENCO (PRODOTTO+)>
(2) <!ELEMENT PRODOTTO (DESCRIZIONE, PREZZO?)>
(3) <!ATTLIST PRODOTTO codice ID #REQUIRED>
(4) <!ELEMENT DESCRIZIONE (#PCDATA)>
(5) <!ELEMENT PREZZO (#PCDATA)>

Commenti punto per punto:

Limiti

Il Document Type Definition è molto semplice da scrivere e questo ha un prezzo:


Torna alla pagina di Basi di Dati - Complementi

(Printable View of http://www.swappa.it/wiki/Uni/BDC-DTD)