XML集合最佳实践

时间:2020-03-05 18:42:10  来源:igfitidea点击:

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

选项A

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

选项B

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

解决方案

回答

我不是XML专家,但是我发现Option B更具人类可读性,而且我认为它与Option A一样具有机器可读性。我相信XML既设计为人类可读又是机器可读的,因此我会选择我自己

在瑞安·法利(Ryan Farley)任职后,我才意识到其他事情。如果"学生或者班级"部分太大,必须将其移动到另一个XML文件,则似乎可以使用Option B复制该节点并从该节点创建一个新的XML文件更加容易。

回答

绝对是选项B。

我不会像在数据库的同一张表中那样混合学生和班级的方式那样混合XML中的学生和班级的方式。

回答

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

回答

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

至少如果我们将学生和班级分组在一起,则可以轻松地判断每条记录是否完​​整,而与其他任何记录无关。