elementos XML pueden tener atributos, al igual que en HTML.
Los atributos están diseñados para contener los datos relacionados con un elemento específico.
Los atributos XML podrá ser citado
Los valores de atributos siempre deben ser citados. De cualquier comillas simples o dobles se pueden utilizar.
Por sexo de una persona, la <person> elemento puede escribirse así:
<person gender="female">
o como esto:
<person gender='female'>
Si el valor del atributo en sí contiene comillas dobles se pueden utilizar comillas simples, como en este ejemplo:
<gangster name='George "Shotgun" Ziegler'>
o puede usar entidades de caracteres:
<gangster name="George "Shotgun" Ziegler">
Elementos XML frente a Atributos
Echar un vistazo a estos ejemplos:
<person gender="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<person>
<gender>female</gender>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
En el primer ejemplo de género es un atributo. En el pasado, el género es un elemento. Ambos ejemplos proporcionan la misma información.
No hay reglas acerca de cuándo utilizar atributos o cuándo usar elementos en XML.
Mi forma favorita
Los siguientes tres documentos XML contienen exactamente la misma información:
Un atributo de fecha se utiliza en el primer ejemplo:
<note date="2008-01-10">
<to>Tove</to>
<from>Jani</from>
</note>
Un <date> elemento se utiliza en el segundo ejemplo:
<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
</note>
Un ampliado <date> elemento se utiliza en el tercer ejemplo: (THIS IS MY FAVORITE) :
<note>
<date>
<year>2008</year>
<month>01</month>
<day>10</day>
</date>
<to>Tove</to>
<from>Jani</from>
</note>
Evitar atributos XML?
Algunas cosas a considerar cuando se utiliza atributos son:
- Los atributos no pueden contener varios valores (elements can)
- Los atributos no pueden contener estructuras de árbol (elements can)
- atributos no son fácilmente ampliable (for future changes)
No terminan de esta manera:
<note day="10" month="01" year="2008"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>
Atributos XML de metadatos
A veces, las referencias de identificación son asignados a los elementos. Estos identificadores se pueden utilizar para identificar elementos XML en mucho la misma manera que la id atributo en HTML. Este ejemplo muestra lo siguiente:
<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>
La id atributos anteriores son para la identificación de las diferentes notas. No es una parte de la propia nota.
Lo que estoy tratando de decir aquí es que los metadatos (data about data) deben ser almacenados como atributos, y los propios datos deben ser almacenados como elementos.