
مكتبة بلغة C لتحليل XML موجّه نحو التدفق، توفر محللاً سريعاً وقابلاً للتهيئة مع دعم لمعالجات مخصصة وخيارات ترميز.
هذه هي مكتبة إكسبات، وهي مكتبة بلغة C لتحليل XML، بدأها جيمس كلارك في عام 1997. إكسبات هو محلل XML موجّه بالتيار. وهذا يعني أنك تسجّل معالجات مع المحلل قبل بدء التحليل. يتم استدعاء هذه المعالجات عندما يكتشف المحلل البنى المرتبطة في المستند الذي يتم تحليله. العلامة الافتتاحية هي مثال على نوع البنى التي يمكنك تسجيل معالجات لها.
يجب على مستخدمي ويندوز استخدام حزمة
expat_win32،
التي تتضمن مكتبات ومنفذات مترجمة مسبقًا، بالإضافة إلى كود المصدر للمطورين.
إكسبات هو برنامج مجاني.
يمكنك نسخه وتوزيعه وتعديله بموجب شروط الترخيص
الموجودة في الملف
COPYING
الموزع مع هذه الحزمة.
هذا الترخيص هو نفسه ترخيص MIT/X Consortium.
إذا كنت تبني إكسبات من نسخة مأخوذة من مستودع Git، فأنت بحاجة إلى تشغيل سكربت ينشئ سكربت التهيئة باستخدام أدوات GNU autoconf و libtool. للقيام بذلك، يجب أن يكون لديك autoconf الإصدار 2.58 أو أحدث. قم بتشغيل السكربت هكذا:
./buildconf.sh
بمجرد الانتهاء من ذلك، اتبع نفس التعليمات المتبعة لبناء من توزيعة مصدر.
لبناء إكسبات من توزيعة مصدر، قم أولاً بتشغيل سكربت التهيئة shell في الدليل الجذر للتوزيعة:
./configure
هناك العديد من الخيارات التي يمكنك تقديمها لأداة التهيئة (التي يمكنك
اكتشافها عن طريق تشغيل التهيئة مع الخيار --help). لكن
أكثرها أهمية هو الخيار الذي يحدد دليل التثبيت.
بشكل افتراضي، يضبط سكربت التهيئة الأمور لتثبيت
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 وبالتالي لا يُنصح به للاستخدام العام — مثل جزء من توزيعة لينكس — بل للبنى ذات المتطلبات الخاصة.
بعد تشغيل سكربت التهيئة، سيقوم أمر make ببناء
الأشياء وأمر make install بتثبيتها في المكان المناسب.
ألق نظرة على Makefile لمعرفة المزيد عن خيارات
make الإضافية. لاحظ أنك تحتاج إلى صلاحية الكتابة في
الدلائل التي سيتم تثبيت الأشياء فيها.
إذا كنت مهتمًا ببناء إكسبات لتوفير معلومات المستند
بترميز 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 المحددة في ملف make، لأن أولوية تعيين المتغير هي
ملاحظة: ينطبق هذا فقط على مكتبة إكسبات نفسها، بناء إصدارات UTF-16 من xmlwf والاختبارات غير مدعوم حاليًا.
عند استخدام إكسبات مع مشروع يستخدم autoconf للتكوين، يمكنك
استخدام الماكرو الاستكشافي في conftools/expat.m4 لتحديد كيفية
تضمين إكسبات. راجع التعليقات في أعلى ذلك الملف لمزيد من المعلومات.
يتوفر دليل مرجعي في الملف doc/reference.html في هذه التوزيعة.