2009-08-24 57 views
1

我正在为某些自定义日志记录设计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模式。这对你们看起来是否正确?还有什么我可能想考虑的吗?

回答

2

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

这使得无法使用第二个表格(与XML的架构) - 因为你需要使用该方法

知道所有的有效名称
0

如果您打算使用键值对元素集合,您的第一个选择就是要走的路。

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

例如:

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

你的第二个方法是未分组组非相关的元素......不是你想要的。

0

看起来不错。你也可以(如果数值很简单)包括支持短格式< ExtendedProperty name =“name”value =“value”/>。这就是它在Spring配置中的做法,例如