2008-08-22 83 views
4

我正在创建一个应用程序,它将存储XML文件中的项目的分层集合,并且我很想知道用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> 

回答

4

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


我刚刚在瑞安法利的帖子后意识到了别的东西。如果Students或Classes部分变得太大并且必须移动到另一个XML文件,那么复制该节点并使用选项B从该节点创建新的XML文件似乎更容易。

4

绝对 - 选项B.

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

2

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

2

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

至少如果您将学生和班级分组在一起,您将很容易就能够确定每条记录是否完​​整,与其他任何记录无关。