XML 元素与属性

标签 xml

<分区>

Possible Duplicate:
Should I use Elements or Attributes in XML?

我一直想不通什么时候使用 xml 属性。我总是使用元素。我刚刚读了this w3schools article .文章指出使用属性是不好的做法,因为:

  • 属性不能包含多个值(子元素可以)
  • 属性不容易扩展(以备将来更改)
  • 属性不能描述结构(子元素可以)
  • 属性更难被程序代码操纵
  • 属性值不容易根据 DTD 进行测试

它指出的唯一异常(exception)是当您将 id 分配给标签时。

这是正确的吗?为什么属性甚至存在呢?这是xml的设计错误吗?我在这里缺少什么吗?

我能想到的使用属性的唯一原因是一对一关系。即:名称。但它必须与原始(或字符串)的东西是一对一的关系。因为将来您不想将其分成几个不同的部分很重要。即:

<date> May 23, 2001 </date>

到:

<date>
   <month> May </month>
   <d> 23 </d>
   <yr> 2001 </yr>
</date>

因为这对于属性来说是不可能的。

额外的问题:在日期示例中是否可以这样做:

<date>
   <default> May 23, 200 </default>
   <month> May </month>
   <d> 23 </d>
   <yr> 2001 </yr>
</date>

要为 future 的应用程序提供更多(或不同的)信息,同时仍以相同格式提供现有应用程序?或者你必须这样做:

<date> May 23, 2001 </date>
<NEWdate>
   <month> May </month>
   <d> 23 </d>
   <yr> 2001 </yr>
</NEWdate>

最佳答案

当您想将信息附加到其他信息时,属性是很好的,也许是为了描述信息应该如何解释。例如:

<speed unit="mph">65</speed>

关于XML 元素与属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2103366/

相关文章:

c# - 使用 XDocument 将多个不同类型的对象序列化为单个 XML

java - XML 解析异常 org.xml.sax.SAXParseException cvc-elt.1

java - Android 工作室背景图片

javascript - 使用 JavaScript 在另一个窗口中打开 XML 内容

xml - JSON Schema 与 XML Schema 的比较及其 future

Android:默认 XML 编辑器不再打开 [不支持的内容类型错误]

javascript - 如何从json对象中获取特定的键和值存储在数据库中?

javascript - 使用 AppleScript 和 JSON 解析数据时出错

Java/Android xml解析导致NullPointerException

java - Azure函数:Java How to accept content-type of application/xml then convert it to a POJO