|
Home -> Manuali e Tutorials -> Guida XML -> Attributi
Scarica il tutorial | Stampa il tutorial | Cerca nel sito
ATTRIBUTI XML
Un documento XML è intrinsecamente caratterizzato da una struttura gerarchica. Esso è composto da componenti denominati elementi. Ciascun elemento rappresenta un componente logico del documento e può contenere altri elementi (sottoelementi) o del testo.
Gli elementi possono avere associate altre informazioni che ne descrivono le proprietà. Queste informazioni sono chiamate attributi.
L'organizzazione degli elementi segue un ordine gerarchico o arboreo che prevede un elemento principale, chiamato elemento radice (come già visto nei capitoli precedenti).
La radice contiene l'insieme degli altri elementi del documento. Possiamo rappresentare graficamente la struttura di un documento XML tramite un albero, generalmente noto come document tree.
Nell'esempio della "rubrica", abbiamo un root element denominato rubrica che contiene una lista di elementi che rappresentano le varie persone della rubrica. Ciascuna persona, a sua volta, possiede un nome, cognome, telefono ed una email. La maggior parte degli elementi di questo document tree può possedere degli attributi, quali ad esempio il tipo del telefono o email.
Attributi
Gli attributi consentono di associare valori a un elemento senza che siano considerati parte del contenuto dell'elemento stesso. Ad esempio osserviamo un comune elemento HTML e l'utilizzo di un attributo:
<A HREF = "http://www.microsoft.com">Microsoft Home Page</A>
In questo caso l'elemento Anchor indicato dal tag <A> contiene un attributo denominato HREF. Il valore dell'attributo è http://www.microsoft.com. Mentre il valore non viene mai visualizzato dall'utente, l'attributo contiene importanti informazioni relative all'elemento e fornisce la destinazione dell'ancoraggio. Questo formato del nome e del valore mostra il modo in cui sono utilizzati gli attributi nel linguaggio XML.
In XML è possibile specificare alcuni attributi per gli elementi nella DTD stessa.
Un attributo è quindi una caratteristica evidenziata di un elemento; per definire un attributo bisogna utilizzare la seguente sintassi:
<!ATTLIST NomeElemento NomeAttributo Valori ValoreDIDefault>
Nell'esempio della rubrica telefonica, avevamo inizialmente deciso di specificare il tipo di numero telefonico utilizzando i tag <telefono_casa> e <telefono_lavoro>...
I possibili valori di default sono:
| "value" |
Un valore alfanumerico arbitrario.
|
| #REQUIRED |
Ogni elemento contenente questo attributo deve specificarne un valore. Un valore mancante può causare un errore.
|
| #IMPLIED |
Con questa dicitura si specifica che l'attributo è opzionale per l'elemento in questione. L'elaboratore può ignorare questo attributo se non viene rilevato alcun valore.
|
| #FIXED "value" |
Con questo valore si specifica un valore alfanumerico arbitrario costante. Se l'attributo non è incluso nell'elemento, viene stabilito il valore "value".
|
Volevamo specificare un attributo del numero di telefono, ma non essendo ancora in grado di utilizzare gli attributi, abbiamo aggiunto questa specifica nel nome dell'elemento.
Vediamo ora come dovrebbe essere la nostra DTD con l'aggiunta degli attributi, definendo correttamente che tipo di numero di telefono abbiamo a disposizione:
<?xml version="1.0" ?>
<!DOCTYPE rubrica [
<!ELEMENT rubrica (persona)+>
<!ELEMENT persona ( nome, cognome, (telefono)+, (email)*)>
<!ELEMENT nome (#PCDATA)>
<!ELEMENT cognome (#PCDATA)>
<!ELEMENT telefono (#PCDATA)>
<!ATTLIST telefono tipo (Casa|Lavoro|Cellulare) "Casa">
<!ELEMENT email (#PCDATA)>
]>
|
Esistono differenti tipi d'attributo, qui sotto riportati:
| CDATA |
Dati carattere
|
| ENTITY |
Il valore dell'attributo fa riferimento ad una entità binaria esterna specificata nella DTD
|
| ENTITIES |
Uguale ad ENTITY, ma permette più valori
|
| ID |
Identificatore univoco
|
| IDREF |
Riferimento ad un ID, che deve essere presente nel documento
|
| IDREFS |
Uguale a IDREF, ma permette più valori
|
| NMTOKEN |
Stringa senza spazi bianchi e altri caratteri non ammessi
|
| NMTOKENS |
Come NMTOKEN, ma con più valori possibili
|
| NOTATION |
Il valore fa riferimento ad una annotazione in un altro punto della DTD
|
| Enumerated |
Il valore dell'attributo e uno dei valori enumerati
|
Quindi nel caso della rubrica, il nome dell'Attributo è "tipo", mentre il nome dell'Elemento a cui si riferisce è "telefono"; il valore di default è "Casa", mentre gli altri valori sono quelli specificati tra le parentesi tonde.
Ecco un altro esempio (anteprima):
compilation.dtd
<!ELEMENT compilation (supporto)+>
<!ELEMENT supporto (artista,genere,album)>
<!ATTLIST supporto TIPO (CD|LP|MC) #REQUIRED>
<!ELEMENT artista (#PCDATA)>
<!ELEMENT genere (#PCDATA)>
<!ELEMENT album (#PCDATA)>
|
compilation.xml
<?xml version="1.0"?>
<!DOCTYPE compilation SYSTEM "compilation.dtd">
<compilation>
<supporto TIPO="CD">
<artista>Andrea</artista>
<genere>Rock</genere>
<album>067</album>
</supporto>
<supporto TIPO="LP">
<artista>Andrea</artista>
<genere>Rock</genere>
<album>067</album>
</supporto>
</compilation>
|
Torna su | Indice Guida | Pagina << 7 >>
|