ما هي مزايا وعيوب استخدام مخططات XML؟

StackOverflow https://stackoverflow.com/questions/140355

  •  02-07-2019
  •  | 
  •  

سؤال

نحن نستخدم نوع بيانات XML في Microsoft SQL Server 2005 لمشروع ما.نشعر أنا وبعض أعضاء الفريق أنه يجب علينا أيضًا استخدام XSDs بينما يشعر أعضاء المعسكر الآخر أنه يجب علينا الحفاظ على XMLs مخصصة وعدم التعامل معها على أنها "أنواع".

تعد XMLs بمثابة محاولة لإضفاء البنية والمركزية على عدد من ملفات التكوين النصية التي تمثل كابوسًا للصيانة.

نحن نستخدم .NET 3.5/C# وقد تم تصميم جداولنا باستخدام أنواع البيانات المناسبة.حجتي هي أننا بالفعل "موجهون نحو الأنواع" في تفكيرنا لماذا نكسر هذا النهج لأنه XML.وبسبب عدم وجود أنواع مع الملفات النصية حدثت المشكلة الأصلية.إن عدم استخدام منهج "الأنواع" يتركنا عرضة لنفس المشكلة.

قد يكون فهمي لفوائد مخططات XML غير صحيح.إذن ما هي مزايا وعيوب استخدام مخططات XML؟

هل كانت مفيدة؟

المحلول

لسوء الحظ، حتى هيئة تأليف XSD (W3C) تدرك أن XSD هي تقنية سيئة للغاية.ومع ذلك، فإن النية ليست بالضرورة سيئة.إحدى المزايا الرئيسية لـ C# هي أنها مكتوبة بشكل ثابت.إن كتابة مستندات XML الخاصة بك بشكل ثابت يمنحها نفس الفوائد.ربما يكون الأفضل هنا هو إجراء هندسة عكسية لفصولك لإنتاج المخطط باستخدام سمات تسلسل XML.عند القيام بذلك، سيقوم C# بإنشاء قارئ بيانات مخصص لملف XML الخاص بك والذي سيؤدي إلى تحسين الأداء بشكل كبير.

واحدة من أكبر تكاليف XML هي أنه يجب تحليل السلسلة.كلما زادت الافتراضات التي يمكنك القيام بها بشأن ملفات XML الخاصة بك (على سبيل المثال.بنيتها)، كلما كان أدائك أفضل.

لذا، كما هو الحال في العديد من الأشياء، فإن حاجتهم إلى مزايا الأداء كافية لتبرير التكاليف في وقت المطور.أم أن هناك رغبة قوية بما يكفي في استخدام الأنظمة المكتوبة بشكل ثابت لتبرير تكلفة كتابة XSD.

في النهاية، ستحدد احتياجات مشروعك ما يجب عليك فعله، ولكن الكتابة الثابتة والأداء هما من المزايا الرئيسية التي يجب أخذها في الاعتبار.

نصائح أخرى

إن الاحتفاظ بمستودع XMLs بدون XSD يشبه (في رأيي) وجود قاعدة بيانات حيث يتم الإعلان عن جميع الأنواع على أنها VARCHAR(n).لا يهمك نوع المدخلات التي تحصل عليها، أنت فقط تريد المدخلات.

تضمن XSDs أن XMLs الخاصة بك تحتوي على نوع الإدخال الذي تتوقعه.إنها تعطي هيكلًا لنموذجك، وهو نفس الشيء الذي تبحث عنه.

حسنًا، كما قيل في المنشورات الأخرى وفي السؤال، سيضمن XSD أنك تستخدم النوع الصحيح في المكان المناسب في XML الخاص بك وأنه سيتعين عليك التفكير مرتين قبل تغيير بنيته.

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

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

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

على الجانب السلبي، يمكن أن يكون الحفاظ على المخططات أمرًا مؤلمًا، وقد لا يستحق الجهد المبذول اعتمادًا على مشروعك.

إذا لم يكن لديك مخطط، فسوف ينتهي بك الأمر إلى إعادة تنفيذ كل عمليات التحقق بنفسك (أو عدم التحقق على الإطلاق والتعطل عند الإدخال غير الصالح).يقوم المحلل اللغوي/المدققون في XSD بكل ذلك نيابةً عنك، ويتم تحسينهم وتصحيح أخطائهم بواسطة خبراء في مجالهم.لماذا تعيد كل هذا العمل بنفسك؟

XSD ليس مخطط XML الوحيد المتاح.استخدم http://relaxng.org/ بدلاً من ذلك.يتيح لك RelaxNG التعبير عن المخطط في XML، بدلاً من الحاجة إلى تعلم "لغة" بيانات أخرى كما تفعل XSD.

السبب المهم لتطوير XML هو أنه يسمح باستخدام البيانات من مصادر أكثر وبطرق أكثر، حيث أصبح معيارًا مقبولًا على نطاق واسع لتبادل البيانات بين أي عدد من أنظمة الكمبيوتر.

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