
مكتبة بلغة C لتحليل XML، توفر تحليلاً موجهاً نحو التدفق مع تسجيل المعالجات، ودعم ترميز UTF-16، وتتضمن دليلاً مرجعياً.
هذه هي مكتبة Expat، وهي مكتبة بلغة C لتحليل XML، بدأها جيمس كلارك في عام 1997. Expat محلّل XML موجّه بالتدفق (stream-oriented). وهذا يعني أنك تسجّل معالجات (handlers) مع المحلّل قبل بدء التحليل. تُستدعى هذه المعالجات عندما يكتشف المحلّل البنى المرتبطة بها في المستند الذي يتم تحليله. وسم البداية (start tag) هو مثال على نوع البنى التي يمكنك تسجيل معالجات لها.
يجب على مستخدمي ويندوز استخدام حزمة expat_win32،
والتي تتضمن كلاً من المكتبات والملفات التنفيذية المترجمة مسبقًا، بالإضافة إلى الكود المصدري
للمطوّرين.
Expat هي برمجيات حرة.
يمكنك نسخها وتوزيعها وتعديلها بموجب شروط الترخيص
الواردة في الملف
COPYING
الموزّع مع هذه الحزمة.
هذا الترخيص هو نفسه ترخيص MIT/X Consortium.
إذا كنت تبني Expat من نسخة مسحوبة من مستودع Git، فأنت بحاجة إلى تشغيل سكربت يولّد سكربت configure باستخدام أداتي GNU autoconf وlibtool. وللقيام بذلك، يجب أن يكون لديك autoconf 2.58 أو أحدث. شغّل السكربت كما يلي:
./buildconf.sh
بعد إتمام ذلك، اتبع نفس التعليمات المتبعة للبناء من توزيعة مصدرية.
للبناء من توزيعة مصدرية، شغّل أولاً سكربت الإعداد (configuration) في الدليل العلوي للتوزيعة:
./configure
هناك العديد من الخيارات التي يمكنك تمريرها إلى configure (ويمكنك اكتشافها
بتشغيل configure مع الخيار --help). لكن أكثرها أهمية هو الخيار
الذي يحدد دليل التثبيت. افتراضيًا، سيجهّز سكربت configure الأمور
لتثبيت libexpat في /usr/local/lib، وexpat.h في /usr/local/include،
وxmlwf في /usr/local/bin. إذا كنت تفضّل، على سبيل المثال، التثبيت
في /home/me/mystuff/lib و/home/me/mystuff/include و
/home/me/mystuff/bin، يمكنك إخبار configure بذلك عبر:
./configure --prefix=/home/me/mystuff
من الخيارات المثيرة للاهتمام أيضًا تفعيل دعم الأعداد الصحيحة 64-بت لأرقام الأسطر والأعمدة وفهرس البايت الإجمالي:
./configure CPPFLAGS=-DXML_LARGE_SIZE
مع ذلك، فإن مثل هذا التعديل سيكون تغييرًا كاسرًا للـ ABI ولذلك لا يُنصح به للاستخدام العام — على سبيل المثال كجزء من توزيعة لينكس — بل للبناءات ذات المتطلبات الخاصة.
بعد تشغيل سكربت configure، سيبني أمر make الأشياء
وسيُثبّت أمر make install الأشياء في مكانها الصحيح.
ألقِ نظرة على Makefile للتعرف على خيارات make الإضافية.
لاحظ أنك بحاجة إلى صلاحية الكتابة في الدلائل التي سيتم التثبيت فيها.
إذا كنت مهتمًا ببناء Expat لتوفير معلومات المستند بترميز UTF-16
بدلاً من UTF-8 الافتراضي، فاتبع هذه التعليمات (بعد تشغيل
make distclean).
يرجى ملاحظة أننا نُجري الإعداد باستخدام --without-xmlwf لأن xmlwf
لا يدعم نمط الترجمة هذا (حتى الآن):
عدّل جماعيًا ملفات Makefile.am لاستخدام libexpatw.la كاسم للمكتبة:
find -name Makefile.am -exec sed -e 's,libexpat\.la,libexpatw.la,' -e 's,libexpat_la,libexpatw_la,' -i {} +
شغّل automake لإعادة كتابة ملفات Makefile.in:
automake
للحصول على مخرجات UTF-16 بنوع unsigned short (وسلاسل الإصدار/الخطأ بنوع char)،
شغّل:
./configure CPPFLAGS=-DXML_UNICODE --without-xmlwf
للحصول على مخرجات UTF-16 بنوع wchar_t (بما في ذلك سلاسل الإصدار/الخطأ)، شغّل:
./configure CFLAGS="-g -O2 -fshort-wchar" CPPFLAGS=-DXML_UNICODE_WCHAR_T --without-xmlwf
ملاحظة: يتطلب الأخير أيضًا مكتبة libc مترجمة مع -fshort-wchar.
شغّل make (والذي يستثني xmlwf).
شغّل make install (مرة أخرى، يستثني xmlwf).
استخدام DESTDIR مدعوم. ويعمل كما يلي:
make install DESTDIR=/path/to/image
يتجاوز DESTDIR المعيّن داخل ملف makefile، لأن أولوية تعيين المتغيرات هي
ملاحظة: ينطبق هذا على مكتبة Expat نفسها فقط؛ فبناء نسخ UTF-16 من xmlwf والاختبارات غير مدعوم حاليًا.
عند استخدام Expat مع مشروع يعتمد على autoconf للإعداد،
يمكنك استخدام الماكرو الاستكشافي في conftools/expat.m4 لتحديد كيفية
تضمين Expat. راجع التعليقات في أعلى هذا الملف لمزيد من المعلومات.
يتوفر دليل مرجعي في الملف doc/reference.html في هذه التوزيعة.