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