Latest web development tutorials

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:

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

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

<note date="12/11/2002">
<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":

<note>
<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):

<note>
<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):

<note day="12" month="11" year="2002"
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:

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