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