Attributi XML
Gli elementi XML possono avere attributi, proprio come HTML.
Gli attributi sono progettati per contenere dati relativi a un elemento specifico.
Gli attributi XML devono essere citati
I valori degli attributi devono essere sempre citati. È possibile utilizzare virgolette singole o doppie.
Per il sesso di una persona, l'elemento <person> può essere scritto in questo modo:
<person gender="female">
o così:
<person gender='female'>
Se il valore dell'attributo stesso contiene virgolette doppie, puoi utilizzare virgolette singole, come in questo esempio:
<gangster name='George "Shotgun" Ziegler'>
oppure puoi usare entità carattere:
<gangster name="George "Shotgun" Ziegler">
Elementi XML e attributi
Dai un'occhiata a questi due esempi:
<person gender="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<person>
<gender>female</gender>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
Nel primo esempio, il genere è un attributo. Nell'ultimo esempio, il genere è un elemento. Entrambi gli esempi forniscono le stesse informazioni.
Non ci sono regole su quando usare gli attributi o quando usare gli elementi in XML.
Il mio modo preferito
I seguenti tre documenti XML contengono esattamente le stesse informazioni:
Nel primo esempio viene utilizzato un attributo di data:
<note date="2008-01-10">
<to>Tove</to>
<from>Jani</from>
</note>
Nel secondo esempio viene utilizzato un elemento <data>:
<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
</note>
Nel terzo esempio viene utilizzato un elemento <data> espanso: (QUESTO È IL MIO PREFERITO):
<note>
<date>
<year>2008</year>
<month>01</month>
<day>10</day>
</date>
<to>Tove</to>
<from>Jani</from>
</note>
Evitare gli attributi XML?
Alcune cose da considerare quando si utilizzano gli attributi sono:
- gli attributi non possono contenere più valori (gli elementi possono)
- gli attributi non possono contenere strutture ad albero (gli elementi possono)
- gli attributi non sono facilmente espandibili (per modifiche future)
Non finire così:
<note day="10" month="01" year="2008"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>
Attributi XML per i metadati
A volte i riferimenti ID vengono assegnati agli elementi. Questi ID possono essere utilizzati per identificare gli elementi XML più o meno allo stesso modo dell'attributo id in HTML. Questo esempio lo dimostra:
<messages>
<note id="501">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<note id="502">
<to>Jani</to>
<from>Tove</from>
<heading>Re: Reminder</heading>
<body>I will not</body>
</note>
</messages>
Gli attributi id sopra servono per identificare le diverse note. Non fa parte della nota stessa.
Quello che sto cercando di dire qui è che i metadati (dati sui dati) dovrebbero essere archiviati come attributi e i dati stessi dovrebbero essere archiviati come elementi.