Creare documenti validi con le DTD Parte 3
Il tipo di attributo è il secondo componente necessario per la definizione e specifica il valore che può essere assegnato allo stesso attributo nel documento. Ci sono tre modi per specificare il tipo di attributo:
- Tipo stringa: un attributo di tipo stringa può essere assegnato a qualsiasi stringa tra virgolette, nota anche come letterale. Un attributo di tipo stringa viene dichiarato mediante la parola chiave CDATA. Esempio:
<!ATTLIST LIBRO Class CDATA "thriller" > - Tipo token: il valore assegnato ad un tipo token deve essere una stringa tra virgolette mediante una parola chiave appropriata.
- Tipo enumerato: si può assegnare ad un attributo di questo tipo, un valore tra quelli specificati in un elenco.
Specifica di un tipo token
Per meglio comprendere questo tipo di dati, vediamo un esempio di file xml in cui l' attributo CODICE è definito come tipo token mediante la parola chiave ID. ID indica che per ogni elemento, l' attributo deve avere un valore univoco. Esempio del file xml. Adesso vediamo gli le altre parole chiave che si possono usare per definire gli attributi di tipo token.
ID: in ogni elemento l' attributo deve avere un valore univoco. Un particolare tipo di elemento può avere solo un attributo di tipo ID e la dichiarazione predefinita deve essere #REQUIRED o #IMPLIED. Queste due chiavi saranno trattate più avanti.
IDREF:Il valore dell' attributo deve corrispondere al valore di qualche attributo di tipo ID.
<!ATTLIST LIBRO Codice ID #REQUIRED Formato_Libro #IMPLIED>
<LIBRO Codice="001">Come il mare</LIBRO>
<LIBRO CODICE="002" Formato_Libro="001">Tascabile</LIBRO>
IDREFS: simile al tipo IDREF ma il valore può includere riferimenti a molti identificatori, tutti all' interno di stringhe tra virgolette.
<!ATTLIST TITOLO
Codice ID #REQUIRED Formato_Libro #IMPLIED>
<TITOLO Codice="001">Come il mare</TITOLO>
<TITOLO Codice="002">Il Cliente</TITOLO>
<TITOLO Codice="003" Formato_Libro="001" "002">Biografia dei 2 autori</TITOLO>
ENTITY: Il valore dell' attributo deve corrispondere al nome di una entità analizzata dichiarata nella DTD. Una entità non analizzata fa riferimento ad un file esterno.
<!ATTLIST IMMAGINE Source ENTITY #REQUIRED>
<IMMAGINE Source="Logo" />
ENTITIES: simile al valore ENTITY ma il valore può includere i nomi di numerose entità non analizzate, all' interno di stringhe tra virgolette.
<!ATTLIST IMMAGINE Source ENTITIES #REQUIRED>
<IMMAGINE Source="Logo1 Logo2" />
NMTOKEN: il valore è un "simbolo del nome" o un nome costituito da una o più lettere, cifre, punti (.), trattini (-) ecc.
<!ATTLIST LIBRO ISBN="x-xxx-xx-xxx">Come il mare</LIBRO>
NMTOKENS: simile al tipo NMTOKEN, però il valore può includere molti nomi ti token, separati da spazi, tutti all' interno di una stringa tra virgolette.
<!ATTLIST LIBRO Codici NMTOKENS #REQUIRED>
<LIBRO Codici="001 002 003">Come il mare</LIBRO>
| < Prec. | Succ. > |
|---|

