In un DTD, gli attributi vengono dichiarati con una dichiarazione ATTLIST.
dichiarare Attributi
Una dichiarazione di attributo ha la seguente sintassi:
<!ATTLIST element-name attribute-name attribute-type attribute-value>
DTD example:
<!ATTLIST payment type CDATA "check">
XML example:
<payment type="check" />
L' attribute-type può essere uno dei seguenti:
Digitare | Descrizione |
---|---|
CDATA | Il valore è di dati di carattere |
( en1 | en2 |..) | Il valore deve essere uno da un elenco numerato |
ID | Il valore è un ID univoco |
IDREF | Il valore è l'id di un altro elemento |
IDREFS | Il valore è un elenco di altri ID |
NMTOKEN | Il valore è un nome XML valido |
NMTOKENS | Il valore è un elenco di nomi XML validi |
ENTITY | Il valore è un'entità |
ENTITIES | Il valore è un elenco di entità |
NOTATION | Il valore è un nome di una notazione |
xml: | Il valore è un valore predefinito XML |
L' attribute-value può essere uno dei seguenti:
Valore | Spiegazione |
---|---|
value | Il valore di default dell'attributo |
#REQUIRED | è richiesto L'attributo |
#IMPLIED | L'attributo è facoltativo |
#FIXED value | Il valore dell'attributo è fisso |
Un attributo Valore predefinito
DTD:
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">
Valid XML:
<square width="100" />
Nell'esempio precedente, la "square" elemento è definito come un elemento vuoto con un "width" attributo di tipo CDATA. Se non viene specificato di larghezza, ha un valore predefinito 0.
#REQUIRED
Sintassi
<!ATTLIST element-name attribute-name attribute-type #REQUIRED>
Esempio
DTD:
<!ATTLIST person number CDATA #REQUIRED>
Valid XML:
<person number="5677" />
Invalid XML:
<person />
Usa la parola chiave #REQUIRED, se non si dispone di un'opzione per un valore di default, ma ancora voglia di forzare l'attributo di essere presenti.
#IMPLIED
Sintassi
<!ATTLIST element-name attribute-name attribute-type #IMPLIED>
Esempio
DTD:
<!ATTLIST contact fax CDATA #IMPLIED>
Valid XML:
<contact fax="555-667788" />
Valid XML:
<contact />
Usa la parola chiave #IMPLIED se non si vuole forzare l'autore a includere un attributo, e non si dispone di un'opzione per un valore di default.
#FISSO
Sintassi
<!ATTLIST element-name attribute-name attribute-type #FIXED "value">
Esempio
DTD:
<!ATTLIST sender company CDATA #FIXED "Microsoft">
Valid XML:
<sender company="Microsoft" />
Invalid XML:
<sender company="w3ii" />
Usa la parola chiave #FIXED quando si desidera un attributo abbia un valore fisso senza che l'autore di cambiarlo. Se un autore include un altro valore, il parser XML restituirà un errore.
Valori attributi enumerati
Sintassi
<!ATTLIST element-name attribute-name (en1|en2|..) default-value>
Esempio
DTD:
<!ATTLIST payment type (check|cash) "cash">
XML example:
<payment type="check" />
or
<payment type="cash" />
Utilizzare i valori degli attributi enumerati quando si desidera che il valore di attributo di essere parte di un insieme fisso di valori legali.