【问题标题】:How to build an XML file? [duplicate]如何构建 XML 文件? [复制]
【发布时间】:2023-03-31 12:21:01
【问题描述】:

构建用于返回名称/值组列表的 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 建议或“设计模式”?

【问题讨论】:

    标签: xml tags


    【解决方案1】:

    我认为没有任何“官方”方式可以做到这一点。不过,就我个人而言,这取决于这些元素/变量的含义是什么。他们应该表现得从根本上不同吗?还是它们的功能相同,只是参数不同?

    在您的示例中,它们的功能似乎相同 - 它们只是变量。它们的参数不同 - 名称和值。因此,我会说第二种形式更好,因为您想以相同的方式处理它们 - 可能将它们加载到某种地图等中,对吧?

    另一方面,如果他们的 function 应该是不同的,那么我建议为每个使用不同的标签名称。例如:

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

    肯定比不上

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

    由于内容和评论是根本不同的实体,您可能希望以不同的方式处理。

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

    【讨论】:

    • 我明白了......所以对于像名称/值变量(甚至无法预测名称)这样的实体,应该优先使用 语法。但是,如果像 这样的实体是 对象/元素的常见/必需部分,则最好将其用作标记。我还好吗?
    • 我会这么说,是的。问问自己是否想以相同或不同的方式解释/处理实体。可能存在内容/评论示例也可以使用变量方法的有效情况:例如,如果您以完全相同的方式处理 cmets 和帖子,并且它们唯一不同的是您标记它们的图标(不太可能的情况,但可能)。
    猜你喜欢
    • 1970-01-01
    • 2011-04-28
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-01
    • 1970-01-01
    相关资源
    最近更新 更多