代码之家  ›  专栏  ›  技术社区  ›  JMarsch

关于XML的一般风格问题

xml
  •  1
  • JMarsch  · 技术社区  · 15 年前

    我正在为一些自定义日志设计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 回复  |  直到 15 年前
        1
  •  2
  •   sylvanaar    15 年前

    可用名称不是预定义的 --它们可能是任何东西。

    这使得使用第二种形式(带有xml模式)变得不可能——因为您需要知道使用该方法的所有有效名称

        2
  •  0
  •   Justin Niessner    15 年前

    如果您使用的是元素的键值对集合,那么第一个选项就是方法。

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

    例如:

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

    第二种方法是一组非相关元素的非分组集合……而不是您想要的。

        3
  •  0
  •   Bostone    15 年前

    看起来不错。您还可以(如果值很简单)包括对缩写形式的支持<ExtendedProperty name=“name”value=“value”/>。例如,在Spring配置中就是这样做的