【问题标题】:XML: attributes or children? [duplicate]XML:属性还是子项? [复制]
【发布时间】:2009-05-05 14:34:53
【问题描述】:

在 XSD、SOAP 和其他 XML 约定中,您经常会看到如下内容:

<book>
 <title>Harry Potter</title>
 <author>J.K. Rowling</author>
</book>

现在我想知道,属性发生了什么?对我来说,这样写更有意义:

<book title="Harry Potter" author="J.K. Rowling" />

但显然,出于某种原因,比我更聪明的人选择了其他方式。 有人能解释一下为什么吗,然后是什么属性?

【问题讨论】:

标签: xml xsd xml-attribute


【解决方案1】:

有些人认为差异是个人喜好问题。您可以遵循一些指导方针。

W3Schools - XML Elements Vs. Attributes

IBM - Principles of XML Design

【讨论】:

    【解决方案2】:

    没有硬性规定。我倾向于使用关于元素中包含的数据的元数据属性。例如

    <book author="JK Rowling" published="September 2001">Harry Potter</book>
    

    虽然使用/特殊要求比其他任何东西都更能决定这一点。

    另一个问题是后续处理。如果您使用的是 SAX 处理器,那么这种格式将导致一个方法回调,其中填充了属性结构。将数据放在多个元素中会导致相应的方法调用次数(这可能是优化过头了,但根据数据量可能值得考虑)

    【讨论】:

    • +1 了解 SAX 解析器。
    猜你喜欢
    • 1970-01-01
    • 2012-06-21
    • 2014-04-11
    • 2011-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多