DTD - Proprietà

In DTD, gli attributi vengono dichiarati tramite la dichiarazione ATTLIST.

Dichiarazione degli attributi

La dichiarazione degli attributi utilizza la seguente sintassi:

<!ATTLIST nome_dell_elemento nome_dell_atributo tipo_dell_atributo valore_predefinito>

Esempio di DTD:

<!ATTLIST payment type CDATA "check">

Esempio di XML:

<payment type="check" />

Di seguito è riportatoTipo di attributoOpzioni di:

Tipo Descrizione
CDATA Il valore è i dati di testo (character data)
(en1|en2|..) Questo valore è una delle opzioni della lista enumerativa
ID Il valore è un id unico
IDREF Il valore è l'id di un altro elemento
IDREFS La lista dei valori di altri id
NMTOKEN Il valore è un nome XML legittimo
NMTOKENS Il valore è una lista di nomi XML validi
ENTITY Il valore è un'entità
ENTITIES Il valore è una lista di entità
NOTATION Questo valore è il nome simbolico
xml: Il valore è un valore XML predefinito

I parametri del valore predefinito possono essere i seguenti:

Valore Spiegazione
Valore Valore predefinito dell'attributo
#REQUIRED Il valore dell'attributo è obbligatorio
#IMPLIED L'attributo non è obbligatorio
#FIXED valore Il valore dell'attributo è fisso

Definire un valore predefinito per l'attributo

DTD:

<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">

XML valido:

<square width="100" />

Nell'esempio sopra, "square" è definito come un elemento vuoto con l'attributo "width" di tipo CDATA. Se la larghezza non è impostata, il valore predefinito è 0.

#IMPLIED

Sintassi

<!ATTLIST nomeElemento nomeAttributo tipoAttributo #IMPLIED>

Esempio

DTD:

<!ATTLIST contact fax CDATA #IMPLIED>

XML valido:

<contact fax="555-667788" />

XML valido:

<contact />

Se non si desidera forzare l'autore a includere l'attributo e non si ha la scelta di valore predefinito, utilizzare la parola chiave #IMPLIED.

#REQUIRED

Sintassi

<!ATTLIST nomeElemento nomeAttributo tipoAttributo #REQUIRED>

Esempio

DTD:

<!ATTLIST person number CDATA #REQUIRED>

XML valido:

<person number="5677" />

XML non valido:

<person />

Se non si ha la scelta di valore predefinito ma si desidera forzare l'autore a fornire l'attributo, utilizzare la parola chiave #REQUIRED.

#FIXED

Sintassi

<!ATTLIST nomeElemento nomeAttributo tipoAttributo #FIXED "value">

Esempio

DTD:

<!ATTLIST sender company CDATA #FIXED "Microsoft">

XML valido:

<sender company="Microsoft" />

XML non valido:

<sender company="W3School" />

Se si desidera che l'attributo abbia un valore fisso e non sia possibile modificare questo valore dall'autore, utilizzare la parola chiave #FIXED. Se l'autore utilizza un valore diverso, l'analizzatore XML restituirà un errore.

Elenca i valori degli attributi

Sintassi:

<!ATTLIST nomeElemento nomeAttributo (en1|en2|..) valorePredefinito>

Esempio DTD:

<!ATTLIST payment type (check|cash) "cash">

Esempio XML:

<payment type="check" />

O

<payment type="cash" />

Se si desidera che il valore dell'attributo sia uno dei valori legali fissi, utilizzare il valore elencato.