
यह Expat है, XML पार्स करने के लिए एक C लाइब्रेरी, जिसे 1997 में James Clark ने शुरू किया था। 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 के साथ configure करते हैं क्योंकि 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 संस्करण बनाना वर्तमान में समर्थित नहीं है।
जब Expat का उपयोग किसी ऐसे प्रोजेक्ट के साथ कर रहे हों जो कॉन्फ़िगरेशन के लिए autoconf का उपयोग करता है, तो आप Expat को शामिल करने का तरीका निर्धारित करने के लिए conftools/expat.m4 में प्रोबिंग मैक्रो का उपयोग कर सकते हैं। अधिक जानकारी के लिए उस फ़ाइल के शीर्ष पर टिप्पणियाँ देखें।
इस डिस्ट्रीब्यूशन में फ़ाइल doc/reference.html में एक संदर्भ मैनुअल उपलब्ध है।
make install चलाएँ (फिर से, xmlwf को बाहर रखता है)।