Latest web development tutorials

attributo XML

elementi XML possono avere attributi simili a HTML.

(Attributo) fornisce ulteriori informazioni sull'elemento.


attributo XML

In HTML, attributi forniscono informazioni aggiuntive relative all'elemento:

<img src="computer.gif">
<a href="demo.html">

Proprietà non sono di solito forniscono informazioni circa la parte dei dati. Nel seguente esempio, il tipo di file non ha nulla a che fare con i dati, ma hanno bisogno di gestire questo elemento del software è molto importante:

<file type="gif">computer.gif</file>


attributi XML devono essere citati

I valori degli attributi devono essere circondati da virgolette, anche se virgolette singole o doppie possono essere utilizzate. Ad esempio, genere di una persona, elemento persona può essere scritta:

<person sex="female">

O questo può essere:

<person sex='female'>

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

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

Oppure si può usare entità carattere:

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


Elementi vs. attributi XML

Considerate questi esempi:

<person sex="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>

<person>
<sex>female</sex>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>

Nel primo caso, il sesso è un attributo. Nel secondo caso, il sesso è un elemento. Entrambi gli esempi forniscono le stesse informazioni.

Nessuna regola può dirci quando usare gli attributi, e quando utilizzare gli elementi. La mia esperienza è in formato HTML, la proprietà è molto comodo da usare, ma in XML, si dovrebbe cercare di evitare l'uso della proprietà. Se le informazioni si sente come i dati, utilizzare elementi di esso.


Il mio modo preferito

I seguenti tre documenti XML contengono esattamente le stesse informazioni:

Il primo esempio utilizza le proprietà di data:

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

Il secondo esempio utilizza gli elementi di data:

<note>
<date>10/01/2008</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

Il terzo esempio utilizza l'elemento data estesa (che è il mio preferito):

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


Evitare attributo XML?

Alcuni dei problemi causati dall'uso di struttura:

  • Gli attributi non possono contenere valori multipli (elementi possono)
  • Gli attributi non possono contenere strutture ad albero (elementi possono)
  • Gli attributi non sono facilmente espandibili (per cambiamenti futuri)

La proprietà è difficile da leggere e mantenere. Prova ad utilizzare gli elementi per descrivere i dati. Ma utilizzare solo la proprietà di fornire i dati informazioni indipendenti.

Non fare una cosa così stupida (Questo non è deve essere utilizzato il codice XML):

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


metadati XML per la proprietà

Talvolta riferimenti ID sono assegnati agli elementi. L'ID può essere utilizzato per identificare l'indice elemento XML, il modo in cui funziona in attributo id HTML è lo stesso. Questo esempio ha dimostrato a noi questa situazione:

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

Quanto sopra è solo un identificatore attributo id viene utilizzato per identificare le diverse note. Non fa parte dei dati della nota.

Qui abbiamo cercato di trasmettere la sua filosofia è: i metadati (dati sui dati) devono essere conservati come attributi, e che dati stessi devono essere conservati come elementi.