我正在创建一个应用程序,它将在 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>
有帮助吗?

解决方案

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


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

其他提示

肯定是——选项B。

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top