سؤال

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

مشروع وقت وتاريخ الأمر
في 2008/09/23 08:00:00 PROJ1
تغيير 2008/09/23 09:00:00 PROJ2
خارج 2008/09/23 12:00:00 PROJ2
في 2008/09/23 01:00:00 PROJ3
خارج 2008/09/23 05:00:00 PROJ3

سيبدو ملف XML كالتالي:

<timelog> <timecommand cmd=in date=2008/09/23 time=8:00:00 proj=PROJ1/>
...
<timecommand cmd=out date=2008/09/23 time=5:00:00 proj=PROJ3/>
</timelog>

بعض المزايا الأولية للنسخة النصية التي أراها هي سهولة قراءتها وتحليلها باستخدام التعبير العادي.ما هي مزايا استخدام XML في هذه الحالة؟

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

المحلول

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

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

يكمن جمال XML في أن تحليل البيانات ليس مستقلاً عن البيانات فحسب، بل عن تنسيق البيانات.منطقيا يمكنك تمرير كل من البيانات وتنسيق البيانات، والمعزوفة!كل شيء يعمل.الأمر ليس بهذه البساطة، ولكن هذه هي الفرضية.يمكنك تغيير تنسيق البيانات، ولا يتعين على المنتجين والمستهلكين سوى تغيير بسيط (إذا حدث ذلك على الإطلاق).

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

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

نصائح أخرى

تتبادر إلى الذهن عدة فوائد:

  • من الأسهل تحليلها إلى تطبيقات أخرى
  • من الأسهل فهم ما تحتويه الوثيقة في لمحة واحدة
  • يجعل من السهل سحب البيانات إلى لوحة المعلومات الإدارية
  • يجعل الإدارة سعيدة مع القليل من الألم بالنسبة لك

السلبيات كما أراها:

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

وفي الختام، اقتباس يقصد به السخرية: XML يشبه العنف.إذا لم يحل مشاكلك، فأنت لا تستخدمه بما فيه الكفاية

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

إذا كنت تستخدم XML، فستكون البيانات "قابلة للنقل" بشكل أكبر في بعض النواحي.سيكون لديك بشكل أساسي محللون لبياناتك متاحون في معظم البيئات، لذا فإن كتابة أداة لتحليل البيانات قد تكون أسهل.وأيضًا، إذا كان بتنسيق XML، فيمكنك كتابة XSLT لتحويله إلى تنسيقات أخرى مختلفة، مما يسهل قراءته.

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

هناك بعض الخيارات بخلاف XML التي يمكنك استخدامها.جيف ضريبة قوس الزاوية منشور المدونة يتحدث عن هذا قليلاً.

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

يمكن تحليله بسهولة باستخدام regex وxml وxsl.

والحق يقال، ليس هناك حقًا "ميزة" لاستخدام XML إلا إذا كنت ترسل البيانات إلى نظام آخر.

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

في المثال الذي ذكرته أعلاه، تبدو البيانات وكأنها سجلات معزولة بتنسيق ثابت، بدون بنية أو تسلسل هرمي - وفي هذه الحالة لا أرى أي فائدة في استخدام XML.ومع ذلك، قد يكون المثال غير تمثيلي - فقد تحتوي ملفاتك الأخرى على بيانات أكثر تنظيماً.

هل هذا ملف سجل مستمر؟

كيف ستكتب من أي وقت مضى لإنشاء مستند صالح؟أم أنك ستقرأه وتضيف الإدخال الجديد وتكتبه في كل مرة؟

تعد ملفات السجل مرشحًا مثاليًا لأسطر النص العادي جيدة التنظيم التي يمكنك إلحاقها ببساطة.

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

يمكن أيضًا الوصول إلى XML بسهولة.ما أعنيه بذلك هو أنك - بما أنك ذكرت ذلك - لا تريد استخدام التعبيرات العادية في XML.هناك أدوات مثل XPATH (لغة ​​مسار XML) مما يجعل الاستعلام عن XML أمرًا ممتعًا.لا داعي لإخراج شيء لا يستطيع أي شخص آخر قراءته عندما يمكنك التنقل بسهولة عبر XML باستخدام شيء مثل XPATH.

هناك حالات يقوم فيها XML بالعكس (من حيث سهولة القراءة) وأحيانًا يكون XML أيضًا حملًا إضافيًا.إنه ليس دائمًا الخيار الأفضل عند تبادل البيانات بين الأنظمة (على سبيل المثال.نلقي نظرة على شيء مثل خفيفة الوزن حقا JSON).وهذا النوع من التبادل لا يلزم أن يكون على الويب أيضًا.

في حين أن استخدام XML لملفات البيانات قد يعني أن بياناتك يمكن وصفها ذاتيًا وربما تنظيمها بشكل أفضل، فإن النتيجة النهائية غالبًا ما تكون ملفات بيانات أكبر بكثير من ذي قبل.

اسأل نفسك ما هي الملفات المستخدمة؟هل سيتم تغييرهم؟إذا كان الأمر كذلك، فمن الذي يدفع ومن الذي خصص الميزانية لذلك؟

أنا أحب XML في بعض الحالات، وفي حالات أخرى أكرهه!

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

إذا كنت تقوم بالتطوير في .NET (خصوصًا .NET 3.5 مع LINQ إلى XML)، فستكتب تعليمات برمجية أقل لقراءة/كتابة XML عما لو كنت تستخدم ملفًا نصيًا عاديًا فقط.بالإضافة إلى ذلك، فإن XML يسهل على أي شخص قراءة الملف ومعرفة محتوياته بالضبط والغرض منه.ولا تقلق بشأن استخدام XML لمساحة أكبر على القرص، فمساحة القرص رخيصة.

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