适当的XML格式

the*_*e_e 5 xml

可能重复:
我应该在XML中使用元素或属性吗?

我正在用XML编写配置文件,而且我对整个XML热潮都很陌生.

我很好奇SO社区如何考虑如何在XML中表示各种值,因为我可以看到几种方法来实现它.

例如,值何时应该是属性,何时应该嵌套在标记中?

<node1 message="Hello world" id="1" />
Run Code Online (Sandbox Code Playgroud)

<node1>
  <message>Hello world</message>
  <id>1</id>
</node1>
Run Code Online (Sandbox Code Playgroud)

显然这是一个非常简单的例子......但是,对于将某些类型作为属性与子节点进行比较,是否存在专家和骗局?或两者兼而有之?

Bri*_*new 14

我通常将属性视为元数据,或关于节点内数据或限定数据的数据.

例如,在上面的示例中,我可能将消息作为文本节点放置,并且具有与之相关的属性id.

这里没有对错,但我发现上述启发式有用.您可能希望在属性中尽可能多地存储的一种情况是SAX解析,其中元素回调具有所有属性的参数.即你得到一个所有属性的回调,而不是'n'回调,每个数据一个回调.然而,这是以这种方式构建文档的一个非常专业的原因,在这之前我会仔细考虑.