XML属性与XML元素
在工作中,我们被要求创建XML文件以将数据传递给另一个离线应用程序,然后创建第二个XML文件传回以更新我们的一些数据。 在此过程中,我们一直在与其他应用程序的团队讨论XML文件的结构。
我提出的样本基本上是这样的:
<INVENTORY>
<ITEM serialNumber="something" location="something" barcode="something">
<TYPE modelNumber="something" vendor="something"/>
</ITEM>
</INVENTORY>
另一个团队说这不是行业标准,属性只能用于元数据。 他们建议:
<INVENTORY>
<ITEM>
<SERIALNUMBER>something</SERIALNUMBER>
<LOCATION>something</LOCATION>
<BARCODE>something</BARCODE>
<TYPE>
<MODELNUMBER>something</MODELNUMBER>
<VENDOR>something</VENDOR>
</TYPE>
</ITEM>
</INVENTORY>
我建议第一个的原因是创建的文件的大小要小得多。 在传输过程中将会有大约80000个文件在文件中。 他们的建议实际上比我建议的要大三倍。 我搜索了被提及的神秘的“行业标准”,但我能找到的最接近的是XML属性应该只用于元数据,但表示辩论是关于实际元数据。
在冗长的解释之后(对不起)你如何确定什么是元数据,并且在设计XML文档的结构时,应该如何决定何时使用属性或元素?
我使用这个经验法则:
所以你很接近。 我会做这样的事情:
编辑 :根据以下反馈更新原始示例。
<ITEM serialNumber="something">
<BARCODE encoding="Code39">something</BARCODE>
<LOCATION>XYX</LOCATION>
<TYPE modelNumber="something">
<VENDOR>YYZ</VENDOR>
</TYPE>
</ITEM>
属性的一些问题是:
如果您将属性用作数据容器,则最终会生成难以读取和维护的文档。 尝试使用元素来描述数据。 仅使用属性来提供与数据无关的信息。
不要这样结束(这不是应该如何使用XML):
<note day="12" month="11" year="2002"
to="Tove" from="Jani" heading="Reminder"
body="Don't forget me this weekend!">
</note>
资料来源:http://www.w3schools.com/xml/xml_dtd_el_vs_attr.asp
“XML”代表“可扩展标记语言”。 标记语言意味着数据是文本,用关于结构或格式的元数据标记。
XHTML是一个使用它的方式使用XML的例子:
<p><span lang="es">El Jefe</span> insists that you
<em class="urgent">MUST</em> complete your project by Friday.</p>
在这里,元素和属性之间的区别是明确的。 文本元素显示在浏览器中,属性是关于如何显示它们的说明(尽管有几个标签不能这样工作)。
当XML不是用作标记语言,而是用作数据序列化语言时,会出现混淆,其中“数据”和“元数据”之间的区别比较模糊。 因此,元素和属性之间的选择或多或少是任意的,除了不能用属性表示的东西(参见feenster的答案)。
链接地址: http://www.djcxy.com/p/66419.html上一篇: XML attribute vs XML element
下一篇: Microsoft SQL Server 2005/2008: XML vs text/varchar data type