eXtensible Markup Language Tutorial - by Marco Giannì
Capitolo III: Definizione del tipo di documento (DTD)

Attributi

Oltre alla definizione della struttura di un elemento e al tipo di contenuto, è possibile associare attributi a un elemento. Gli attributi forniscono informazioni aggiuntive relative all'elemento o al contenuto dell'elemento.

DICHIARAZIONI DI ATTRIBUTO

Nel linguaggio XML gli attributi vengono dichiarati nella DTD utilizzando la sintassi seguente:

<!ATTLIST ElementName AttributeName Type  Default>

In questo caso <!ATTLIST> rappresenta il tag che identifica una dichiarazione di attributo. La voce ElementName rappresenta il nome dell'elemento a cui vengono applicati gli attributi, La voce AttributeName rappresenta il nome dell'attributo. La voce Type identifica il tipo di attributo dichiarato. La voce Default specifica le impostazioni predefinite relative all'attributo.

Ecco elencati i tipi di attributi disponibili per il linguaggio XML:

Tipo di attributo

Utilizzo

CDATA

In questo attributo possono essere utilizzati solo dati in formato carattere.

ENTITY

Il valore dell'attributo deve fare riferimento a un'entità binaria esterna dichiarata nella DTD.

ENTITIES

E' equivalente all'attributo ENTITY, ma consente l'utilizzo di più valori separati da spazi.

ID

Il valore dell'attributo deve essere un identificatore univoco. Se un documento contiene attributi ID con lo stesso valore, l'elaboratore produrrà un errore.

IDREF

Il valore deve essere un riferimento a un ID dichiarato in un altro punto del documento. Se l'attributo non corrisponde al valore dell'ID specificato, l'elaboratore produrrà un errore.

IDREFS

E' equivalente all'attributo IDREF, ma consente l'utilizzo di più valori separati da spazi.

NMTOKEN

Il valore dell'attributo consiste in una qualsiasi combinazione di caratteri del token del nome, rappresentati da lettere, numeri, punti trattini, due punti o caratteri di sottolineatura.

NMTOKENS

E' equivalente all'attributo NMTOKEN, ma consente l'utilizzo di più valori separati da spazi.

NOTATION

Il valore dell'attributo deve fare un riferimento a un'annotazione dichiarata in un altro punto della DTD. La dichiarazione può anche essere costituita da un elenco di annotazioni. Il valore deve corrispondere a una delle annotazioni dell'elenco. Ogni annotazione deve avere la relativa dichiarazione nella DTD.

Enumerated

Il valore dell'attributo deve corrispondere a uno dei valori inclusi. Ad esempio: <!ATTLIST MyAttribute (content1|content2)>.

La parte finale della dichiarazione di attributo è l'impostazione predefinita per il valore dell'attributo. Le impostazioni predefinite per i quattro tipi sono:

Impostazione predefinita

Utilizzo

#REQUIRED

Ogni elemento contenente questo attributo deve specificarne un valore. Un valore mancante può causare un errore.

#IMPLIED

Questo attributo è opzionale. L'elaboratore può ignorare questo attributo se non viene rilevato alcun valore.

#FIXED fixedvalue

Questo attributo deve avere il valore fixedvalue. Se l'attributo non è incluso nell'elemento, viene stabilito il valore fixedvalue.

Default

Identifica un valore predefinito per un attributo. Se l'elemento non include l'attributo, viene stabilito il valore default.

Nel documento d'esempio mostriamo l'utilizzo degli attributi aggiungendo alcune dichiarazioni di attributo alla DTD:

<?xml version="1.0"?>

<!DOCTYPE EMAIL [
 <!ELEMENT EMAIL (TO+, FROM, CC*, BCC*, SUBJECT?, BODY?)>
 <!ATTLIST EMAIL	
  LANGUAGE(Western|Greek|Latin|Universal) " Western"

  ENCRYPTED CDATA #IMPLIED
  PRIORITY (NORMAL|LOW|HIGH) "NORMAL">

 <!ELEMENT TO (#PCDATA)>
 <!ELEMENT FROM (#PCDATA)>
 <!ELEMENT CC (#PCDATA)>

 <!ELEMENT BCC (#PCDATA)>
 <!ATTLIST BCC
  HIDDEN CDATA #FIXED "TRUE">

 <!ELEMENT SUBJECT (#PCDATA)>
 <!ELEMENT BODY (#PCDATA)>
]>

In questo esempio sono stati aggiunti attributi all'elemento Email e al nuovo elemento Bcc. Il primo attributo aggiunto all'elemento Email è LANGUAGE. Questo attributo può contenere una tra le numerose opzioni. L'attributo conterrà il valore predefinito Western se non verrà specificato un altro valore. L'attributo successivo dell'elemento Email è ENCRYPTED. Questo elemento deve contenere i dati di carattere e poiché l'impostazione predefinita è #IMPLIED, l'elaboratore ignorerà questo attributo se non verrà specificato alcun valore. L'ultimo attributo dell'elemento Email è PRIORITY. Questo attributo può assumere uno dei tre valori NORMAL, LOW e HIGH. Il valore predefinito è NORMAL.

L'attributo HIDDEN è stato incluso nell'elemento Bcc. Questo attributo è di tipo CDATA e il valore predefinito di #FIXED viene specificato dopo la parola chiave #FIXED. Questo attributo deve sempre specificare il valore nella DTD, in questo caso TRUE.

<indietro home page avanti>

Copyright © 2000-2005. Tutti i diritti sono riservati. Per informazioni: mgianni@infinito.it