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

SAX هو المصطلح الذي يعرفه معظم في عالم البرمجيات. يحدث هذا ليكون برنامج تحليل XML.
بعض العوامل التي تميزه عن منافسه هي حقيقة أن استخدامه واضح وبسيط.
كما أنها تفتخر بذاكرة فعالة. علاوة على ذلك ، فهو يندمج جيدًا مع تطبيقات التدفق.
DOM، على أقل تقدير، يشكل منافسة كبيرة لمحلل XML المذكور أعلاه. ما يجعلها رائعة هو أن البنية الداخلية التي يمكن أن تخلقها تشبه الشجرة.
هذه هي الميزة التي تميزها عن طريق SAX بقفزات لأن البنية الشبيهة بالشجرة تزود العميل بمعلومات وافرة ، وهو الشيء الذي فشل المحلل اللغوي الآخر فيه.
جدول المقارنة
معلمات المقارنة | SAX | DOM |
---|---|---|
النماذج الكاملة | واجهة برمجة تطبيقات بسيطة لـ XML | طراز كائن المستند |
طبيعة المحلل اللغوي | هذا هو الحدث القائم | هذه شجرة منظمة |
سرعة | سرعته بطيئة للغاية بالمقارنة | سرعته إحدى ميزاته الرائعة |
إنشاء ملفات XML | يمكن استخدامه لإعداد ملفات XML في الغالب في Java | يتطلب ذاكرة عالية لإعداد ملفات XML |
الهيكل الداخلي | لا يمكن أن تخلق بنية داخلية | يمكنه إنشاء هيكل داخلي يشبه الشجرة. |
ما هو ساكس؟
كما تم ذكره من قبل ، فإن SAX هو مصطلح يعرفه معظم عالم البرمجيات. يحدث هذا ليكون برنامج تحليل XML.
بعض العوامل التي تميزه عن منافسه هي حقيقة أن استخدامه واضح وبسيط. كما أنها تفتخر بذاكرة فعالة. علاوة على ذلك ، فهو يندمج جيدًا مع تطبيقات التدفق.
يعد هذا مفيدًا جدًا للملفات الصغيرة ويتم إعدادها في Java. على عكس منافسه، هذا الكتاب هنا "للقراءة فقط". قد يكون من المخيب للآمال أنه لا يسمح بالتنقل إلى الخلف.
علاوة على ذلك ، يوجد جزء صغير فقط من الملف في الذاكرة وليس كل شيء.
بالإضافة إلى ذلك ، هذه واجهة برمجة تطبيقات تستند إلى الحدث. وهي مكلفة بتوفير واجهات لما مجموعه أربعة معالجات.
لا يمكنه إنشاء بنية داخلية، ولكن ما يفعله هو أنه يدمج جميع أحداث مكونات المستند الذي يتم إدخاله فيه كحدث، ثم يقوم بترجمة وإعلام عميله بالمعلومات الموجودة في الملف المعني وثيقة.
أيضًا ، يرجى ملاحظة أنه هو الأنسب للملفات الكبيرة لأنه لن يضطر المرء إلى تحميل ملف XML عليه بالكامل.
ما هو DOM؟
يطلق عليه نموذج كائن المستند. DOM، على أقل تقدير، يشكل منافسة كبيرة لمحلل XML المذكور أعلاه.
ما يجعلها رائعة هو أن الهيكل الداخلي الذي يمكن أن تخلقه يشبه الشجرة.
هذه هي الميزة التي تميزها عن طريق SAX بقفزات لأن البنية الشبيهة بالشجرة تزود العميل بمعلومات وافرة ، وهو الشيء الذي فشل المحلل اللغوي الآخر فيه.
بمعنى آخر ، يمكن أن تخلق بنية داخلية تشبه الشجرة.
يتم استخدامه على نطاق واسع لأنه سهل الاستخدام إلى حد كبير. ونظراً لبنيتها الداخلية التي تشبه الشجرة، فإن جميع عناصر الوثيقة ممثلة فيها.
علاوة على ذلك ، فإنه يقدم أيضًا عرضًا تقديميًا لشجرة داخل الذاكرة يصور تفاصيل الملف الذي تم تغذيته به ثم يوزعه بعد ذلك. هذا هو السبب في أنها تتطلب ذاكرة عالية لإعداد ملفات XML.
الآن ، يجب أن تكون قد خمنت بالفعل ميزتها الرئيسية - بالطبع ، قدرتها على هيكلة المعلومات في شكل يشبه الشجرة يمنح العميل جميع المعلومات الموجودة في ملف XML الأصلي.
كما أنه مفيد للاستخدام لأن عمليات القراءة والكتابة الخاصة به سلسة وسهلة الاستخدام. يمكن الوصول إلى المستند المطلوب بشكل عشوائي. ومع ذلك ، فإنه يحتوي أيضًا على بعض الثغرات.
هم افتقارها إلى كفاءة الذاكرة وحقيقة أنها بطيئة إلى حد كبير.
الاختلافات الرئيسية بين SAX و DOM
- بينما يمكن وصف SAX بشكل أفضل على أنه محلل قائم على الأحداث ، فإن DOM له بنية تشبه الشجرة.
- هذه هي الميزة التي تميزها عن طريق SAX بقفزات لأن البنية الشبيهة بالشجرة تزود العميل بمعلومات وافرة ، وهو أمر يفشل المحلل اللغوي الآخر فيه. بمعنى آخر ، يمكن أن تخلق بنية داخلية تشبه الشجرة.
- SAX غير مؤاتٍ من حيث أنه غير قادر على إنشاء هيكل داخلي. من ناحية أخرى ، فإن ما يمنح DOM اليد العليا هو قدرته على إنشاء بنية داخلية.
- بينما يحدث أن يكون SAX "للقراءة فقط" ، يكون DOM مفيدًا حيث يمكنه إدراج العقد وحذفها أيضًا.
- لا يسمح SAX بـ "التنقل للخلف". في المقابل، يأتي DOM كفائز واضح هنا، حيث يمكن إجراء التنقلات الخلفية والأمامية باستخدامه.
- SAX يقوم بتحميل كمية محدودة إلى حد كبير من الملف في ذاكرته. في المقابل ، يصبح DOM أكثر فائدة لأنه يمكنه تحميل المستند بالكامل على ذاكرته.