
C पुस्तकालय, हैंडलर पंजीकरण के साथ स्ट्रीम-उन्मुख XML पार्सिंग के लिए, UTF-8/UTF-16 एन्कोडिंग का समर्थन करता है, और autoconf-आधारित निर्माण प्रणाली। इसमें xmlwf उपकरण और संदर्भ मैनुअल शामिल हैं।
यह एक्सपैट है, एक C लाइब्रेरी XML पार्स करने के लिए, जिसे जेम्स क्लार्क ने 1997 में शुरू किया था। एक्सपैट एक स्ट्रीम-उन्मुख XML पार्सर है। इसका मतलब है कि आप पार्स शुरू करने से पहले पार्सर के साथ हैंडलर रजिस्टर करते हैं। जब पार्सर पार्स किए जा रहे दस्तावेज़ में संबद्ध संरचनाओं को खोजता है तो ये हैंडलर कॉल किए जाते हैं। एक स्टार्ट टैग उस प्रकार की संरचनाओं का एक उदाहरण है जिसके लिए आप हैंडलर रजिस्टर कर सकते हैं।
विंडोज उपयोगकर्ताओं को expat_win32 पैकेज का उपयोग करना चाहिए, जिसमें प्रीकंपाइल्ड लाइब्रेरी और निष्पादन योग्य, और डेवलपर्स के लिए स्रोत कोड दोनों शामिल हैं।
एक्सपैट मुफ्त सॉफ्टवेयर है। आप इस पैकेज के साथ वितरित फ़ाइल COPYING में निहित लाइसेंस की शर्तों के तहत इसे कॉपी, वितरित और संशोधित कर सकते हैं। यह लाइसेंस MIT/X कंसोर्टियम लाइसेंस के समान है।
यदि आप Git रिपॉजिटरी से चेक-आउट से एक्सपैट का निर्माण कर रहे हैं, तो आपको एक स्क्रिप्ट चलाने की आवश्यकता है जो GNU ऑटोकॉन्फ और लिबटूल टूल का उपयोग करके कॉन्फ़िगर स्क्रिप्ट उत्पन्न करती है। ऐसा करने के लिए, आपके पास ऑटोकॉन्फ 2.58 या नया होना चाहिए। स्क्रिप्ट को इस प्रकार चलाएँ:
./buildconf.sh
एक बार यह हो जाने के बाद, स्रोत वितरण से निर्माण करने के समान निर्देशों का पालन करें।
स्रोत वितरण से एक्सपैट बनाने के लिए, आप पहले शीर्ष स्तर वितरण निर्देशिका में कॉन्फ़िगरेशन शेल स्क्रिप्ट चलाते हैं:
./configure
कई विकल्प हैं जो आप कॉन्फ़िगर को प्रदान कर सकते हैं (जिन्हें आप --help विकल्प के साथ कॉन्फ़िगर चलाकर खोज सकते हैं)। लेकिन सबसे दिलचस्प वह है जो इंस्टॉलेशन निर्देशिका सेट करता है। डिफ़ॉल्ट रूप से, कॉन्फ़िगर स्क्रिप्ट लिबेक्सपैट को /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 चीजों को उनके उचित स्थान पर स्थापित करेगा। अतिरिक्त make विकल्पों के बारे में जानने के लिए Makefile देखें। ध्यान दें कि आपको उन निर्देशिकाओं में लिखने की अनुमति होनी चाहिए जिनमें चीजें स्थापित की जाएंगी।
यदि आप डिफ़ॉल्ट UTF-8 के बजाय UTF-16 एन्कोडिंग में दस्तावेज़ जानकारी प्रदान करने के लिए एक्सपैट बनाने में रुचि रखते हैं, तो इन निर्देशों का पालन करें (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 {} +
Makefile.in फ़ाइलों को फिर से लिखने के लिए automake चलाएँ:
automake
UTF-16 आउटपुट unsigned short (और संस्करण/त्रुटि स्ट्रिंग्स char) के रूप में करने के लिए, चलाएँ:
./configure CPPFLAGS=-DXML_UNICODE --without-xmlwf
UTF-16 आउटपुट wchar_t (incl. संस्करण/त्रुटि स्ट्रिंग्स) के रूप में करने के लिए, चलाएँ:
./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 को ओवरराइड करता है, क्योंकि चर-सेटिंग प्राथमिकता है
नोट: यह केवल एक्सपैट लाइब्रेरी पर ही लागू होता है, xmlwf और परीक्षणों के UTF-16 संस्करणों का निर्माण वर्तमान में समर्थित नहीं है।
जब एक्सपैट का उपयोग किसी ऐसे प्रोजेक्ट के साथ कर रहे हैं जो कॉन्फ़िगरेशन के लिए ऑटोकॉन्फ का उपयोग करता है, तो आप यह निर्धारित करने के लिए conftools/expat.m4 में प्रोबिंग मैक्रो का उपयोग कर सकते हैं कि एक्सपैट को कैसे शामिल किया जाए। अधिक जानकारी के लिए उस फ़ाइल के शीर्ष पर टिप्पणियाँ देखें।
एक संदर्भ मैनुअल इस वितरण में फ़ाइल doc/reference.html में उपलब्ध है।
make install चलाएँ (फिर से, xmlwf को बाहर करता है)।