Gli ultimi tutorial di sviluppo web
 

XML attributi


elementi XML possono avere attributi, proprio come HTML.

Gli attributi sono progettati per contenere i dati relativi ad un elemento specifico.


Gli attributi XML devono essere quotati

I valori degli attributi devono sempre essere citati. Sia virgolette singole o doppie possono essere utilizzate.

Per sesso di una persona, il <person> elemento può essere scritto in questo modo:

<person gender="female">

o come questo:

<person gender='female'>

Se il valore dell'attributo stesso contiene virgolette è possibile utilizzare le virgolette singole, come in questo esempio:

<gangster name='George "Shotgun" Ziegler'>

oppure è possibile utilizzare entità carattere:

<gangster name="George &quot;Shotgun&quot; Ziegler">

Elementi vs. attributi XML

Date un'occhiata a questi 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 di genere è un attributo. Nell'ultimo, il sesso è un elemento. Entrambi gli esempi forniscono le stesse informazioni.

Non ci sono regole su quando utilizzare gli attributi o quando utilizzare gli elementi in XML.


Il mio modo preferito

I seguenti tre documenti XML contengono esattamente le stesse informazioni:

Un attributo data viene usato nel primo esempio:

<note date="2008-01-10">
  <to>Tove</to>
  <from>Jani</from>
</note>

A <date> elemento viene utilizzato nel secondo esempio:

<note>
  <date>2008-01-10</date>
  <to>Tove</to>
  <from>Jani</from>
</note>

Un esteso <date> elemento viene utilizzato nel terzo esempio: (THIS IS MY FAVORITE) :

<note>
  <date>
    <year>2008</year>
    <month>01</month>
    <day>10</day>
  </date>
  <to>Tove</to>
  <from>Jani</from>
</note>

Evitare di attributi XML?

Alcune cose da considerare quando si utilizzano attributi sono:

  • attributi non possono contenere valori multipli (elements can)
  • attributi non possono contenere strutture ad albero (elements can)
  • attributi non sono facilmente espandibili (for future changes)

Non finire come questo:

<note day="10" month="01" year="2008"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>

XML Attributi per metadati

A volte i riferimenti di identificazione vengono assegnati agli elementi. Questi ID possono essere utilizzati per identificare gli elementi XML più o meno allo stesso modo in cui l' id attributi in HTML. Questo esempio dimostra in questo modo:

<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>

L' id attributi di cui sopra sono per identificare le diverse note. Non è una parte della nota stessa.

Quello che sto cercando di dire è che i metadati (data about data) devono essere conservati come attributi, e i dati stessi devono essere conservati come elementi.