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