如何构建XML文件?

问题描述:

建立用于返回名称/值pais列表的XML标记的优先版本是什么?如何构建XML文件?

<variables> 
    <item>ok</item> 
    <another>123</another> 
    <catch>me</catch> 
</variables> 

<variables> 
    <variable name="item" value="ok"/> 
    <variable name="another" value="123"/> 
    <variable name="catch" value="me"/> 
</variables> 

我认为第二种形式比较好,但是否有任何官方W3C建议或“德兴模式”?

我不认为有这样做的任何“官方”方式。但对我个人而言,这取决于这些元素/变量的含义。他们是否应该表现出彼此根本不同的行为?或者它们的功能相同,只有参数不同?

在你的例子中,它们的功能似乎是相同的 - 它们只是变量。它们的参数不同 - 名称和值。因此,我会说第二种形式更好,因为你想以同样的方式处理它们 - 可能将它们加载到某种地图或类似的地方,对吧?另一方面,如果他们的功能应该是不同的,那么我会建议使用不同的标签名称。例如:

<post> 
    <content>Abc</content> 
    <comment>Xyz</comment> 
</post> 

是肯定比

<post> 
    <text type="content">Abc</text> 
    <text type="comment">Xyz</text> 
</post> 

由于内容和注释是根本不同的实体,你可能要处理不同。

总而言之,它与OOP编程非常相似。你会为每个变量创建一个单独的类吗?我不这么认为,你只需要创建一个名为“Variable”的类,并用不同的构造函数参数来实例化它。另一方面,如果逻辑与第二个例子不同,那么您可能更愿意创建一个单独的类(可能具有不同的字段)来存储内容和评论。

+0

我明白了......因此对于像名称/值变量这样的实体(即使名称不能被预测),应该优先使用语法。但是如果像这样的实体是对象/元素的常见/强制性部分,最好将它用作标记。我行吗? – ManieQ 2012-01-14 14:35:38

+0

我会这么说,是的。只要问问自己,你是否想要以相同或不同的方式解释/处理实体。内容/评论示例也可以使用变量方法:例如,如果您以完全相同的方式处理评论和帖子,并且它们唯一不同的地方是您用它标记的图标(不太可能的场景,但可能)。 – Seramme 2012-01-14 14:38:38