XML 集合最佳实践

Posted

技术标签:

【中文标题】XML 集合最佳实践【英文标题】:XML Collection Best Practices 【发布时间】:2010-09-06 14:07:14 【问题描述】:

我正在创建一个应用程序,它将在 XML 文件中存储项目的分层集合,我想知道在 XML 中存储集合的行业标准。以下两种格式中的哪一种更受欢迎? (如果我没有看到其他选项,请告知。)

选项 A

<School>
    <Student Name="Jack" />
    <Student Name="Jill" />
    <Class Name="English 101" />
    <Class Name="Math 101" />
</School>

选项 B

<School>
    <Students>
        <Student Name="Jack" />
        <Student Name="Jill" />
    </Students>
    <Classes>
        <Class Name="English 101" />
        <Class Name="Math 101" />
    </Classes>
</School>

【问题讨论】:

【参考方案1】:

我不是 XML 专家,但我发现选项 B 更易于人类阅读,并且我认为它与选项 A 一样机器可读。我相信 XML 被设计为人类和机器可读的,所以我会自己选择选项 B。


在 Ryan Farley 的帖子之后,我才意识到其他事情。如果 Student 或 Classes 部分变得太大并且必须移动到另一个 XML 文件,则使用选项 B 复制节点并从该节点创建新的 XML 文件似乎会更容易。

【讨论】:

【参考方案2】:

肯定 - 选项 B。

我不会在 XML 中混合学生和班级,就像我不会在数据库的同一个表中混合学生和班级一样。

【讨论】:

【参考方案3】:

使用选项 B 的另一个令人信服的理由是错误检查。如果原始文件在 XML 应用程序之外被修改,或者如果没有应用 XSD 架构,则可能会出现学生和班级数量不均等的情况。

至少如果您将学生和班级分组在一起,您将能够轻松判断每条记录是否完​​整,独立于任何其他记录。

【讨论】:

【参考方案4】:

选项 B,绝对。当有相似项目的逻辑分组时,它应该有一个父项目。这样一来,我的解析器就不必遍历所有 500 个学生记录来检查是否混入了班级记录。

【讨论】:

以上是关于XML 集合最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

对 XML 模式进行版本控制的最佳实践是啥?

在 Java 中验证 null 和空集合的最佳实践

Android strings.xml 最佳实践? [关闭]

编写 orm.xml 的最佳实践

Backbone.js 模型和集合的最佳实践

将 mongo 集合导出到 SQL Server 的最佳实践