سؤال

أقوم بإنشاء تطبيق يقوم بتخزين مجموعة هرمية من العناصر في ملف XML وأتساءل عن معيار الصناعة لتخزين المجموعات في XML.أي من التنسيقين التاليين هو المفضل؟(إذا كان هناك خيار آخر لا أرى، يرجى تقديم المشورة.)

الخيار أ

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

الخيار ب

<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 بنفسي.


لقد أدركت للتو شيئًا آخر بعد مشاركة رايان فارلي.إذا أصبح قسم الطلاب أو الفصول الدراسية كبيرًا جدًا ويجب نقله إلى ملف XML آخر، فيبدو أنه سيكون من الأسهل نسخ العقدة وإنشاء ملف XML جديد من تلك العقدة باستخدام الخيار ب.

نصائح أخرى

بالتأكيد - الخيار ب.

لن أقوم بدمج الطلاب والفصول الدراسية في ملف XML بنفس الطريقة التي لا أقوم بها بدمج الطلاب والفصول الدراسية في نفس الجدول في قاعدة البيانات.

سبب مقنع آخر لاستخدام الخيار ب هو التحقق من الأخطاء.إذا تم تعديل الملف الأصلي خارج تطبيق XML، أو إذا لم يتم تطبيق مخطط XSD، فمن الممكن أن يكون لديك عدد غير متساوٍ من الطلاب والفصول الدراسية.

على الأقل، إذا قمت بجمع الطلاب والفصول الدراسية معًا، فستتمكن بسهولة من معرفة ما إذا كان كل سجل مكتملًا، بشكل مستقل عن أي سجل آخر.

الخيار ب, ، قطعاً.عندما يكون هناك تجميع منطقي للعناصر المتشابهة، فيجب أن يحتوي على عنصر أصل.وبهذه الطريقة، لن يضطر المحلل اللغوي الخاص بي إلى فحص جميع سجلات الطلاب البالغ عددها 500 سجل لمعرفة ما إذا كانت هناك سجلات صفية مختلطة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top