
مكتبة C لتحليل XML الموجه للتيار، توفر معالجات لتحليل الهياكل في المستندات. تتضمن أداة xmlwf وتدعم ترميز UTF-16.
هذه هي مكتبة Expat، وهي مكتبة بلغة C لتحليل XML، بدأها James Clark في عام 1997. Expat محلل XML موجّه بالتدفق (stream-oriented). وهذا يعني أنك تسجّل معالجات (handlers) مع المحلل قبل بدء التحليل. وتُستدعى هذه المعالجات عندما يكتشف المحلل البنى المرتبطة بها في المستند الذي يتم تحليله. وسم البداية (start tag) هو مثال على نوع البنى التي يمكنك تسجيل معالجات لها.
يجب على مستخدمي Windows استخدام
حزمة expat_win32،
والتي تتضمن كلاً من المكتبات والملفات التنفيذية المترجمة مسبقاً، وكذلك الكود المصدري
للمطوّرين.
Expat هي برمجيات حرة.
يمكنك نسخها وتوزيعها وتعديلها بموجب شروط الرخصة
الواردة في الملف
COPYING
المرفق مع هذه الحزمة.
هذه الرخصة هي نفس رخصة MIT/X Consortium.
إذا كنت تبني Expat من نسخة مسحوبة من مستودع Git، فأنت بحاجة إلى تشغيل سكربت يولّد سكربت configure باستخدام أدوات GNU autoconf و libtool. وللقيام بذلك، يجب أن يكون لديك autoconf 2.58 أو أحدث. قم بتشغيل السكربت كما يلي:
./buildconf.sh
بمجرد القيام بذلك، اتبع نفس التعليمات المتبعة للبناء من توزيعة مصدرية.
لبناء Expat من توزيعة مصدرية، قم أولاً بتشغيل سكربت الإعداد (configuration 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
مع ذلك، فإن مثل هذا التعديل سيكون تغييراً يكسر التوافق مع ABI وبالتالي لا يُنصح به للاستخدام العام — على سبيل المثال كجزء من توزيعة Linux — بل للبنيات ذات المتطلبات الخاصة.
بعد تشغيل سكربت 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 في هذا التوزيع.