2008-08-22 5 views
4

XMLファイルにアイテムの階層コレクションを格納するアプリケーションを作成しています。コレクションをXMLに格納する業界標準については疑問に思っています。次の2つのフォーマットのどちらを優先しますか? (私は見ていないよ別のオプションがある場合は、お知らせください。)XMLコレクションのベストプラクティス

オプション

<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が人間と機械の両方で読めるように設計されていると思います。


私はちょうどRyan Farleyの投稿の後で何かを認識しました。学生またはクラスセクションが大きくなりすぎて別のXMLファイルに移動する必要がある場合、ノードをコピーしてオプションBを使用してそのノードから新しいXMLファイルを作成する方が簡単なようです。

4

もちろん - オプションB.

データベース内の同じテーブルに生徒とクラスを混在させないのと同じ方法で、生徒とクラスをXMLに混ぜてはいけません。

2

オプションB、絶対に。類似したアイテムを論理的にグループ化する場合は、親アイテムが必要です。そうすれば、私のパーサは、クラスレコードが混在しているかどうかを調べるために500の学生レコードをすべて調べる必要はありません。

2

オプションBを使用する別の理由はエラーチェックです。元のファイルがXMLアプリケーションの外部で修正された場合、またはXSDスキーマが適用されていない場合は、生徒とクラスの数に偏りがある場合があります。

少なくとも、学生とクラスをグループ化すると、他のレコードとは無関係に各レコードが完全であるかどうかを簡単に知ることができます。