No trabalho, somos solicitados a criar arquivos XML para passar dados para outro aplicativo offline que criará um segundo arquivo XML para retornar, a fim de atualizar alguns de nossos dados. Durante o processo, discutimos com a equipe do outro aplicativo sobre a estrutura do arquivo XML.
A amostra que eu criei é essencialmente algo como:
<INVENTORY>
<ITEM serialNumber="something" location="something" barcode="something">
<TYPE modelNumber="something" vendor="something"/>
</ITEM>
</INVENTORY>
A outra equipe disse que esse não era o padrão do setor e que os atributos deveriam ser usados apenas para metadados. Eles sugeriram:
<INVENTORY>
<ITEM>
<SERIALNUMBER>something</SERIALNUMBER>
<LOCATION>something</LOCATION>
<BARCODE>something</BARCODE>
<TYPE>
<MODELNUMBER>something</MODELNUMBER>
<VENDOR>something</VENDOR>
</TYPE>
</ITEM>
</INVENTORY>
A razão pela qual sugeri a primeira é que o tamanho do arquivo criado é muito menor. Haverá aproximadamente 80000 itens que estarão no arquivo durante a transferência. Na realidade, a sugestão deles é três vezes maior do que a sugerida. Procurei o misterioso "Padrão da Indústria" mencionado, mas o mais próximo que pude encontrar foi que os atributos XML deveriam ser usados apenas para metadados, mas disse que o debate era sobre o que realmente eram metadados.
Após a longa explicação (desculpe), como você determina o que são metadados e, ao projetar a estrutura de um documento XML, como você deve decidir quando usar um atributo ou elemento?