Latest web development tutorials

elementos e atributos XML comparação

Em XML, e não existem disposições quando usar atributos, e quando usar elementos filho.


Usar elementos vs. atributos

Os dados podem ser armazenados em elementos filhos ou atributos.

Vejamos esses exemplos:

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

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

No primeiro exemplo, "sexo" é um atributo. Em um exemplo, de volta, "sexo" é um sub-elemento. Mas ambos fornecem a mesma informação.

Não há disposições especiais para quando usar atributos, e quando usar elementos filho. Minha experiência é que o uso de multi-atributo no HTML pesado, mas em XML, o uso de sub-elementos, ele vai se sentir mais como dados.


Eu gosto da maneira

Eu gosto de armazenar dados em elementos filho

Os seguintes três documentos XML contêm exatamente a mesma informação:

Este exemplo usa um atributo "data":

<note date="12/11/2002">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

Este exemplo usa um elemento "date":

<note>
<date>12/11/2002</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

Este exemplo usa a extensão "data" elemento: (Esta é a minha maneira favorita):

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


Evitar o uso de atributos?

Você deve evitar o uso de atributos?

Alguns atribuem tem os seguintes problemas:

  • Atributos não podem conter vários valores (elementos filho pode)
  • Atributos não são facilmente expansível (para as necessidades futuras alterações)
  • Atributos não podem descrever estruturas (elementos filhos podem)
  • Os atributos são mais difíceis de manipular o código de programa
  • Os valores de atributos não são fáceis para testar DTD

Se você usar a propriedade como um contêiner de dados, o documento XML resultante será difícil de ler e manter. Tente usarelementos para descrever dados.para descrever os dados. Os dados só está fornecendo informações irrelevantes quando recomendamos o uso da propriedade.

Não termine como este (que não é XML deve ser usado):

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


Excepção a uma regra da propriedade

Há sempre uma outra regra

Regras da propriedade Eu tenho uma exceção.

Às vezes eu uso elementos ID especificados. Estas aplicações podem ser usados ​​como ID atributo NAME ou ID para acessar elementos XML em HTML na mesma situação muito. O exemplo a seguir ilustra essa abordagem:

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

documentos XML nos exemplos acima, a identificação de um único contador, ou de um identificador único para identificar as diferentes notas, em vez de, como parte dos dados.

Eu quero dizer aqui é que os metadados (dados sobre dados) devem ser armazenados como atributos, e que os dados em si devem ser armazenados como elementos.