关于XML的一般风格问题

时间:2009-08-24 16:59:04

标签: xml

我正在为一些自定义日志记录设计XML。记录器中有一个部分,开发人员可以在其中添加名称 - 值对。我正在尝试决定XML的外观。我正在尝试确定名称值对的名称部分是否应该是属性。 (我认同)。这是我到目前为止所做的:


<ExtendedProperties>
   <ExtendedProperty name="Name1">Value1</ExtendedProperty>
   <ExtendedProperty name="Name2">Value2</ExtendedProperty>
</ExtendedProperties

另一个选项(我知道)是将值名称设为节点名称:

<Name1>Value1</Name1>
<Name2>Value2</Name2>

我更喜欢第一种方法(基于属性),因为我可以使用XSD更轻松地描述文档,我可以看到如何使用xpath或xquery来访问“ExtendedProperty”类型的所有元素。 (可用的名称不是预定义的 - 它们可以是任何名称。)

但是,我不会花太多时间来开发XML模式。那对你们看起来是对的吗?还有什么我可能想要考虑的吗?

3 个答案:

答案 0 :(得分:2)

  

未预定义可用名称    - 他们可以是任何东西。

这使得无法使用第二种形式(使用xml-schema) - 因为您需要使用该方法知道所有有效名称

答案 1 :(得分:0)

如果您要使用键值对元素集合,那么您的第一个选择是可行的方式。

在这种情况下,您的元素是集合中项目类型的名称...您的属性是键...而值是值。

例如:

<StringCollection>
    <String name="stringOne">Something</String>
    <String name="stringTwo">Something else</String>
</StringCollection>

你的第二种方式是一组不相关的非相关元素......不是你想要的。

答案 2 :(得分:0)

看起来不错。您还可以(如果值很简单)包括对缩写形式的支持&lt; ExtendedProperty name =“name”value =“value”/&gt;。这就是在Spring配置中完成的例子