XML
| संचिकानाम विस्तार | .xml |
|---|---|
| इंटरनेट मीडिया प्रकार | application/xml, text/xml (deprecated) |
| युनीफ‘ओर्म प्रकार आइडेन्टिफायर | public.xml |
| द्वारा विकसित | World Wide Web Consortium |
| फॉर्मैट का प्रकार | Markup language |
| से विस्तृत | SGML |
| को विस्तृत | XHTML, RSS, Atom, ... |
| मानक | 1.0 (Fifth Edition) 1.1 (Second Edition) |
साँचा:Infobox W3C Standard XML (एक्स्टेंसिबल मार्कअप भाषा)(Extensible Markup Language) नियमों का एक समुच्चय है जो इलेक्ट्रॉनिक रूप से दस्तावेजों की एनकोडिंग करता है. इसे W3C और कई अन्य सम्बंधित विनिर्देशनों के द्वारा उत्पन्न XML 1.0 विनिर्देशन (XML 1.0 Specification) में परिभाषित किया जाता है; सभी मुक्त-मुक्त खुले मानक (open standards) हैं.[1]
XML के डिजाइन का लक्ष्य इंटरनेट पर सरलता, व्यापकता और उपयोगिता पर जोर देना है.[2] यह एक टेक्स्ट का डेटा प्रारूप है, जिसे दुनिया की भाषाओं के लिए यूनिकोड (Unicode) के माध्यम से काफी समर्थन प्राप्त है. हालांकि XML का डिजाइन दस्तावेजों पर ध्यान देता है, इसका उपयोग यादृच्छिक डेटा सरंचनाओं की अभिव्यक्ति के लिए किया जाता है, उदाहरण के लिए वेब सेवाओं में.
प्रोग्रामिंग इंटरफेस (programming interfaces) की कई किस्में हैं, जिनका उपयोग सॉफ्टवेयर का विकास करने वाले लोग (software developers) XML डेटा तक पहुंचने के लिए करते हैं, और कई स्कीमा प्रणालियों को XML -आधारित भाषाओं की परिभाषा में सहायता करने के लिए डिजाइन किया गया है.
2009 के अनुसार [update], XML पर आधारित सैंकडों भाषाओं का विकास किया गया है, [3]जिनमें RSS, एटम, SOAP, और XHTML शामिल हैं. XML -आधारित प्रारूप अधिकांश कार्यालय उत्पादकता उपकरणों के लिए डिफॉल्ट बन गए हैं, इनमें शामिल हैं माइक्रोसोफ्ट ऑफिस (ऑफिस ओपन XML) (Microsoft Office (Office Open XML), OpenOffice.org (खुला दस्तावेज), और एप्पल Apple'स आई वर्क iWork.[4]
[संपादित करें] मुख्य शब्दावली
इस अनुभाग में सामग्री XML विनिर्देशन (XML Specification) पर आधारित है. यह XML में प्रकट होने वाले निर्माणों की विस्तृत सूची नहीं है; यह उन मुख्य निर्माणों का परिचय उपलब्ध कराती है जो अक्सर दैनिक उपयोग में सामने आते हैं.
[संपादित करें] (यूनिकोड (Unicode)) केरेक्टर (CHARACTER )
परिभाषा के अनुसार, एक XML दस्तावेज़ केरेक्टर्स (अक्षरों) की एक श्रृंखला है. लगभग हर कानूनी यूनिकोड केरेक्टर एक XML दस्तावेज़ (XML document) में प्रकट हो सकता है.
[संपादित करें] प्रोसेसर और अनुप्रयोग (Processor and Application)
सॉफ्टवेयर जो एक XML दस्तावेज़ को प्रोसेस करता है. यह उम्मीद की जाती है कि एक प्रोसेसर एक अनुप्रयोग की सेवा (सर्विस) में कार्य करता है.
इस बारे में निश्चित बहुत ही विशिष्ट आवश्यकताएं हैं कि एक XML प्रोसेसर को क्या करना चाहिए और क्या नहीं, लेकिन अनुप्रयोग के व्यवहार के लिए ऐसा कुछ नहीं है.
प्रोसेसर (चूंकि विनिर्देशन इसे कॉल करता है) को अक्सर सामान्य भाषा में XML पार्सर के रूप में संदर्भित किया जाता है.
[संपादित करें] मार्कअप और सामग्री (Markup and Content)
वे केरेक्टर जो एक XML दस्तावेज का निर्माण करते हैं उन्हें मार्कअप (Markup) और सामग्री (Content) में विभाजित किया गया है.
मार्कअप और सामग्री को सरल वाक्यात्मक नियमों के द्वारा विभेदित किया जा सकता है. सभी श्रृंखलाएं जिनमें मार्कअप होता है, वे या तो केरेक्टर "<" and end with a ">" से शुरू होती हैं या केरेक्टर "&" से शुरू होकर a ";" पर ख़त्म होती हैं. केरेक्टर्स की स्ट्रिंग्स या श्रृंखलाएं जो मार्कअप और सामग्री नहीं हैं.
[संपादित करें] टैग
एक मार्कअप निर्माण "<" से शुरू होकर ">" पर ख़त्म होता है.
टैग तीन फ्लेवर्स में आते है: स्टार्ट-टैग्स (start-tags) , उदाहरण के लिए<section>, एंड टैग्स (end-tags) , उदाहरण के लिए</section>और एम्प्टी एलिमेंट टैग्स (empty-element tags) , उदाहरण के लिए<line-break/>.
[संपादित करें] तत्व (Elements)
एक दस्तावेज का एक तार्किक अवयव जो या तो स्टार्ट-टैग से शुरू होकर मेल खाते हुए एंड-टैग के साथ ख़त्म होता है, या इसमें केवल एक एम्प्टी-एलिमेंट टैग होता है.
स्टार्ट-टैग्स और एंड-टैग्स के बीच के केरेक्टर, यदि कोई हैं तो, तत्व के अवयव (element's content) होते हैं, और इनमें मार्कअप हो सकता है, अन्य तत्व भी शामिल होते हैं, जो चाइल्ड एलिमेंट्स (child elements) कहलाते हैं. एक एलिमेंट या तत्व का एक उदाहरण है <Greeting>Hello, world.</Greeting>एक और है<line-break/>.
[संपादित करें] गुणधर्म (Attribute)
एक मार्कअप निर्माण में एक नाम/मान युग्म होता है जो एक स्टार्ट टैग या एम्प्टी टैग एलिमेंट के अन्दर होता है.
इस उदाहरण में, गुणधर्म का नाम है "संख्या (number)" और इसका मान है "3": <step number="3">Connect A to B.</step> इस तत्व के दो गुणधर्म हैं, src और alt :<img src="madonna.jpg" alt='by Raphael'/> एक तत्व (element) में समान नाम के दो गुणधर्म नहीं होने चाहिए.
[संपादित करें] XML घोषणा (XML Declaration)
XML दस्तावेज उनके खुद के बारे में किसी जानकारी के घोषणा करने के द्वारा शुरू हो सकते हैं, जैसा कि निम्न उदाहरण में बताया गया है:
<? <source lang="xml"><?xml version="1.0" encoding="UTF-8" ?>
></source>
[संपादित करें] उदाहरण
यहां एक छोटा, पूर्ण, XML दस्तावेज है, जो इन सभी निर्माणों और अवधारणाओं का उपयोग करता है.
<?xml version="1.0" encoding='UTF-8'?>> <painting> img src="madonna.jpg" alt='Foligno Madonna, by Raphael'/> <table><caption>This is Raphael's "Foligno" Madonna, painted in<td> <date>1511</date>-<date>1512</date>.</td></caption><td> </painting>
इस उदाहरण दस्तावेज़ में पांच तत्व हैं: painting, img, caption, and two dates. date तत्व caption के बच्चे (children) हैं, जो मूल तत्व (root element) painting. img का बच्चा है, जिसमें दो गुणधर्म हैं src और alt.
[संपादित करें] केरेक्टर्स और एस्केपिंग (Characters and escaping)
XML दस्तावेज पूरी तरह से यूनिकोड संग्रह (repertoire) से लिए गए केरेक्टर्स से बने होते हैं.
विशेष रूप से अपवर्जित नियंत्रण केरेक्टर्स की एक छोटी संख्या के अलावा, यूनिकोड के द्वारा परिभाषित कोई केरेक्टर एक XML दस्तावेज के अवयवों के भीतर प्रकट हो सकता है. केरेक्टर्स का चयन जो मार्कअप के भीतर प्रकट हो सकते हैं, कुछ अधिक सीमित होता है, लेकिन फिर भी बड़ा होता है.
XML में उन यूनिकोड केरेक्टर्स की एन्कोडिंग के पहचान के लिए सुविधाएं शामिल होती हैं, जो दस्तावेज को बनाते हैं, और साथ ही एक या अन्य कारण से केरेक्टर्स की अभिव्यक्ति का प्रयोग प्रत्यक्ष रूप से नहीं किया जा सकता है.
[संपादित करें] एनकोडिंग का पता लगाना (Encoding detection)
यूनिकोड केरेक्टर सेट को कई तरीकों से संग्रहण या संचरण के लिए बाइट्स में "एनकोडित" किया जा सकता है. इसे "एन्कोडिंग (encodings)" कहा जाता है.
खुद यूनिकोड एन्कोडिंग को परिभाषित करता है जो पूरे संग्रह (repertoire) को कवर करता है; इनमें जाने माने हैं UTF-8 और UTF-16.[5] कई अन्य पाठ्य एनकोडिंग्स हैं जो यूनिकोड को पूर्व-दिनांकित (pre-date) करते हैं, जैसे ASCII और ISO/IEC 8859; लगभग हर मामले में उनके केरेक्टर संग्रह यूनिकोड केरेक्टर सेट (समुच्चय) के उपसमुच्चय हैं.
XML किसी भी यूनिकोड-परिभाषित एन्कोडिंग या किसी अन्य एन्कोडिंग के उपयोग की अनुमति देता है, जिसके केरेक्टर्स भी यूनिकोड में प्रकट होते हैं.
XML एक ऐसी प्रणाली भी उपलब्ध कराता है जिसके द्वारा एक XML प्रोसेसर भरोसेमंद तरीके से, बिना किसी पूर्व ज्ञान के, निर्धारित कर सकता है कि कौन सी एन्कोडिंग का प्रयोग किया जा रहा है.[6] UTF-8 और UTF-16 के अलावा अन्य एन्कोडिंग को हर XML पार्सर के आवश्यक रूप से नहीं पहचाना जाएगा.
[संपादित करें] बचना (escaping)
ऐसी कई कारण हैं जिनकी वजह से किसी केरेक्टर को सीचे एक XML दस्तावेज में शामिल करना मुश्किल या असंभव हो सकता है.
- केरेक्टर "<" और "&" कुंजी सिंटेक्स मार्कर्स (key syntax markers) हैं और अवयव में कभी भी प्रकट नहीं हो सकते हैं.[7]
- कुछ केरेक्टर एन्कोडिंग केवल यूनीकोड के एक उपसमुच्चय को समर्थन देती हैं: उदाहरण के लिए एक XML दस्तावेज को ASCII में एनकोडित करना कानूनी है, लेकिन ASCII में यूनिकोड केरेक्टर्स जैसे "é" के लिए कोड बिन्दुओं की कमी होती है.
- केरेक्टर को लेखक की मशीन पर टाइप करना संभव नहीं हो सकता है.
- कुछ केरेक्टर्स में ग्लिफ्स होते हैं जिन्हें अन्य केरेक्टर्स से देख कर विभेदित नहीं किया जा सकता है: उदाहरण हैं
non-breaking-space ( ) और Cyrillic Capital Letter(А).A
इन कारणों के लिए, XML समस्याग्रस्त या अनुपलब्ध केरेक्टर्स को संदर्भित करने के लिए एस्केप (escape) सुविधाएं उपलब्ध कराता है.
पांच पूर्व परिभाषित प्रविष्टियां हैं: < represents "<", > represents ">",& represents "&", ' represents', और " represents".
अनुमति दिए गए सभी यूनिकोड केरेक्टर्स को एक आंकिक केरेक्टर सन्दर्भ (numeric character reference) के साथ अभिव्यक्त किया जा सकता है. चीनी केरेक्टर "中" पर विचार करें, जिसका यूनिकोड में आंकिक कोड hexadecimal 4E2D, या decimal 20,013 है.
एक उपयोगकर्ता जिसका कीबोर्ड इस केरेक्टर को डालने के लिए कोई विधि पेश नहीं करता, वह इसे एक XML दस्तावेज में डाल सकता है जिसे या तो 中 या 中 के रूप में एनकोडित किया गया हो. इसी तरह, स्ट्रिंग "I" को "I <3 Jörg" के रूप में एक XML दस्तावेज में शामिल करने के लिए एनकोडित किया जा सकता है.<3 Jörg
"�" को अनुमति नहीं है, हालांकि नल केरेक्टर एक नियंत्रण केरेक्टर है जिसे यहां तक कि एक आंकिक केरेक्टर सन्दर्भ का उपयोग करते हुए भी XML में शामिल नहीं किया गया है.[8]
एक वैकल्पिक एन्कोडिंग प्रणाली जैसे Base64 ऐसे केरेक्टर को अभिव्यक्त करने के लिए आवश्यक है.
[संपादित करें] टिप्पणियां (comments)
एक दस्तावेज में कहीं पर भी अन्य मार्कअप के बाहर टिप्पणियां प्रकट हो सकती हैं.
टिप्पणियां पहली रेखा पर प्रकट नहीं होनी चाहियें, या अन्यथा XML प्रोसेसर संगतता के लिए XML घोषणा से ऊपर होनी चाहियें.
स्ट्रिंग "--" (डबल हाइफन) की अनुमति नहीं है, और टिप्पणियों के भीतर प्रविष्टियों को मान्यता नहीं दी जानी चाहियें.
एक वैध टिप्पणी का एक उदाहरण: ""
[संपादित करें] अच्छे प्रकार से निर्माण और त्रुटि-हैंडलिंग (Well-formedness and error-handling)
XML विनिर्देशन एक XML दस्तावेज को एक पाठ्य (text) के रूप में परिभाषित करता है, जिसे अच्छे प्रकार से निर्मित किया गया है, अर्थात, यह विनिर्देशन में दिए गए सिंटेक्स नियमों की सूची को संतुष्ट करता है. सूची काफी लंबी है; कुछ महत्वपूर्ण बिंदु हैं:
- इसमें केवल ठीक प्रकार से एनकोडित किये गए कानूनी यूनिकोड केरेक्टर होते हैं.
- कोई भी विशेष सिंटेक्स केरेक्टर्स जैसे "<" और "&" प्रकट नहीं होते, केवल उस स्थिति को छोड़ कर जब उनके मार्क-अप प्रदशन भूमिका निभाते हैं.
- प्रारंभिक, अंतिम और एम्प्टी एलिमेंट टैग्स जो तत्वों को परिसीमित करते हैं, उन्हें ठीक तरीके से नेस्टेड किया जाता है, जिसमें कोई भी चीज गायब (missing) और अतिव्यापी (overlapping) नहीं होती है.
- एलिमेंट टैग्स केस-संवेदी होते हैं; प्रराम्भिक और अंतिम टैग्स (beginning and end tags) ठीक प्रकार से मेल खाने चाहियें.
- एक मात्र "मूल (root)" तत्व होता है जिसमें सभी अन्य तत्व शामिल होते हैं.
एक XML दस्तावेज़ की परिभाषा में वह पाठ्य शामिल नहीं है जिसमें अच्छे प्रकार से निर्मित नियमों का उल्लंघन शामिल होता है; ये साधारण रूप से XML नहीं हैं. एक XML प्रोसेसर जो ऐसे उल्लंघन का सामना करता है, वह ऐसी त्रुटियों की रिपोर्ट देने के लिए और सामान्य प्रोसेसिंग को रोकने के लिए जरुरी है. इस निति को कभी कभी ड्राकोनियन कहा जाता है, यह HTML को प्रोसेस करने वाले प्रोग्राम के व्यवहार के लिए उल्लेखनीय विपरीतता रखती है, जिन्हें यहां तक कि गंभीर मार्कअप त्रुटियों की उपस्थिति में एक उचित परिणाम उत्पन्न करने के लिए डिजाइन किया गया है.
इस क्षेत्र में XML की नीति की आलोचना, पोस्टल के नियम (Postel's law) के उल्लंघन के रूप में की गयी है.[9]
[संपादित करें] स्कीमा और प्रमाणीकरण (Schemas and validation)
अच्छे प्रकार से निर्मित (well-formed) होने के अलावा, एक XML दस्तावेज मान्य (valid) हो सकता है.
इसका मतलब यह है कि इसमें एक दस्तावेज प्रकार की परिभाषा (Document Type Definition (DTD)) के लिए सन्दर्भ होता है, और यह कि इसके तत्वों और गुणधर्मों को उस DTD में घोषित किया जाता है, और वे उनके लिए DTD के द्वारा विनिर्दिष्ट किये गए व्याकरण के नियमों का पालन करते हैं.
XML प्रोसेसरों को मान्य (validating) और गैर-मान्य (non-validating) में वर्गीकृत किया जाता है, यह इस बात पर निर्भर करता है कि वे मान्यता के लिए XML दस्तावेज की जांच करते हैं या नहीं.
एक प्रोसेसर जो एक वैधता त्रुटि की खोज करता है, वह इसकी रिपोर्ट के लिए योग्य होना चाहिए, लेकिन इसे सामान्य प्रोसेसिंग जारी रखनी चाहिए.
एक DTD एक स्कीमा (schema) या व्याकरण (grammar) का एक उदाहरण है. XML 1.0 के प्रारंभिक प्रकाशन के बाद से, XML के लिए स्कीमा भाषाओँ के क्षेत्र में काफी काम किया गया है, जैसे स्कीमा भाषाएं आम तौर पर तत्वों के सेट को सीमित करती हैं जिसका उपयोग एक दस्तावेज में किया जा सकता है, जिसके गुणधर्मों को उन पर उस क्रम में लागू किया जा सकता है, जिस क्रम में वे प्रकट हो सकते हैं, और अभिवावक/बच्चे के सम्बन्ध की अनुमति होती है.
[संपादित करें] DTD
XML के लिए सबसे पुरानी स्कीमा भाषा है दस्तावेज़ प्रकार परिभाषा (DTD), जो SGML से विरासत में प्राप्त हुई है.
DTDs के निम्नलिखित फायदे हैं:
- DTD का समर्थन सर्वव्यापी है क्योंकि यह XML 1.0 मानक में शामिल किया गया है.
- DTDs की तुलना तत्व-आधारित स्कीमा भाषाओँ के साथ की जाती है, और परिणामस्वरूप यह एकमात्र स्क्रीन में अधिक जानकारी प्रस्तुत करते हैं.
- DTDs केरेक्टर्स के प्रकाशन के लिए मानक सार्वजनिक प्रविष्टि सेट की घोषणा की अनुमति देते हैं.
- DTDs एक नामस्पेस के द्वारा प्रयुक्त प्रकारों के बजाय एक दस्तावेज प्रकार को परिभाषित करते हैं, और ऐसे समूह एक मात्र संग्रह में एक दस्तावेज के लिए सीमित होते हैं.
DTDs की निम्नलिखित सीमाएं हैं:
- उनमें अभिव्यक्ति की कमी है. XML DTDs, SGML DTDs से सरल हैं, और इनमें विशिष्ट सरंचनाएं हैं जिनकी अभिव्यक्ति नियमित व्याकरण के साथ नहीं की जा सकती है.
DTDs केवल प्रारंभिक डेटाटाइप्स का समर्थन करते हैं.
- उनमें पठनीयता का अभाव है. DTD डिजाइनर आमतौर पर पैरामीटर प्रविष्टियों का भारी उपयोग करते हैं (जो आवश्यक रूप से पाठ्य मेक्रोस के रूप में व्यवहार करते हैं), जो जटिल व्याकरण को परिभाषित करने को आसान बनता है, लेकिन स्पष्टता की कीमत पर.
- वे, स्कीमा का वर्णन करने के लिए SGML से विरासत में प्राप्त, नियमित अभिव्यक्ति वाक्यविन्यास (regular expression syntax) पर आधारित एक वाक्यविन्यास (सिंटेक्स) का उपयोग करते हैं.
प्रारूपिक XML APIs जैसे SAX वाक्यविन्यास की एक सरंचनात्मक अभिव्यक्ति के अनुप्रयोग को पेश करने का प्रयास नहीं करते हैं, इसलिए यह एक तत्व आधारित सिंटेक्स की तुलना में प्रोग्रामर्स के लिए कम सुलभ है.
दो विशिष्ट लक्षण जो DTDs को अन्य स्कीमा प्रकारों से विभेदित करते हैं, वे हैं एक DTD को XML दस्तावेज में डालने के लिए और प्रविष्टियां जो पाठ्य के यादृच्छिक खंड हैं, को परिभाषित करने के लिए वाक्यात्मक समर्थन देना. और/ या मार्कअप करना कि XML प्रोसेसर खुद DTD और XML दस्तावेज में प्रवेश करे जहां कहीं उनका सन्दर्भ दिया गया है, जैसे केरेक्टर का बचना.
DTD प्रौद्योगिकी की सर्वव्यापकता के कारण इसका उपयोग अभी भी कई अनुप्रयोगों में किया जाता है.
[संपादित करें] XML स्कीमा
एक नयी स्कीमा भाषा, जिसे DTDs के उत्तराधिकारी के रूप में W3C द्वारा वर्णित किया गया है, वह XML स्कीमा है, इसे अक्सर XML स्कीमा उदाहरणों, XSD (XML परिभाषा) के लिए शुरुआत कहा जाता है. XML भाषाओं का वर्णन करने में XSDs DTDs से ज्यादा शक्तिशाली हैं. वे एक समृद्ध डेटाटाइपिंग प्रणाली का उपयोग करते हैं, और एक XML दस्तावेज की तार्किक सरंचना पर अधिक विस्तृत बाधाओं के लिए अनुमति देते हैं. XSDs, एक XML-आधारित स्वरूप का उपयोग भी करते हैं, जो साधारण XML उपकरणों के उपयोग को संभव बनता है, ताकि उन्हें प्रोसेस करने में मदद मिले.
[संपादित करें] रिलेक्स NG (RELAX NG)
रिलेक्स NG को प्रारंभ में OASIS के द्वारा विनिर्देशित किया जाता था, और अब एक ISO अंतर्राष्ट्रीय मानक भी है (DSDL के एक भाग के रूप में).
रिलेक्स NG स्कीमा को या तो एक XML आधारित वाक्यविन्यास (सिंटेक्स) में या एक अधिक जटिल गैर-XML वाक्यविन्यास (सिंटेक्स) में लिखा जा सकता है; दोनों वाक्यविन्यास समरुपीं (isomorphic) हैं और जेम्स क्लार्क का ट्रांग रूपांतरण उपकरण, जानकारी की क्षति के बिना उनके बीच रूपांतरण कर सकता है. XML स्कीमा की तुलना में रिलेक्स NG की परिभाषा और प्रमाणीकरण फ्रेमवर्क साधारण है, जो इसे काम में लेने में और क्रियान्वयन में आसान बनता है. इसमें डेटा टाइप फ्रेमवर्क प्लग-इन्स का उपयोग करने की क्षमता भी होती है; एक रिलेक्स NG स्कीमा लेखक को, उदाहरण के लिए, XML स्कीमा डेटाटाइप में परिभाषाओं को सुनिश्चित करने के लिए एक XML दस्तावेज में मान जरुरी हो सकता है.
[संपादित करें] स्कीमेट्रोन
स्कीमेट्रोन एक भाषा है जो एक XML दस्तावेज में प्रतिरूपों की उपस्थिति या अनुपस्थिति के बारे में मान्यताओं का खंडन करने के लिए है.
यह आमतौर पर xPath अभिव्यक्ति का उपयोग करती है.
[संपादित करें] ISO DSDL और अन्य स्कीमा भाषाएं
ISO DSDL (दस्तावेज़ स्कीमा विवरण भाषाएं) मानक छोटी स्कीमा भाषाओँ के एक व्यापक सेट को एक साथ लाती हैं, इनमें से प्रत्येक एक विशिष्ट समस्या पर लक्षित होती है.
DSDL में रिलेक्स NG पूर्ण और कॉम्पैक्ट वाक्यविन्यास, स्कीमेट्रोन खंडन भाषा, और डेटाटाइप्स को परिभाषित करने के लिए भाषाएं, सीमाओं को प्रदर्शित करने वाल केरेक्टर, पुनः नामकरण और प्रविष्टि विस्तार, और भिन्न प्रमाणकों के लिए दस्तावेज खंडों के नामस्पेस-आधारित अनुमार्गण शामिल हैं.
DSDL स्कीमा भाषाओं के पास अभी भी XML स्कीमा का विक्रेता समर्थन नहीं है, और ये कुछ सीमा तक, प्रकाशन के लिए XML स्कीमा की उपयोगिता की कमी के लिए औद्योगिक प्रकाशकों की एक सकल प्रतिक्रिया है.
कुछ स्कीमा भाषाएं न केवल एक विशेष XML प्रारूप की सरंचना का वर्णन करती हैं, बल्कि इस प्रारूप को सुनिश्चित करने वाली व्यक्तिगत XML फाइलों की प्रोसेसिंग को प्रभावित करने के लिए सीमित सुविधाएं भी पेश करती हैं.
DTDs और XSDs दोनों में यह क्षमता होती है; वे, उदाहरण के लिए, इन्फोसेट संवर्धन सुविधा और गुणधर्म डिफॉल्टस भी उपलब्ध कराते हैं.
रिलेक्स NG और स्कीमेट्रोन ये उपलब्ध नहीं कराते हैं.
[संपादित करें] संबंधित विनिर्देशन
XML से निकटता से सम्बंधित विनिर्देशन का एक क्लस्टर विकसित किया गया है, जो XML 1.0 के प्रारंभिक प्रकाशन के ठीक बाद शुरू हुआ.
इसमें शब्द XML का उपयोग इनमें से एक या अधिक तकनीकों के साथ किया जाता है, जिन्हें XML कोर के एक हिस्से के रूप में देखा जाता है.
- XML नेमस्पेस समान दस्तावेज को इस बात के लिए सक्षम बनाते हैं, कि इसमें XML तत्व, भिन्न शब्दावलियों से लिए गए गुणधर्म, बिना किसी नाम टकराव के शामिल हो सकें.
आवश्यक रूप से सभी सॉफ्टवेयर जिसे XML के समर्थन के लिए विज्ञापित किया जाता है, वह नामस्पेस का भी समर्थन करता है.
- XML आधार (XML Base)
xml:baseगुणधर्म को परिभाषित करता है, जिसका उपयोग एकमात्र XML तत्व के स्कोप के भीतर सापेक्ष URI सन्दर्भ के समाधान के लिए आधार तैयार करने के लिए किया जाता है.
- XML जानकारी सेट (The XML Information Set ) या XML इन्फोसेट (XML infoset ) जानकारी आइटमों (nformation items) के शब्दों में XML दस्तावेज के लिए एक सार डेटा मॉडल (abstract data model) का वर्णन करता है.
इन्फोसेट को सामान्यतः XML भाषाओं के विनिर्देशन में इस्तेमाल किया जाता है, इससे उन भाषाओँ के द्वारा अनुमति दिए जाने वाले XML निर्माण पर बाधाओं का वर्णन करने में सुविधा होती है.
- xml:id एक DTD में प्रयुक्त अर्थ में "ID गुणधर्म" के रूप में एक गुणधर्म नामित
xml:idफंक्शन्स की तुलना में स्वीकार करता है.
- XPath XPath expressions नामक एक वाक्यविन्यास को परिभाषित करता है, जो एक XML दस्तावेज में शामिल एक या अधिक आंतरिक घटकों (तत्व, गुणधर्म, और बहुत कुछ) की पहचान करता है.
XPath को अन्य कोर-XML विनिर्देशनों में और XML -एनकोडित डेटा तक पहुँचने के लिए प्रोग्रामिंग लायब्रेरीज में व्यापक रूप से इस्तेमाल किया जाता है.
- XSLT एक XML -आधारित वाक्यविन्यास से युक्त एक भाषा है, जिसका उपयोग XML दस्तावेजों को अन्य XML दस्तावेजों, HTML, या अन्य असंरचनात्मक प्रारूपों जैसे प्लेन पाठ्य या RTF में रूपांतरित करने के लिए किया जाता है. XSLT को XPath के साथ युग्मित किया जाता है, जिसका उपयोग यह इनपुट XML दस्तावेजों के अवयवों मुख्यतः तत्वों और गुणधर्मों को संबोधित करने के लिए करता है.
- XSL फोर्मेटिंग ऑब्जेक्ट्स या XSL-FO, XML दस्तावेज फोर्मेटिंग के लिए एक मार्क अप भाषा है, जिसका उपयोग अक्सर PDFs उत्पन्न करने के लिए किया जाता है.
- XQuery एक XML-उन्मुख क्वेरी भाषा है जिसे xPath और XML स्कीमा में प्रबलता से रूट किया जाता है.
यह XML का उपयोग करने, उसे चलाने, और उस पर वापिस लौटने की विधियां उपलब्ध कराता है.
- XML हस्ताक्षर XML अवयवों पर डिजिटल हस्ताक्षर बनाने के लिए प्रोसेसिंग नियमों और वाक्यविन्यास को परिभाषित करता है.
- XML एन्क्रिप्शन XML अवयवों को एनक्रिप्ट करने के लिए प्रोसेसिंग नियमों और वाक्यविन्यास (सिंटेक्स) को परिभाषित करता है.
कुछ अन्य विनिर्देशन जिन्हें "XML कोर" के भाग के रूप में लिया जाता है, वे XInclude, XLink, and XPointer सहित व्यापक अधिग्रहण की खोज में असफल रहे हैं.
[संपादित करें] इंटरनेट पर उपयोग
इंटरनेट पर डेटा अंतर्विनिमय में XML का उपयोग आम है.
RFC 3023 XML को भेजते समय उपयोग के लिए इंटरनेट मीडिया प्रकार के निर्माण के लिए नियम देता है. यह "application/xml" और "text/xml" प्रकारों को भी परिभाषित करता है, जो केवल इतना बताते हैं कि डेटा XML में है और इसके सिमेंटिक के बारे में कुछ नहीं है. समस्याओं की एन्कोडिंग के एक संभावी स्रोत के रूप में "text/xml" के उपयोग की आलोचना की गयी है, और अब यह पदावनत होने की प्रक्रिया में है.[10] RFC 3023 यह सलाह भी देता है कि XML आधारित भाषाएं "application/" में शुरू होने वाले और "+xml" में ख़त्म होने वाले मीडिया प्रकार देती हैं; उदाहरण के लिए SVG के लिए "application/svg+xml".
एक नेटवर्क संदर्भ में XML के उपयोग के लिए अतिरिक्त दिशानिर्देश RFC 3470 में पाए जा सकते हैं, और इन्हें IETF BCP 70 के रूप में भी जाना जाता है; यह दस्तावेज बहुत व्यापक रेंज का है और एक XML -आधारित भाषा के विकास और डिजाइनिंग के कई पहलुओं को कवर करता है.
[संपादित करें] प्रोग्रामिंग इंटरफेस
XML के डिजाइन लक्ष्यों में शामिल हैं "ऐसे प्रोग्राम लिखना आसान होगा जो XML दस्तावेजों को प्रोसेस करते हैं."[2] इस तथ्य के बावजूद, XML विनिर्देशन में इस बारे में लगभग कोई जानकारी नहीं होती कि ऐसी प्रोसेसिंग करने के लिए प्रोग्रामर्स को क्या करना चाहिए.
XML इन्फोसेट एक XML दस्तावेज के भीतर निर्माण को संदर्भित करने के लिए शब्दावली उपलब्ध कराता है, लेकिन यह इस बात पर पर मार्गदर्शन नहीं देता है कि इस जानकारी तक कैसे पहुंचा जाये. XML का उपयोग करने के लिए API की कई किस्में विकसित की गयी हैं और इनका उपयोग किया जाता है, और कुछ का मानकीकरण किया गया है.
XML प्रोसेसिंग के लिए उपस्थित APIs की प्रवृति इन श्रेणियों में आने की होती है:
- ट्री-ट्रावर्सल APIs एक प्रोग्रामिंग भाषा से सुलभ होते हैं, उदाहरण के लिए DOM.
- XML डेटा बाइंडिंग, जो एक XML दस्तावेज़ और प्रोग्रामिंग भाषा ऑब्जेक्ट्स के बीच स्वचालित अनुवाद उपलब्ध कराता है.
स्ट्रीम-उन्मुख सुविधाओं के लिए कम मेमोरी की जरुरत होती है और, विशिष्ट कार्यों के लिए जो एक XML दस्तावेज के रैखिक ट्रावर्सल पर आधारित होते हैं, वे अन्य विकल्पों की तुलना में अधिक तेज और सरल होते हैं.
ट्री-ट्रावर्सल और डेटा-बाइंडिंग APIs को प्रारूपिक रूप से अधिक मेमोरी के उपयोग की आवश्यकता होती है, लेकिन प्रोग्रामर्स के लिए इनका उपयोग करना अक्सर सुविधाजनक होता है; कुछ में xPath अभिव्यक्ति के उपयोग के माध्यम से दस्तावेज़ घटकों के घोषणात्मक सूचना एकत्रीकरण शामिल हैं.
XSLT को XML दस्तावेज रूपांतरण के घोषणात्मक वर्णन के लिए डिजाइन किया जाता है, और इसे सर्वर साइड पैकेज और वेब ब्राउजर्स दोनों में व्यापक रूप से क्रियान्वित किया जाता है.
XQuery अपनी कार्यक्षमता में XSLT को अतिव्यापित करता है, लेकिन इसे बड़े XML डेटाबेस की खोज के लिए अधिक डिजाइन किया गया है.
[संपादित करें] XML (SAX) के लिए साधारण API
SAX एक लेक्सिकल, घटना-संचालित इंटरफेस (event-driven interface) है, जिसमें एक दस्तावेज को क्रमानुसार पढ़ा जाता है, और इसके अवयवों को उपयोगकर्ता के डिजाइन के हैंडलर ऑब्जेक्ट पर भिन्न विधियों के लिए कॉलबैक के रूप में रिपोर्ट किया जाता है.
SAX का क्रियान्वयन तीव्रता और कुशलता से किया जा सकता है, लेकिन XML से यादृच्छिक रूप से जानकारी को निष्कर्षित करने के लिए इसका उपयोग करना कठिन है. चूंकि इसकी अनुप्रयोग लेखक पर एक बोझ बनाने की प्रवृति होती है, क्योंकि यह इस बात का ट्रैक रखता है कि दस्तावेज के कौन से भाग को प्रोसेस किया जा रहा है. यह ऐसी स्थितियों के लिए बेहतर है जिनमें जानकारी के विशेष प्रकारों को हमेशा एक ही तरीके से हैंडल किया जाता है, चाहे वे दस्तावेज में कहीं पर भी हों.
[संपादित करें] पुल पार्सिंग
पुल पार्सिंग[11] दस्तावेज के साथ आइटम्स की एक श्रृंखला के रूप में कार्य करता है जिन्हें इटरेटर डिजाइन प्रतिरूप का उपयोग करते हुए एक अनुक्रम में पढ़ा जाता है.
यह रिकर्सिव-डिसेंट पारसर्स के लेखन की अनुमति देता है, जिसमें कोड की सरंचना पार्सिंग मिरर्स का प्रदर्शन करती है, XML की सरंचना को पार्स किया जाता है, और पार्स किये गए मध्यवर्ती परिणामों का उपयोग किया जाता है, और पार्सिंग का प्रदर्शन करने वाली विधियों के भीतर स्थानीय चर का उपयोग किया जा सकता है, या इन्हें (विधि पैरामीटर के रूप में) fffनीचले स्तर की विधियों को भेजा जा सकता है, या उच्च-स्तरीय विधियों (विधि लौटाने के मान के रूप में) को लौटाया जा सकता है. पुल पारसर्स के उदाहरणों में शामिल हैं जावा प्रोग्रामिंग भाषा में StAX, PHP और सिस्टम में साधारण XML. Xml..NET फ्रेमवर्क में XmlReader.f
एक पुल पार्सर एक इटरेटर का निर्माण करता है जो एक XML दस्तावेज में क्रमानुसार भिन्न तत्वों, गुणधर्मों, और डेटा के पास जाता है.
वह कोड जो 'इटरेटर' का उपयोग करता है, वह वर्तमान आइटम का परिक्षण कर सकता है (बताने के लिए, उदाहरण के लिए, यह शुरुआत का तत्व है या अंत का तत्व है या पाठ्य है), और इसके गुणधर्मों की जांच कर सकता है (स्थानीय नाम, नामस्पेस, XML गुणधर्मों के मान, और पाठ्य का मान आदि), और इटरेटर को 'अगले' आइटम को स्थानांतरित भी कर सकता है. इस प्रकार से कोड दस्तावेज से जानकारी को निष्कर्षित कर सकता है, क्योंकि यह इसे ट्रावर्स करता है.
रिकर्सिव-डिसेंट दृष्टिकोण की प्रवृति होती है, डेटा को पार्सिंग करने वाले कोड में टाइप स्थानीय चर के रूप में रखना. जबकि SAX को, उदाहरण के लिए, तत्वों के एक ढेर में मध्यवर्ती डेटा को मानवीय रूप से बनाये रखने के लिए प्रारूपिक रूप से एक पार्सर की जरुरत होती है, ये तत्व पार्स किये जा रहे तत्वों के जनक तत्व होते हैं. पुल पार्सिंग कोड, SAX पार्सिंग कोड की तुलना में रखरखाव के लिए और समझने के लिए अधिक आसान होता है.
[संपादित करें] दस्तावेज़ ऑब्जेक्ट मॉडल (Document Object Model) (DOM)
DOM (दस्तावेज़ ऑब्जेक्ट मॉडल (Document Object Model)) एक इंटरफ़ेस- उन्मुख अनुप्रयोग प्रोग्रामिंग इंटरफेस है जो पूरे दस्तावेज के नेविगेशन के लिए अनुमति देता है, जैसे यह दस्तावेज के अवयवों को अभिव्यक्त करने वाले "नोड" ऑब्जेक्ट्स का एक ट्री हो.
एक DOM दस्तावेज़ को एक पार्सर के द्वारा बनाया जा सकता है, या इसे उपयोगकर्ताओं के द्वारा मानवीय रूप से उत्पन्न किया जा सकता है (सीमाओं के भीतर). DOM नोड्स में डेटा प्रकार एब्सट्रेक्ट होते हैं; क्रियान्वयन उनकी अपनी प्रोग्रामिंग भाषा-विशिष्ट बाईंडिंग्स उपलब्ध कराता है.
DOM क्रियान्वयन की प्रवृति अच्छी मेमोरी की होती है, क्योंकि इन्हें सामान्यतया इस बात की जरुरत होती है कि पूरा दस्तावेज मेमोरी में लोड किया जाये और इसके उपयोग की अनुमति से पहले ऑब्जेक्ट्स के एक ट्री का निर्माण किया जाये.
[संपादित करें] डेटा बाइंडिंग
XML प्रोसेसिंग API का अन्य रूप है XML डेटा बाईंडिंग, जहां दस्तावेज ऑब्जेक्ट मॉडल पार्सर के द्वारा निर्मित जिनेरिक वस्तुओं के विपरीत, XML डेटा को, प्रबलता से टाइप किये गए वर्गों, कस्टम के एक पदानुक्रम के रूप में उपलब्ध कराया जाता है.
यह दृष्टिकोण कोड के विकास को साधारण बनता है, और कई मामलों में, यह अनुमति देता है कि समस्याओं को रन टाइम के बजाय कम्पाइल के समय पहचाना जा सके. उदाहरण डेटा बाइंडिंग सिस्टम में शामिल है XML बाइडिंग के लिए जावा वास्तुकला (Java Architecture) (JAXB), .NET में XML अनुक्रमण, [12] C++ के लिए कोड संश्लेषण XSD (CodeSynthesis XSD) .[13][14]
{
[संपादित करें] डेटा प्रकार के रूप में XML (XML as data type)
XML के अन्य भाषाओं में प्रथम श्रेणी के डेटा प्रकार के रूप में प्रकट होने की शुरुआत है. ECMA स्क्रिप्ट/जावा स्क्रिप्ट भाषा के लिए XML (E4X) विस्तार हेतु ECMA स्क्रिप्ट, जावा स्क्रिप्ट के लिए दो विशिष्ट ऑब्जेक्ट्स ((XML और XML सूची)) को परिभाषित करता है, जो XML दस्तावेज नोड्स और XML दस्तावेज सूची का विभेदित ऑब्जेक्ट्स के रूप में समर्थन करता है और अभिभावक-बच्चे के सम्बन्ध को बताने वाले बिंदु संकेतन का उपयोग करता है.
E4X का समर्थन मोजिला 2.5+ ब्राउज़र और अडोब एक्शन स्क्रिप्ट के द्वारा किया जाता है, लेकिन इसे अधिक सार्वभौमिक रूप से अपनाया नहीं गया है. कुछ इसी तरह के एक संकेतन का प्रयोग माइक्रोसोफ्ट के LINQ कार्यान्वयन में Microsoft .NET 3.5 और अधिक के लिए किया जाता है, जबकि XJ जावा के लिए एक XML डेटा ऑब्जेक्ट क्रियान्वयन का एक IBM क्रियान्वयन है, जिसे 2005 में विकसित किया गया.
खुला स्रोत xmlsh अनुप्रयोग, जो XML मेनिपुलेशन के लिए विशेष लक्षणों से युक्त लिनक्स-जैसा शेल उपलब्ध कराता है, समान रूप से <[ ]> संकेतन का उपयोग करते हुए, XML के साथ एक डेटा टाइप के रूप में व्यवहार करता है.[15]
[संपादित करें] इतिहास
XML एक बड़े ISO मानक, SGML का पुनर्कार्य या एक प्रोफाइल है.
गतिशील जानकारी के प्रदर्शन के लिए SGML की बहुमुखी प्रतिभा को इंटरनेट के विकास से पहले 1980 के दशक के अंत में प्रारंभिक डिजिटल मिडिया प्रकाशकों के द्वारा समझा गया.[16][17]
1990 के दशक के मध्य तक SGML के कुछ उपयोगकर्ताओं ने तत्कालीन नये वर्ल्ड वाइड वेब का अनुभव प्राप्त किया था, और उनका विश्वास था कि विकास के दौरान वेब के सामने आने वाली कुछ समस्याओं के लिए SGML समाधान प्रस्तुत करता है. डेन कोनोली ने SGML को W3C गतिविधियों की सूची में शामिल किया जब वे 1995 में स्टाफ में शामिल हुए; कार्य की शुरुआत 1996 के मध्य में हुई जब सन माइक्रोसिस्टम के इंजिनियर जोन बोसाक ने एक चार्टर का विकास किया और सहयोगियों की भर्ती की. बोसाक ने उन लोगों के एक छोटे समुदाय को अच्छी तरह से जोड़ा, जो SGML और वेब दोनों का सामना कर चुके थे.[18]
XML का संकलन ग्यारह सदस्यों के एक कार्य दल द्वारा किया गया,[19] और इसे 150 सदस्यों (लगभग) के हित समूह का समर्थन प्राप्त हुआ.
हित समूह की मेलिंग सूची पर तकनीकी विवाद हुआ, और मुद्दों को सहमति के द्वारा हल किया गया, या उसके असफल होने पर कार्य दल के बहुमत वोट से इसे सुलझाया गया. डिजाइन फैसले और उनके रेश्नल्स के रिकॉर्ड का संकलन 4 दिसम्बर, 1997 को माइकल स्पर्बर्ग मेकक्वीन के द्वारा किया गया.[20] जेम्स क्लार्क ने कार्य दल के तकनीकी नेता के रूप में कार्य किया, मुख्य रूप से एम्प्टी तत्व "<empty/>" वाक्यविन्यास में योगदान दिया और नाम "XML" दिया. अन्य नाम जिन्हें विचार के लिए प्रस्तुत किया था, इनमें शामिल थे, "MAGMA" (Minimal Architecture for Generalized Markup Applications), "SLIM" (Structured Language for Internet Markup) और "MGML" (Minimal Generalized Markup Language). मूल रूप से विनिर्देशन के सह-संपादक थे [[टिम ब्रे/0} और माइकल स्पर्बर्ग-मेकक्वीन.|टिम ब्रे/0} और माइकल स्पर्बर्ग-मेकक्वीन.]] परियोजना के आधे रास्ते में ब्रे ने नेट्स्केप के साथ एक समझौता किया, जिसमें माक्रोसॉफ्ट से विरोध को उत्तेजित किया. ब्रे को अस्थायी रूप से संपादक के पद से इस्तीफा देने के लिए कहा गया. जिससे कार्य दल में तीव्र विवाद उत्पन्न हुआ, अंततः इसे माइक्रोसोफ्ट के जीन पाओली को तीसरे संपादक के नियुक्त करके हल किया गया.
XML कार्य दल की बैठक कभी भी आमने सामने नहीं हुई; डिजाइन को ईमेल और टेलीवार्ता के संयोजन का उपयोग करते हुए पूरा किया गया.
प्रमुख डिजाइन का निर्णय जुलाई और नवम्बर 1996 के बीच बीस हफ्तों के गहन कार्य के बाद लिया गया. जब XML विनिर्देशन के पहले क्रियाशील ड्राफ्ट को प्रकाशित किया गया. [21] इसके आगे डिजाइन का कार्य 1997 में जारी रहा, और XML 1.0 10 फरवरी, 1998 को एक W3C सिफारिश बन गया.
XML 1.0 ने कार्य दल के लक्ष्यों को प्राप्त कर लिया, ये लक्ष्य थे, इंटरनेट की उपयोगिता, सामान्य उद्देश्य उपयोगिता, SGML अनुकूलता, सॉफ्टवेयर की प्रोसेसिंग के आसान विकास को सहज बनाना, वैकल्पिक विशेषताओं का न्यूनीकरण, स्पष्टता, औपचारिकता, संक्षिप्ति और संलेखन में आसानी.
अपने पूर्ववर्ती SGML की तरह, XML कुछ बेमानी वाक्यात्मक निर्माणों के लिए अनुमति देता है और इसमें एलिमेंट को पहचानने वालों की पुनरावृति भी शामिल है. इन मामलों में, टार्सनेस को इसकी सरंचना में आवश्यक नहीं मन जाता था.
[संपादित करें] स्रोत
XML एक ISO मानक SGML का प्रोफाइल है, और अधिकांश XML अपरिवर्तित SGML से आता है.
SGML से आते हैं, तार्किक और भौतिक सरंचनाओं (तत्व और प्रविष्टियां) का पृथक्करण, व्याकरण आधारित सत्यापन की उपलब्धता (DTDs), डेटा और मेटाडेटा का पृथक्करण (एलिमेंट और गुणधर्म), मिश्रति अवयव, अभिव्यक्ति से प्रोसेसिंग का पृथक्करण (प्रोसेसिंग निर्देश), और डिफॉल्ट एंगल-ब्रेकेट वाक्यविन्यास. SGML घोषणा को हटा दिया गया (XML का निश्चित परिसीमक सेट है और यह यूनिकोड को दस्तावेज केरेक्टर सेट के रूप में अपनाता है)
XML के लिए प्रौद्योगिकी के अन्य स्रोत थे, पाठ्य एन्कोडिंग पहल (TEI), जो एक 'स्थानांतर वाक्यविन्यास' के रूप में उपयोग हेतु SGML के प्रोफाइल को परिभाषित करता था; HTML, जिसमें एलिमेंट्स अपने स्रोतों के साथ तुल्यकालिक थे, स्रोत एन्कोडिंग से दस्तावेज केरेक्टर सेट का पृथक्करण, xml:lang गुणधर्म, और HTTP नोशन जिसे मेटाडेटा स्रोत में शामिल करता है, बजाय एक लिंक की घोषणा कि जरुरत के.
स्प्रेड (SPREAD) की विस्तृत सन्दर्भ कोंक्रिट सिंटेक्स (ERCS) परियोजना (मानकीकरण परियोजना पूर्व एशियाई दस्तावेज़ के संबंध में)ISO सम्बंधित चीन/जापान/कोरिया दस्तावेज़ प्रोसेसिंग विशेषज्ञ समूह की परियोजना XML 1.0 के नामकरण के नियमों का आधार थी; स्प्रेड (SPREAD) ने एक षोडश आधारी आंकिक केरेक्टर सन्दर्भ और सभी यूनिकोड केरेक्टर्स को उपलब्ध कराने के लिए सन्दर्भ की अवधारणा की भी शुरुआत की. ERCS के समर्थन के लिए, XML और बेहतर HTML, SGML मानक IS 8879 को 1996 में संशोधित किया गया और WebSGML रूपांतरों के साथ 1998 में संशोधित किया गया. Xml शीर्ष ने इसो HyTime का अनुसरण किया.
चर्चा के दौरान विचार विकसित हुए जो XML में नोवल थे, इनमें एन्कोडिंग जांच और एन्कोडिंग हेडर के लिए एल्गोरिथम शामिल था, और साथ ही प्रोसेसिंग निर्देश लक्ष्य, xml:space गुणधर्म, और नया एम्प्टी एलिमेंट टैग्स के लिए निकट परिसीमक भी शामिल था.
अच्चे प्रकार से निर्माण का नोशन जो मानकता के विरोध में था (जो एक स्कीमा के बिना पार्सिंग को सक्षम बनता है) उसे पहले XML में औपचारिक रूप दिया गया, हालांकि इसे इलेक्ट्रॉनिक बुक प्रोद्योगिकी "Dynatext" सॉफ्टवेयर में सफलतापूर्वक क्रियान्वित किया गया [22]; वाटरलू विश्वविद्यालय न्यू ओक्स्फोर्ड इंग्लिश डिक्शनरी प्रोजेक्ट से सॉफ्टवेयर; युनिस्कोप, टोकियो में RISP LISP SGML पाठ्य प्रोसेसर; यु एस आर्मी मिसाइल कमांड IADS हाइपर टेक्स्ट सिस्टम; मेंटर ग्राफिक्स कोनटेक्स्ट; इंटरलीफ एंड ज़ेरोक्स पब्लिशिंग सिस्टम.
[संपादित करें] संस्करण
XML के दो मौजूदा संस्करण हैं. पहला XML 1.0 , जिसे 1998 में परिभाषित किया गया.
तब से इसमें मामूली बदलाव आया है, इसे कोई नया संस्करण नंबर नहीं दिया गया है, और वर्तमान में यह अपने पांचवे संस्करण में है, इसे 26 नवम्बर 2008 को प्रकाशित किया गया. इसे व्यापक रूप से क्रियान्वित किया गया है और सामान्य उपयोग के लिए अभी भी इसकी सलाह दी जाती है.
दूसरा, XML 1.1 , 4 फरवरी 2004 को प्रकाशित किया गया, उसी दिन XML 1.0 के तीसरे संस्करण को प्रकाशित किया गया था [23], और वर्तमान में इसका दूसरा संस्करण 16 अगस्त 2006 को प्रकाशित किया गया है.
इसमें- कुछ विवादास्पद - विशेषताएं हैं- जो विशिष्ट मामलों में XML के उपयोग को आसान बनाती हैं [24]-मुख्य रूप से EBCDIC प्लेटफोर्म पर लाइन-एंडिंग केरेक्टर के उपयोग को सक्षम बनाना और यूनिकोड 3.2 से अनुपस्थित स्क्रिप्ट और केरेक्टर का उपयोग. XML 1.1 को बहुत व्यापक रूप से क्रियान्वित नहीं किया जाता है, इसके उपयोग की सलाह केवल उन लोगों को दी जाती है जिन्हें इसकी अद्वितीय विशेषताओं की जरुरत है. [25]
इसके पांचवां संस्करण के जारी होने से पहले, XML 1.0 XML 1.1 से अलग था, क्योंकि इसमें एलिमेंट और गुणधर्म नाम और अद्वितीय आईडनटीफायर में उपयोग के लिए उपलब्ध केरेक्टर की स्ट्रिक्टर आवश्यकता अलग थी: XML 1.0 के पहले चार संस्करणों में केरेक्टर्स को विशेष रूप से यूनिकोड मानक (यूनिकोड 2.0 से यूनिकोड 3.2.) के विशेष संस्करण का उपयोग करते हुए स्पष्ट किया गया. पांचवां संस्करण XML 1.1 की प्रणाली का विकल्प है, जो भविष्य के लिए अधिक प्रमाणित है लेकिन अतिरेक को कम करता है. XML 1.0 के पांचवे संस्करण और XML 1.1 के सभी संस्करणों में लिया गया दृष्टिकोण यह है कि केवल विशेष केरेक्टर्स को नाम में इनकार किया जाता है, और बाकी सब चीजों की अनुमति दी जाती है, ताकि यूनिकोड के अगले संस्करण में उपयुक्त नाम केरेक्टर का उपयोग शामिल किया जा सके.
पांचवें संस्करण में, XML नामों में बलिनेज, चाम, या फोनेशियन में केरेक्टर शामिल हो सकते हैं, शेष को यूनिकोड 3.2 के बाद से शामिल किया गया है.
लगभग किसी भी यूनिकोड कोड बिंदु का उपयोग केरेक्टर डेटा में किया जा सकता है, और XML 1.0 या 1.1 दस्तावेज के गुणधर्म मान का उपयोग भी किया जा सकता है.
केरेक्टर डेटा और गुणधर्म मान में XML 1.1 XML 1.0 की तुलना में अधिक नियंत्रण केरेक्टर का उपयोग करता है, लेकिन "रोबस्तनेस" के लिए अधिकांश नियंत्रण केरेक्टर जिन्हें XML 1.1 में शामिल किया गया है, उन्हें आंकिक केरेक्टर सन्दर्भ में अभिव्यक्त किया गया है.
XML 1.1 में समर्थित नियंत्रण केरेक्टर दो रेखा के ब्रेक कोड हैं, और इनके साथ वाईट स्पेस की तरह व्यवहार किया जाना चाहिए.
वाईट स्पेस केरेक्टर केवल नियंत्रण कोड हैं जिन्हें प्रत्यक्ष रूप से लिखा जा सकता है.
एक XML 2.0 पर चर्चा हुई है, हालांकि ऐसी परियोजना के लिए किसी भी संगठन ने घोषणा नहीं की है.
XML-SW (SW for skunk works), XML के एक मूल विकासक के द्वारा लिखित है, इसमें इस बात पर प्रस्ताव है कि XML 2.0 कैसा दिखेगा: वाक्यविन्यास से DTDs का उन्मूलन, नामस्पेस का एकीकरण, XML आधार, और XML सूचना सेट (इन्फोसेट ), आधार मानक में.
वर्ल्ड वाइड वेब कंसोर्टियम के पास भी एक XML द्विचर विशेषता कार्य समूह है जो XML इन्फोसेट के एक द्विआधारी कूटबन्धन के लिए मामलों और गुणधर्मों पर प्रारंभिक अनुसंधान कर रहे हैं. कार्य दल किसी भी अधिकारिक मानक के उत्पादन के लिए चार्टर्ड नहीं है. चूंकि XML परिभाषा के अनुसार पाठ्य आधारित है, ITU-T और ISO भ्रम से बचने के लिए अपने द्विआधारी इन्फोसेट के लिए नाम फास्ट इन्फोसेट का उपयोग कर रहे हैं. (देखें ITU-T Rec. X.891 | ISO/IEC 24824-1).
[संपादित करें] इन्हें भी देखें
| विकिपुस्तक has more on the topic of |
- Category:XML
- बाइनरी XML
- XML प्रोटोकॉल
- XML मार्कअप भाषाओं की सूची
- Category:XML-based standards
- लेआउट इंजन (XML) की तुलना
- देता क्रमीकरण प्रारूप की तुलना
- कंप्यूटर मानकों की सूची
- खुला दस्तावेज (OpenDocument)
[संपादित करें] संदर्भ
- ↑ "W3C® DOCUMENT LICENSE". http://www.w3.org/Consortium/Legal/2002/copyright-documents-20021231.
- ↑ 2.0 2.1 "XML 1.0 Origin and Goals". http://www.w3.org/TR/REC-xml/#sec-origin-goals. अभिगमन तिथि: July 2009.
- ↑ "XML Applications and Initiatives". http://xml.coverpages.org/xmlApplications.html.
- ↑ "Introduction to iWork Programming Guide. Mac OS X Reference Library". Apple. http://developer.apple.com/mac/library/documentation/AppleApplications/Conceptual/iWork2-0_XML/Chapter01/Introduction.html.
- ↑ "Characters vs. Bytes". http://www.tbray.org/ongoing/When/200x/2003/04/26/UTF.
- ↑ "Autodetection of Character Encodings". http://www.w3.org/TR/REC-xml/#sec-guessing.
- ↑ इसकी अनुमति है, लेकिन इसकी सलाह नहीं दी जाती, कि XML एंटिटी मान में "<" का उपयोग किया जाये: एक्सटेंसिबल मार्कप लेंग्वेज (XML) 1.0 (पांचवां संस्करण):एंटिटी वेल्यु डेफिनिशन
- ↑ "W3C I18N FAQ: HTML, XHTML, XML and Control Codes". http://www.w3.org/International/questions/qa-controls.
- ↑ "Articles tagged with “draconian”". http://diveintomark.org/tag/draconian.
- ↑ "xml-dev — Fw: An I-D for text/xml, application/xml, etc". Lists.xml.org. 2004-07-25. http://lists.xml.org/archives/xml-dev/200407/msg00208.html. अभिगमन तिथि: 2009-07-31.
- ↑ पुश, पुल, नेक्स्ट! बॉब डू कार्मे द्वारा, XML.com पर
- ↑ "XML Serialization in the .NET Framework". Msdn.microsoft.com. http://msdn.microsoft.com/en-us/library/ms950721.aspx. अभिगमन तिथि: 2009-07-31.
- ↑ "An Introduction to XML Data Binding in C". Artima.com. 2007-05-04. http://www.artima.com/cppsource/xml_data_binding.html. अभिगमन तिथि: 2009-07-31.
- ↑ "CodeSynthesis XSD — XML Data Binding for C". Codesynthesis.com. http://www.codesynthesis.com/products/xsd/. अभिगमन तिथि: 2009-07-31.
- ↑ http://www.xmlsh.org/CoreSyntax
- ↑ Bray, Tim (February 2005). "A conversation with Tim Bray: Searching for ways to tame the world’s vast stores of information". Association for Computing Machinery's "Queue site". http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=282. अभिगमन तिथि: April 16 2006.
- ↑ edited by Sueann Ambron and Kristina Hooper ; foreword by John Sculley. (1988). "Publishers, multimedia, and interactivity". Interactive multimedia. Cobb Group. आई॰ऍस॰बी॰ऍन॰ 1-55615-124-1.
- ↑ Eliot Kimber (2006). "XML is 10". http://drmacros-xml-rants.blogspot.com/#116460437782808906.
- ↑ कार्यदल मूलतः "सम्पादकीय समीक्षा बोर्ड" कहलाता था. मूल सदस्य और सात जिन्हें पहले संस्करण के पूरा होने से पहले जोड़ा गया, इन्हें http://www.w3.org/TR/1998/REC-xml-19980210 पर XML सिफारिश के पहले संस्करण के अंत पर सूचीबद्ध किया गया है,
- ↑ "Reports From the W3C SGML ERB to the SGML WG And from the W3C XML ERB to the XML SIG". W3.org. http://www.w3.org/XML/9712-reports.html. अभिगमन तिथि: 2009-07-31.
- ↑ "Extensible Markup Language (XML)". W3.org. 1996-11-14. http://www.w3.org/TR/WD-xml-961114.html. अभिगमन तिथि: 2009-07-31.
- ↑ Jon Bosak, Sun Microsystems (2006-12-07). "Closing Keynote, XML 2006". 2006.xmlconference.org. http://2006.xmlconference.org/proceedings/162/presentation.html. अभिगमन तिथि: 2009-07-31.
- ↑ एक्स्टेंसिबल मार्कअप भाषा (XML) 1.0 (तीसरा संस्करण)
- ↑ "Extensible Markup Language (XML) 1.1 (Second Edition) – Rationale and list of changes for XML 1.1". W3C. http://www.w3.org/TR/xml11/#sec-xml11. अभिगमन तिथि: 2006-12-21.
- ↑ Harold, Elliotte Rusty (2004). Effective XML. Addison-Wesley. pp. 10–19. आई॰ऍस॰बी॰ऍन॰ 0321150406. http://www.cafeconleche.org/books/effectivexml/.
[संपादित करें] आगे पठन
- ISO 8879:1986 (SGML) का परिशिष्ट A
- Lawrence A. Cunningham (2005). "Language, Deals and Standards: The Future of XML Contracts". Washington University Law Review. SSRN 900616.
- Bosak, Jon; Tim Bray (May 1999). "XML and the Second-Generation Web". Scientific American.XML और दूसरी पीढी के वेब पर ऑनलाइन.
[संपादित करें] बाहरी लिंक
- W3C XML होमपेज
- चार्ल्स गोल्डफ्राब द्वारा सामान्यकृत मार्कअप का परिचय
- सीन केली द्वारा XML के साथ गलतियां
- गेविन निकोल द्वारा बहुभाषी WWW
- रिक जेल्लिफ्फे द्वारा विस्तारित संदर्भ कोंक्रीट सिंटेक्स पर अवलोकन
- जोन बोसाक के द्वारा XML, जावा और वेब का भविष्य
- W3schools में XML ट्यूटोरियल
- XML.gov
- थिंकिंग XML: डी XML डिकेड युचे ओग्बुजी के द्वारा
- XML: टेन इयर एनिवर्सरी इलियट किम्बर द्वारा
- फाइव इयर्स लेटर, XML....साइमन सेंट लौरेंट द्वारा
- 23 XML फेलेकीज टू वाच आउट फॉर सीन मेक ग्रथ द्वारा
- W3C XML इस टेन! XML 10 वर्ष प्रेस विज्ञप्ति
- REDIRECT Template:W3C standards
- Pages containing cite templates with deprecated parameters
- लेख जिनमें संभावित तिथि के आंकड़े प्रयोग हुए हैं-2009
- XML
- मार्कअप भाषाएं
- विश्व व्यापी वेब मानक संघ
- तकनीकी संचार
- ग्रंथ सूची फ़ाइल प्रारूप
- कंप्यूटर फ़ाइल प्रारूप
- खुले प्रारूप
- डेटा मॉडलिंग भाषाएं
- डेटा क्रमीकरण प्रारूप
- अनुप्रयोग परत प्रोटोकॉल
- प्रस्तुति परत प्रोटोकॉल