
مكتبة بلغة C لتحليل XML موجهة نحو التدفق مع تسجيل المعالجات، تدعم ترميز UTF-8/UTF-16، ونظام بناء يعتمد على autoconf. تتضمن أداة xmlwf ودليل مرجعي.
هذه هي مكتبة إكسبات، وهي مكتبة بلغة C لتحليل XML، بدأها جيمس كلارك في عام 1997. إكسبات هو محلل XML موجه بالتيار. هذا يعني أنك تسجل معالجات (handlers) مع المحلل قبل بدء التحليل. يتم استدعاء هذه المعالجات عندما يكتشف المحلل الهياكل المرتبطة بها في المستند الذي يتم تحليله. علامة البداية (start tag) هي مثال على نوع الهياكل التي يمكنك تسجيل معالجات لها.
يجب على مستخدمي Windows استخدام
حزمة expat_win32،
والتي تتضمن كلاً من المكتبات والملفات التنفيذية المترجمة مسبقًا، بالإضافة إلى الكود المصدري للمطورين.
إكسبات هو برنامج مجاني.
يمكنك نسخه وتوزيعه وتعديله بموجب شروط الترخيص
الموجود في الملف
COPYING
الموزع مع هذه الحزمة.
هذا الترخيص هو نفس ترخيص MIT/X Consortium.
إذا كنت تبني إكسبات من مستخرج (check-out) من مستودع Git، تحتاج إلى تشغيل سكريبت يقوم بتوليد سكريبت التكوين (configure) باستخدام أدوات 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 وبالتالي لا يُنصح به للاستخدام العام — على سبيل المثال كجزء من توزيعة Linux — بل للبناءات ذات المتطلبات الخاصة.
بعد تشغيل سكريبت التكوين، سيقوم أمر 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 المحدد داخل الملف makefile، لأن أولوية تعيين المتغير هي
ملاحظة: هذا ينطبق فقط على مكتبة Expat نفسها، بناء نسخ UTF-16 من xmlwf والاختبارات غير مدعوم حاليًا.
عند استخدام Expat مع مشروع يستخدم autoconf للتكوين، يمكنك
استخدام ماكرو الفحص (probing macro) في conftools/expat.m4 لتحديد كيفية
تضمين Expat. راجع التعليقات في أعلى ذلك الملف لمزيد من
المعلومات.
يتوفر دليل مرجعي في الملف doc/reference.html في هذه
التوزيعة.