
هذا هو Expat، مكتبة بلغة C لتحليل XML، بدأها جيمس كلارك في عام 1997. Expat هو محلل XML قائم على التدفق (stream-oriented). وهذا يعني أنك تسجّل معالجات (handlers) مع المحلل قبل بدء التحليل. ويتم استدعاء هذه المعالجات عندما يكتشف المحلل البنى المرتبطة بها في المستند الجاري تحليله. وسم البداية (start tag) هو مثال على نوع البنى التي يمكنك تسجيل معالجات لها.
يجب على مستخدمي ويندوز استخدام
حزمة expat_win32،
والتي تتضمن كلاً من المكتبات والملفات التنفيذية المجمّعة مسبقاً، والكود المصدري
للمطوّرين.
تُعدّ Expat برمجيات حرة.
يمكنك نسخها وتوزيعها وتعديلها بموجب شروط الترخيص
الواردة في الملف
COPYING
الموزّع مع هذه الحزمة.
هذا الترخيص هو نفسه ترخيص MIT/X Consortium.
إذا كنت تبني Expat من نسخة مسحوبة (check-out) من مستودع Git، فعليك تشغيل سكربت يولّد سكربت configure باستخدام أداتَي GNU autoconf وlibtool. وللقيام بذلك، يجب أن يكون لديك autoconf 2.58 أو أحدث. شغّل السكربت كما يلي:
./buildconf.sh
بعد إتمام ذلك، اتبع نفس التعليمات المتبعة للبناء من توزيعة مصدرية.
لبناء Expat من توزيعة مصدرية، شغّل أولاً سكربت الإعداد (shell script) في دليل المستوى الأعلى للتوزيعة:
./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
غير أن مثل هذا التعديل سيكون تغييراً كاسراً للتوافق (breaking change) في ABI وبالتالي لا يُنصح به للاستخدام العام — على سبيل المثال كجزء من توزيعة لينكس — بل للبناءات ذات المتطلبات الخاصة.
بعد تشغيل سكربت configure، سيقوم أمر make ببناء
المكونات وسيقوم make install بتثبيتها في مكانها
الصحيح. ألقِ نظرة على Makefile للتعرف على خيارات
make الإضافية. لاحظ أنك تحتاج إلى صلاحية كتابة
في الدلائل التي سيتم التثبيت فيها.
إذا كنت مهتماً ببناء Expat لتقديم معلومات
المستند بترميز UTF-16 بدلاً من UTF-8 الافتراضي، فاتبع
هذه التعليمات (بعد تشغيل make distclean).
يرجى ملاحظة أننا نُجري الإعداد باستخدام --without-xmlwf لأن xmlwf لا
يدعم نمط الترجمة هذا (حالياً):
قم بتعديل جماعي (mass-patch) لملفات 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).
استخدام DESTDIR مدعوم. ويعمل كما يلي:
make install DESTDIR=/path/to/image
يتجاوز DESTDIR المُعيّن داخل ملف Makefile، لأن أولوية تعيين المتغيرات هي
ملاحظة: ينطبق هذا على مكتبة Expat نفسها فقط؛ فبناء نسخ UTF-16 من xmlwf والاختبارات غير مدعوم حالياً.
عند استخدام Expat مع مشروع يعتمد على autoconf للإعداد، يمكنك
استخدام ماكرو الفحص (probing macro) في conftools/expat.m4 لتحديد كيفية
تضمين Expat. راجع التعليقات في أعلى ذلك الملف لمزيد من
المعلومات.
يتوفر دليل مرجعي في الملف doc/reference.html ضمن هذه
التوزيعة.
شغّل make install (وهو يستثني xmlwf مرة أخرى).