elementi XML e attributi confronto
In XML, e non esistono disposizioni quando usare gli attributi, e quando utilizzare elementi figlio.
Utilizzare elementi vs. attributi
I dati possono essere memorizzati in elementi figlio o attributi.
Diamo un'occhiata a questi esempi:
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<sex>female</sex>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
Nel primo esempio, "sesso" è un attributo. In un esempio, nel "sesso" è un sub-elemento. Ma entrambi forniscono le stesse informazioni.
Non sono disposizioni speciali per quando utilizzare gli attributi, e quando utilizzare elementi figlio. Mia esperienza è che l'uso di multi-attributo in HTML pesante, ma in XML, l'uso di sottoelementi, si sente più come dati.
Mi piace il modo
Mi piace per memorizzare i dati in elementi figlio
I seguenti tre documenti XML contengono esattamente le stesse informazioni:
Questo esempio utilizza un attributo "Data":
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Questo esempio utilizza un elemento di "Data":
<date>12/11/2002</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Questo esempio utilizza l'elemento estensione "Data": (Questo è il mio modo preferito):
<date>
<day>12</day>
<month>11</month>
<year>2002</year>
</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
Evitare l'uso di attributi?
Si dovrebbe evitare l'uso di attributi?
Alcuni attributo ha i seguenti problemi:
- Gli attributi non possono contenere valori multipli (elementi bambino può)
- Gli attributi non sono facilmente espandibili (per le future esigenze cambiano)
- Gli attributi non possono descrivere strutture (elementi figli possono)
- Gli attributi sono più difficili da manipolare il codice del programma
- I valori degli attributi non sono facili da testare per DTD
Se si utilizza la proprietà come un contenitore di dati, il documento XML risultante sarà difficile da leggere e mantenere. Prova ad utilizzaregli elementi per descrivere i dati.per descrivere i dati. I dati vengono solo fornendo informazioni irrilevanti quando si consiglia l'uso della proprietà.
Non finire così (che non è XML deve essere utilizzato):
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>
Eccezione alla regola della proprietà
C'è sempre un'altra regola
Norme in materia di proprietà che hanno un'eccezione.
A volte uso elementi ID specificati. Queste applicazioni possono essere utilizzate come attributo NAME ID o ID per accedere agli elementi XML in HTML nella stessa situazione molto. Il seguente esempio illustra questo approccio:
<note id="p501">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
<note id="p502">
<to>Jani</to>
<from>Tove</from>
<heading>Re: Reminder</heading>
<body>I will not!</body>
</note>
</messages>
documenti XML negli esempi precedenti, l'ID di un solo contatore, o un identificatore univoco per identificare le diverse note, piuttosto che come parte dei dati.
Voglio dire qui è che i metadati (dati sui dati) devono essere conservati come attributi, e che dati stessi devono essere conservati come elementi.