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 集合最佳实践的主要内容,如果未能解决你的问题,请参考以下文章