質問
項目の階層コレクションを XML ファイルに保存するアプリケーションを作成していますが、コレクションを XML に保存するための業界標準について疑問に思っています。次の 2 つの形式のうちどちらが優先されますか?(表示されていない別のオプションがある場合は、アドバイスをお願いします。)
オプション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 の投稿の後、別のことに気づきました。Student または Classes セクションが大きくなりすぎて別の XML ファイルに移動する必要がある場合は、ノードをコピーし、オプション B を使用してそのノードから新しい XML ファイルを作成する方が簡単なようです。
他のヒント
間違いなく - オプション B。
データベース内の同じテーブル内で学生とクラスを混在させないのと同じように、XML 内で学生とクラスを混在させません。
オプション B を使用するもう 1 つの説得力のある理由は、エラー チェックです。元のファイルが XML アプリケーションの外部で変更されている場合、または XSD スキーマが適用されていない場合、学生とクラスの数が不均一になる可能性があります。
少なくとも、生徒とクラスをグループ化した場合は、他の記録に関係なく、各記録が完了しているかどうかを簡単に判断できます。
オプション B, 、 絶対に。類似したアイテムの論理グループがある場合、親アイテムが必要です。そうすれば、パーサーは 500 人の学生レコードすべてをチェックして、クラスのレコードが混在していないかどうかを確認する必要がなくなります。