ATTLIST (Elenco attributi)
L'istruzione ATTLIST
è utilizzata per elencare e dichiarare ciascun attributo che può appartenere a un elemento. Specifica innanzitutto il nome dell'elemento (o degli elementi) per i quali verrà applicato l'elenco di attributi. Quindi elenca ciascun attributo per nome, indicando se è obbligatorio, e specifica i dati di tipo carattere consentiti come valore per l'attributo.
Sintassi
<!ATTLIST elementName attributeName dataType default >
Parametri
- elementName
Il nome dell'elemento a cui è applicato l'elenco di attributi.
- attributeName
Il nome di un attributo. È possibile ripetere questo parametro secondo le esigenze per elencare tutti gli attributi disponibili da utilizzare conelementName
.
dataType
Il tipo di dati per l'attributo denominato nel parametroattributeName
, che deve essere uno dei seguenti:CDATA - L'attributo contiene solo dati di tipo carattere.
Identificatore - Il valore dell'attributo deve essere univoco. Non è possibile ripeterlo in altri elementi o attributi utilizzati nel documento.
IDREF - L'attributo fa riferimento al valore di un altro attributo del documento, relativo al tipo identificatore.
ENTITY - Il valore dell'attributo deve corrispondere al nome di un'entità ENTITY esterna non analizzata e dichiarata nella stessa DTD.
ENTITIES - Il valore dell'attributo contiene più nomi di entità esterne non analizzate dichiarate nella DTD.
NMTOKEN - Il valore dell'attributo deve essere un token del nome. Nel token del nome sono consentiti valori di dati, ma sono presenti più limitazioni rispetto a CDATA. Un token del nome può contenere lettere, numeri e alcuni segni di punteggiatura quali, ad esempio, punti, trattini, caratteri di sottolineatura e due punti. I valori del token del nome, tuttavia, non possono contenere alcun carattere di spaziatura.
NMTOKENS - Il valore dell'attributo contiene più token del nome. Per ulteriori informazioni, vedere la descrizione di NMTOKEN e di Enumerato.
Enumerated - I valori dell'attributo sono limitati a quelli contenuti in un elenco enumerato. Viene eseguita un'analisi valida solo dei valori corrispondenti a quelli dell'elenco. Tutti i tipi di dati enumerati sono racchiusi tra parentesi e ciascun valore è separato da una barra verticale ("|").
default
Il valore predefinito dell'attributo denominato inattributeName
. Nella tabella seguente sono descritti i valori predefiniti possibili.Valore predefinito Descrizione #REQUIRED
L'attributo deve essere visualizzato nel documento XML oppure si verificherà un errore di analisi. Per evitare un errore di analisi in alcuni casi, è anche possibile utilizzare il campo
defaultValue
subito dopo questa parola chiave.#IMPLIED
L'attributo può essere presente nel documento XML ma, se omesso, non si verificherà un errore di analisi. In alternativa, a volte è possibile utilizzare anche il campo
defaultValue
che segue direttamente questa parola chiave.#FIXED
L'attributo presenta un valore fisso nella DTD e non può essere modificato o sovrascritto nel documento XML. Se si utilizza questa parola chiave, è necessario utilizzare anche il campo
defaultValue
subito dopo questa parola chiave per dichiarare il valore fisso dell'attributo.defaultValue
Un valore fisso o predefinito. Questo valore viene inserito nel documento XML se l'attributo è mancante o se non viene utilizzato nel documento XML. È necessario racchiudere tutti i valori tra virgolette (doppie o singole).
Nota: |
---|
Per ogni dichiarazione ATTLIST impostata nella DTD, è necessario utilizzare solo un'occorrenza di elementName .I parametri attributeName , dataType e default definiscono ciascun attributo dell'elenco e possono essere ripetuti secondo le esigenze finché non sono stati elencati e definiti tutti gli attributi disponibili da utilizzare con elementName .
|
Esempio
In questo esempio viene dichiarato quanto segue per l'elemento <book>
:
Un attributo
publisher
facoltativo che può contenere dati di tipo carattere.Un attributo
reseller
il cui valore è impostato su"MyStore".
Un attributo
ISBN
richiesto che deve contenere un valore di identificazione univoco per ogni elemento<book>
nel documento XML.Un attributo
InPrint
richiesto che deve contenere il valore"yes"
o"no"
. Se il valore non è impostato in modo esplicito nel documento XML, per impostazione predefinita viene applicato il valore"yes"
.