एक्सएमएल: Difference between revisions

From Vigyanwiki
(Created page with "{{Short description|Markup language by the W3C for encoding of data}} {{Other uses}} {{Infobox technology standard | title = XML (standard) | image = Extensible Markup Languag...")
 
No edit summary
 
(7 intermediate revisions by 3 users not shown)
Line 2: Line 2:
{{Other uses}}
{{Other uses}}
{{Infobox technology standard
{{Infobox technology standard
| title = XML (standard)
| title = एक्सएमएल (मानक)
| image = Extensible Markup Language (XML) logo.svg
| image = Extensible Markup Language (XML) logo.svg
| first_published = {{Start date and age|1998|2|10}}
| first_published = {{Start date and age|1998|2|10}}
| status = Published, [[W3C recommendation]]
| status = प्रकाशित, [[डब्ल्यू3सी अनुशंसा]]
| year_started = {{Start date and age|1996}}
| year_started = {{Start date and age|1996}}
| editors = [[Tim Bray]], [[Jean Paoli]], [[Michael Sperberg-McQueen]], Eve Maler, François Yergeau, [[John W. Cowan]]
| editors = [[टिम ब्रे]], [[जीन पाओली]], [[माइकल स्परबर्ग-मैकक्वीन]], ईव मालेर, फ्रांकोइस येरग्यू, [[जॉन डब्ल्यू. कोवान]]
| base_standards = [[SGML]]
| base_standards = [[एसजीएमएल]]
| long_name = Extensible Markup Language
| long_name = एक्सटेंसिबल मार्कअप लैंग्वेज
| related_standards = [[W3C XML Schema]]
| related_standards = [[डब्ल्यू3सी एक्सएमएल स्कीम]]
| abbreviation = XML
| abbreviation = एक्सएमएल
| domain = [[Serialization]]
| domain = [[क्रमबद्धता]]
| version = 1.1 (2nd ed.)
| version = 1.1 (2nd ed.)
| version_date = {{Start date and age|2006|9|29}}
| version_date = {{Start date and age|2006|9|29}}
| organization = [[World Wide Web Consortium]] (W3C)
| organization = [[वर्ल्ड वाइड वेब कंसोर्टियम]] (डब्ल्यू3सी)
| website = {{URL|https://www.w3.org/xml}}
| website = {{URL|https://www.w3.org/xml}}
}}
}}
{{Infobox file format
{{Infobox file format
| name = XML (file format)
| name = एक्सएमएल (फ़ाइल स्वरूप)
| extension = .xml
| extension = .xml
|_nomimecode = on
|_nomimecode = ऑन
| mime = <code>application/xml</code>, <code>text/xml</code><ref>{{cite web |url=http://www.rfc-editor.org/rfc/rfc7303.txt |title=XML Media Types, RFC 7303 |publisher=Internet Engineering Task Force |date=July 2014}}</ref>
| mime = <code>application/xml</code>, <code>text/xml</code><ref>{{cite web |url=http://www.rfc-editor.org/rfc/rfc7303.txt |title=XML Media Types, RFC 7303 |publisher=Internet Engineering Task Force |date=July 2014}}</ref>
| uniform_type = public.xml
| uniform_type = public.xml
| conforms_to = public.text
| conforms_to = public.text
| magic = <code><?xml</code>
| magic = <code><?xml</code>
| owner = [[World Wide Web Consortium]]
| owner = [[वर्ल्ड वाइड वेब कंसोर्टियम]]
| genre = [[Markup language]]
| genre = [[मार्कअप भाषा]]
| extended_from = [[Standard Generalized Markup Language|SGML]]
| extended_from = [[मानक सामान्यीकृत मार्कअप भाषा|एसजीएमएल]]
| extended_to = [[List of XML markup languages|Numerous languages]], including [[XHTML]], [[RSS]], [[Atom (standard)|Atom]], and [[KML]]
| extended_to = [[एक्सएमएल मार्कअप भाषाओं की सूची|कई भाषाएं]], जिनमें [[एक्सएचटीएमएल]], [[आरएसएस]], [[एटम (मानक)|एटम]], और [[केएमएल]] सम्मिलित हैं।
| standard = {{Plainlist|
| standard = {{Plainlist|
* [http://www.w3.org/TR/2008/REC-xml-20081126/ 1.0, 5th ed.] ({{release date|2008|11|26}})
* [http://www.w3.org/TR/2008/REC-xml-20081126/ 1.0, 5th ed.] ({{release date|2008|11|26}})
* [http://www.w3.org/TR/2006/REC-xml11-20060816/ 1.1, 2nd ed.] ({{release date|2006|08|16}})
* [http://www.w3.org/TR/2006/REC-xml11-20060816/ 1.1, 2nd ed.] ({{release date|2006|08|16}})
   }}
   }}
| open = Yes
| open = हां
| free = Yes
| free = हां
}}
}}
एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) एक मार्कअप लैंग्वेज और फाइल फॉर्मेट है, जो मनमाने डेटा को स्टोर करने, ट्रांसमिट करने और फिर से बनाने के लिए है। यह एक प्रारूप में इलेक्ट्रॉनिक दस्तावेज़ों को एन्कोडिंग के लिए नियमों का एक सेट परिभाषित करता है जो मानव-पठनीय माध्यम | मानव-पठनीय और मशीन-पठनीय डेटा | मशीन-पठनीय दोनों है। वर्ल्ड वाइड वेब कंसोर्टियम का XML 1.0 विशिष्टता<ref>{{cite web |url=http://www.w3.org/TR/REC-xml |title=एक्सएमएल 1.0 विशिष्टता|publisher=World Wide Web Consortium |access-date=22 August 2010}}</ref> 1998 का<ref>{{Cite web|url=https://www.w3.org/TR/1998/REC-xml-19980210.html|title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.0|website=www.w3.org}}</ref> और कई अन्य संबंधित विनिर्देश<ref>{{cite web |url=http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf |title=XML और सिमेंटिक वेब W3C मानक समयरेखा|website=Dblab.ntua.gr |access-date=14 August 2016 |archive-date=24 April 2013 |archive-url=https://web.archive.org/web/20130424125723/http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf |url-status=dead }}</ref>—उनमें से सभी मुक्त खुले मानक—XML को परिभाषित करते हैं।<ref>{{cite web |title=W3C दस्तावेज़ लाइसेंस|url=https://www.w3.org/Consortium/Legal/2015/doc-license|website=W3.org|access-date=24 July 2020}}</ref>
'''एक्स्टेंसिबल मार्कअप भाषा (एक्सएमएल)''' मार्कअप भाषा और फाइल फॉर्मेट है, जो इच्छानुसार डेटा को स्टोर करने, ट्रांसमिट करने और फिर से बनाने के लिए है। यह प्रारूप में इलेक्ट्रॉनिक दस्तावेज़ों को एन्कोडिंग के लिए नियमों का सेट परिभाषित करता है जो मानव-पठनीय माध्यम या मानव-पठनीय और मशीन-पठनीय डेटा या मशीन-पठनीय दोनों है। वर्ल्ड वाइड वेब कंसोर्टियम का एक्सएमएल 1.0 विशिष्टता <ref>{{cite web |url=http://www.w3.org/TR/REC-xml |title=एक्सएमएल 1.0 विशिष्टता|publisher=World Wide Web Consortium |access-date=22 August 2010}}</ref> 1998 में <ref>{{Cite web|url=https://www.w3.org/TR/1998/REC-xml-19980210.html|title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.0|website=www.w3.org}}</ref> और कई अन्य संबंधित विनिर्देश <ref>{{cite web |url=http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf |title=XML और सिमेंटिक वेब W3C मानक समयरेखा|website=Dblab.ntua.gr |access-date=14 August 2016 |archive-date=24 April 2013 |archive-url=https://web.archive.org/web/20130424125723/http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf |url-status=dead }}</ref> उनमें से सभी मुक्त खुले मानक एक्सएमएल को परिभाषित करते हैं।<ref>{{cite web |title=W3C दस्तावेज़ लाइसेंस|url=https://www.w3.org/Consortium/Legal/2015/doc-license|website=W3.org|access-date=24 July 2020}}</ref>
XML के डिजाइन लक्ष्यों में इंटरनेट पर सरलता, व्यापकता और उपयोगिता पर जोर दिया गया है।<ref name="XML Goals">{{cite web |title=एक्सएमएल 1.0 उत्पत्ति और लक्ष्य|url=http://www.w3.org/TR/REC-xml/#sec-origin-goals|website=W3.org |access-date=14 August 2016}}</ref> यह अलग-अलग भाषाओं के लिए यूनिकोड के माध्यम से मजबूत समर्थन वाला टेक्स्ट डेटा प्रारूप है। यद्यपि XML का डिज़ाइन दस्तावेज़ों पर केंद्रित है, भाषा का व्यापक रूप से स्वैच्छिक डेटा संरचनाओं के प्रतिनिधित्व के लिए उपयोग किया जाता है<ref>{{cite journal |title=एक्सएमएल की चरम सीमा|first=Philip |last=Fennell |date=June 2013 |journal=XML London 2013 |doi=10.14337/XMLLondon13.Fennell01 |url=http://xmllondon.com/2013/presentations/fennell/ |pages=80–86 |isbn=978-0-9926471-0-0|doi-access=free }}</ref> जैसे कि वेब सेवाओं में उपयोग किए जाने वाले।


एक्सएमएल-आधारित भाषाओं की परिभाषा में सहायता के लिए कई एक्सएमएल स्कीमा मौजूद हैं, जबकि प्रोग्रामर ने एक्सएमएल डेटा के प्रसंस्करण में सहायता के लिए कई एप्लिकेशन प्रोग्रामिंग इंटरफेस (एपीआई) विकसित किए हैं।


== सिंहावलोकन ==
एक्सएमएल के डिजाइन लक्ष्यों में इंटरनेट पर सरलता, व्यापकता और उपयोगिता पर बल दिया गया है।<ref name="XML Goals">{{cite web |title=एक्सएमएल 1.0 उत्पत्ति और लक्ष्य|url=http://www.w3.org/TR/REC-xml/#sec-origin-goals|website=W3.org |access-date=14 August 2016}}</ref> यह अलग-अलग भाषाओं के लिए यूनिकोड के माध्यम से सशक्त समर्थन वाला टेक्स्ट डेटा प्रारूप है। यद्यपि एक्सएमएल का डिज़ाइन दस्तावेज़ों पर केंद्रित है, भाषा का व्यापक रूप से स्वैच्छिक डेटा संरचनाओं के प्रतिनिधित्व के लिए उपयोग किया जाता है <ref>{{cite journal |title=एक्सएमएल की चरम सीमा|first=Philip |last=Fennell |date=June 2013 |journal=XML London 2013 |doi=10.14337/XMLLondon13.Fennell01 |url=http://xmllondon.com/2013/presentations/fennell/ |pages=80–86 |isbn=978-0-9926471-0-0|doi-access=free }}</ref> जैसे कि वेब सेवाओं में उपयोग किए जाता है।
XML का मुख्य उद्देश्य क्रमांकन है, अर्थात मनमाने डेटा का भंडारण, संचारण और पुनर्निर्माण करना। सूचनाओं के आदान-प्रदान के लिए दो अलग-अलग प्रणालियों के लिए, उन्हें एक फ़ाइल प्रारूप पर सहमत होने की आवश्यकता है। XML इस प्रक्रिया का मानकीकरण करता है। XML सूचना का प्रतिनिधित्व करने के लिए भाषा के अनुरूप है।<ref name="XmlForDummies">{{cite book |last1=Dykes |first1=Lucinda |title=डमियों के लिए एक्सएमएल|date=2005 |publisher=Wiley |location=Hoboken, N.J. |isbn=978-0-7645-8845-7 |edition=4th}}</ref>{{Rp|1}}
एक मार्कअप भाषा के रूप में, XML लेबल, वर्गीकृत और जानकारी को संरचनात्मक रूप से व्यवस्थित करता है।<ref name="XmlForDummies" />{{Rp|11}} XML टैग डेटा संरचना का प्रतिनिधित्व करते हैं और इसमें मेटाडेटा होता है। टैग के भीतर डेटा है, जो एक्सएमएल मानक निर्दिष्ट तरीके से एन्कोड किया गया है।<ref name="XmlForDummies" />{{Rp|11}} एक अतिरिक्त XML स्कीमा (XSD) XML की व्याख्या और सत्यापन के लिए आवश्यक मेटाडेटा को परिभाषित करता है। (इसे कैनोनिकल स्कीमा भी कहा जाता है।)<ref name="XmlForDummies" />{{Rp|135}} एक XML दस्तावेज़ जो बुनियादी XML नियमों का पालन करता है, अच्छी तरह से बना हुआ है; जो इसकी स्कीमा का पालन करता है वह मान्य है।<ref name="XmlForDummies" />{{Rp|135}}
इंटरनेट का इतिहास#इंटरनेट इंजीनियरिंग टास्क फोर्स :RFC:7303 (जो पुराने RFC:3023 का स्थान लेता है), XML संदेश में उपयोग के लिए मीडिया प्रकार के निर्माण के लिए नियम प्रदान करता है। यह तीन मीडिया प्रकारों को परिभाषित करता है: <code>application/xml</code> (<code>text/xml</code> एक उपनाम है), <code>application/xml-external-parsed-entity</code> (<code>text/xml-external-parsed-entity</code> एक उपनाम है) और <code>application/xml-dtd</code>. उनका उपयोग उनके आंतरिक शब्दार्थ को उजागर किए बिना कच्ची XML फ़ाइलों को प्रसारित करने के लिए किया जाता है। RFC 7303 आगे अनुशंसा करता है कि XML-आधारित भाषाओं में समाप्त होने वाले मीडिया प्रकार दिए जाएं <code>+xml</code>, उदाहरण के लिए, <code>image/svg+xml</code> स्केलेबल वेक्टर ग्राफिक्स के लिए।


नेटवर्क के संदर्भ में XML के उपयोग के लिए आगे के दिशानिर्देश :RFC:3470 में दिखाई देते हैं, जिसे IETF BCP 70 के रूप में भी जाना जाता है, एक दस्तावेज़ जिसमें XML-आधारित भाषा को डिजाइन करने और तैनात करने के कई पहलू शामिल हैं।
एक्सएमएल-आधारित भाषाओं की परिभाषा में सहायता के लिए कई एक्सएमएल स्कीमा उपस्थित हैं, जबकि प्रोग्रामर ने एक्सएमएल डेटा के प्रसंस्करण में सहायता के लिए कई एप्लिकेशन प्रोग्रामिंग इंटरफेस (एपीआई) विकसित किए हैं।
 
== अवलोकन ==
एक्सएमएल का मुख्य उद्देश्य क्रमांकन है, अर्थात इच्छानुसार डेटा का स्टोरेज, संचारण और पुनर्निर्माण करना या सूचनाओं के आदान-प्रदान के लिए दो अलग-अलग प्रणालियों के लिए, उन्हें फ़ाइल प्रारूप पर सहमत होने की आवश्यकता है। एक्सएमएल इस प्रक्रिया का मानकीकरण करता है। एक्सएमएल सूचना का प्रतिनिधित्व करने के लिए भाषा के अनुरूप है।<ref name="XmlForDummies">{{cite book |last1=Dykes |first1=Lucinda |title=डमियों के लिए एक्सएमएल|date=2005 |publisher=Wiley |location=Hoboken, N.J. |isbn=978-0-7645-8845-7 |edition=4th}}</ref>{{Rp|1}}
 
एक मार्कअप भाषा के रूप में, एक्सएमएल लेबल, वर्गीकृत और जानकारी को संरचनात्मक रूप से व्यवस्थित करता है।<ref name="XmlForDummies" />{{Rp|11}} एक्सएमएल टैग डेटा संरचना का प्रतिनिधित्व करते हैं और इसमें मेटाडेटा होता है। टैग के अन्दर डेटा है, जो एक्सएमएल मानक निर्दिष्ट विधि से एन्कोड किया गया है।<ref name="XmlForDummies" />{{Rp|11}} अतिरिक्त एक्सएमएल स्कीमा (एक्सएसडी) एक्सएमएल की व्याख्या और सत्यापन के लिए आवश्यक मेटाडेटा को परिभाषित करता है। (इसे कैनोनिकल स्कीमा भी कहा जाता है।)<ref name="XmlForDummies" />{{Rp|135}} एक्सएमएल दस्तावेज़ जो मूलभूत एक्सएमएल नियमों का पालन करता है, अच्छी तरह से बना हुआ है; जो इसकी स्कीमा का पालन करता है वह मान्य है।<ref name="XmlForDummies" />{{Rp|135}}
 
इंटरनेट का इतिहास या इंटरनेट इंजीनियरिंग टास्क फोर्स आरएफसी:7303 (जो पुराने आरएफसी:3023 का स्थान लेता है), एक्सएमएल संदेश में उपयोग के लिए मीडिया प्रकार के निर्माण के लिए नियम प्रदान करता है। यह तीन मीडिया प्रकारों को परिभाषित करता है: <code>application/xml</code> (<code>text/xml</code> उपनाम है), <code>application/xml-external-parsed-entity</code> (<code>text/xml-external-parsed-entity</code> उपनाम है) और <code>application/xml-dtd</code>. उनका उपयोग उनके आंतरिक शब्दार्थ को प्रदर्शित किए बिना रॉ एक्सएमएल फ़ाइलों को प्रसारित करने के लिए किया जाता है। [rfc:7303 आरएफसी 7303] आगे अनुशंसा करता है कि एक्सएमएल-आधारित भाषाओं में समाप्त होने वाले मीडिया प्रकार दिए जाएं <code>+xml</code>, उदाहरण के लिए, <code>image/svg+xml</code> स्केलेबल वेक्टर ग्राफिक्स के लिए उपयोग किया जाता है।
 
नेटवर्क के संदर्भ में एक्सएमएल के उपयोग के लिए आगे के दिशानिर्देश :आरएफसी:3470 में दिखाई देते हैं, जिसे आईईटीएफ बीसीपी 70 के रूप में भी जाना जाता है, दस्तावेज़ जिसमें एक्सएमएल-आधारित भाषा को डिजाइन करने और तैनात करने के कई तथ्य सम्मिलित हैं।


== अनुप्रयोग ==
== अनुप्रयोग ==
इंटरनेट पर डेटा के आदान-प्रदान के लिए XML आम उपयोग में आ गया है। XML सिंटैक्स का उपयोग करने वाले सैकड़ों दस्तावेज़ स्वरूप विकसित किए गए हैं,<ref name="Cover pages list">{{cite web |url= http://xml.coverpages.org/xmlApplications.html |title= एक्सएमएल अनुप्रयोग और पहल|website=Xml.coverages.org |access-date=16 November 2017}}</ref> RSS, Atom (मानक), Office Open XML, OpenDocument, स्केलेबल वेक्टर ग्राफ़िक्स और XHTML सहित। XML संचार प्रोटोकॉल जैसे SOAP और एक्स्टेंसिबल मैसेजिंग और उपस्थिति प्रोटोकॉल के लिए आधार भाषा भी प्रदान करता है। यह अजाक्स (प्रोग्रामिंग) | अतुल्यकालिक जावास्क्रिप्ट और एक्सएमएल (AJAX) प्रोग्रामिंग तकनीक के लिए संदेश विनिमय प्रारूप है।
इंटरनेट पर डेटा के आदान-प्रदान के लिए एक्सएमएल सामान्य उपयोग में आ गया है। एक्सएमएल सिंटैक्स का उपयोग करने वाले सैकड़ों दस्तावेज़ स्वरूप विकसित किए गए हैं,<ref name="Cover pages list">{{cite web |url= http://xml.coverpages.org/xmlApplications.html |title= एक्सएमएल अनुप्रयोग और पहल|website=Xml.coverages.org |access-date=16 November 2017}}</ref> आरएसएस, परमाणु (मानक), ऑफिस ओपन एक्सएमएल, ओपनदस्तावेज़, स्केलेबल वेक्टर ग्राफ़िक्स और एक्सएचटीएमएल सहित या एक्सएमएल संचार प्रोटोकॉल जैसे एसओएपी और एक्स्टेंसिबल मैसेजिंग और उपस्थिति प्रोटोकॉल के लिए आधार भाषा भी प्रदान करता है। यह अजाक्स (प्रोग्रामिंग) या अतुल्यकालिक जावास्क्रिप्ट और एक्सएमएल (अजाक्स) प्रोग्रामिंग तकनीक के लिए संदेश विनिमय प्रारूप है।


स्वास्थ्य स्तर 7, OpenTravel Alliance, FpML, MISMO और राष्ट्रीय सूचना विनिमय मॉडल जैसे कई उद्योग डेटा मानक XML और XML स्कीमा विनिर्देश की समृद्ध विशेषताओं पर आधारित हैं। प्रकाशन में, डार्विन इंफॉर्मेशन टाइपिंग आर्किटेक्चर एक XML उद्योग डेटा मानक है। XML का व्यापक रूप से विभिन्न प्रकाशन प्रारूपों को रेखांकित करने के लिए उपयोग किया जाता है।
स्वास्थ्य स्तर 7, ओपनट्रैवल एलायंस, एफपीएमएल, एमआईएसएमओ और राष्ट्रीय सूचना विनिमय मॉडल जैसे कई उद्योग डेटा मानक एक्सएमएल और एक्सएमएल स्कीमा विनिर्देश की समृद्ध विशेषताओं पर आधारित हैं। प्रकाशन में, डार्विन इंफॉर्मेशन टाइपिंग आर्किटेक्चर एक्सएमएल उद्योग डेटा मानक है। एक्सएमएल का व्यापक रूप से विभिन्न प्रकाशन प्रारूपों को रेखांकित करने के लिए उपयोग किया जाता है।


== प्रमुख शब्दावली ==
== प्रमुख शब्दावली ==
इस खंड की सामग्री XML विशिष्टता पर आधारित है। यह XML में प्रकट होने वाले सभी निर्माणों की विस्तृत सूची नहीं है; यह दिन-प्रतिदिन के उपयोग में सबसे अधिक बार सामने आने वाली प्रमुख संरचनाओं का परिचय प्रदान करता है।
इस खंड की पदार्थ एक्सएमएल विशिष्टता पर आधारित है। यह एक्सएमएल में प्रकट होने वाले सभी निर्माणों की विस्तृत सूची नहीं है; यह दिन-प्रतिदिन के उपयोग में सबसे अधिक बार सामने आने वाली प्रमुख संरचनाओं का परिचय प्रदान करता है।


;{{visible anchor|Character}}: एक XML दस्तावेज़ वर्णों की एक स्ट्रिंग है। Valid_characters_in_XML#Characters_allowed_but_हतोत्साहित कानूनी यूनिकोड वर्ण (शून्य को छोड़कर) एक (1.1) XML दस्तावेज़ में प्रकट हो सकता है (जबकि कुछ निराश हैं)।
;{{visible anchor|अक्षर}}: एक एक्सएमएल दस्तावेज़ वर्णों की स्ट्रिंग है। वैध अक्षर में एक्सएमएल या अक्षर अनुमति किन्तु हतोत्साहित नियमबद्ध यूनिकोड वर्ण (शून्य को छोड़कर) (1.1) एक्सएमएल दस्तावेज़ में प्रकट हो सकता है (जबकि कुछ निराश हैं)।


;{{visible anchor|Processor and application}}: प्रोसेसर मार्कअप का विश्लेषण करता है और एक एप्लिकेशन को संरचित जानकारी पास करता है। विनिर्देश आवश्यकताओं को रखता है कि एक XML प्रोसेसर को क्या करना चाहिए और क्या नहीं करना चाहिए, लेकिन एप्लिकेशन इसके दायरे से बाहर है। प्रोसेसर (जैसा कि विनिर्देश कहता है) को अक्सर बोलचाल की भाषा में XML पार्सर के रूप में संदर्भित किया जाता है।
;{{visible anchor|प्रोसेसर और एप्लीकेशन}}: प्रोसेसर मार्कअप का विश्लेषण करता है और एप्लिकेशन को संरचित जानकारी पास करता है। विनिर्देश आवश्यकताओं को रखता है कि एक्सएमएल प्रोसेसर को क्या करना चाहिए और क्या नहीं करना चाहिए, किन्तु एप्लिकेशन इसके सीमा से बाहर है। प्रोसेसर (जैसा कि विनिर्देश कहता है) को अधिकांशतः बोलचाल की भाषा में एक्सएमएल पार्सर के रूप में संदर्भित किया जाता है।


;{{visible anchor|Markup and content}}: XML दस्तावेज़ बनाने वाले वर्णों को मार्कअप और सामग्री में विभाजित किया जाता है, जिन्हें सरल वाक्य-विन्यास नियमों के अनुप्रयोग द्वारा अलग किया जा सकता है। आम तौर पर, मार्कअप बनाने वाले तार या तो वर्ण से शुरू होते हैं <code>&lt;</code> और ए के साथ समाप्त करें <code>></code>, या वे चरित्र से शुरू होते हैं <code>&</code> और ए के साथ समाप्त करें <code>;</code>. वर्णों की स्ट्रिंग जो मार्कअप नहीं हैं, सामग्री हैं। हालांकि, सीडीएटीए सेक्शन में, delimiters <code>&lt;![CDATA[</code> और <code>]]></code> मार्कअप के रूप में वर्गीकृत किया जाता है, जबकि उनके बीच के टेक्स्ट को सामग्री के रूप में वर्गीकृत किया जाता है। इसके अलावा, सबसे बाहरी तत्व से पहले और बाद में व्हाइटस्पेस को मार्कअप के रूप में वर्गीकृत किया गया है।
;{{visible anchor|मार्कअप और पदार्थ}}: एक्सएमएल दस्तावेज़ बनाने वाले वर्णों को मार्कअप और पदार्थ में विभाजित किया जाता है, जिन्हें सरल वाक्य-विन्यास नियमों के अनुप्रयोग द्वारा अलग किया जा सकता है। सामान्यतः, मार्कअप बनाने वाले तार या तो वर्ण से प्रारंभ होते हैं <code>&lt;</code> और ए के साथ समाप्त करें <code>></code>, या वे कैरेक्टर से प्रारंभ होते हैं <code>&</code> और ए के साथ समाप्त करें <code>;</code>. वर्णों की स्ट्रिंग जो मार्कअप नहीं हैं, पदार्थ हैं। चूँकि, सीडीएटीए सेक्शन में, सीमांकक <code>&lt;![CDATA[</code> और <code>]]></code> मार्कअप के रूप में वर्गीकृत किया जाता है, जबकि उनके बीच के टेक्स्ट को पदार्थ के रूप में वर्गीकृत किया जाता है। इसके अतिरिक्त, सबसे बाहरी तत्व से पहले और बाद में व्हाइटस्पेस को मार्कअप के रूप में वर्गीकृत किया गया है।


;{{visible anchor|Tag}}: एक टैग एक मार्कअप निर्माण है जो से शुरू होता है <code>&lt;</code> और के साथ समाप्त होता है <code>></code>. टैग तीन प्रकार के होते हैं:
;{{visible anchor|टैग}}:टैग एक मार्कअप निर्माण है जो <code>&lt;</code> से <code>प्रारंभ</code> होता है और <code>></code> पर समाप्त होता है। टैग तीन प्रकार के होते हैं:
: * स्टार्ट-टैग, जैसे <code>&lt;section></code>;
: * स्टार्ट-टैग, जैसे <code>&lt;section></code>;
: * एंड-टैग, जैसे <code>&lt;/section></code>;
: * एंड-टैग, जैसे <code>&lt;/section></code>;
: * खाली-तत्व टैग, जैसे <code>&lt;line-break /></code>.
: * खाली-तत्व टैग, जैसे <code>&lt;line-break /></code>.


;{{visible anchor|Element}}: एक तत्व एक तार्किक दस्तावेज़ घटक है जो या तो एक स्टार्ट-टैग के साथ शुरू होता है और एक मेल खाने वाले अंत-टैग के साथ समाप्त होता है या इसमें केवल एक खाली-तत्व टैग होता है। स्टार्ट-टैग और एंड-टैग के बीच के अक्षर, यदि कोई हो, तत्व की सामग्री हैं, और इसमें अन्य तत्वों सहित मार्कअप शामिल हो सकते हैं, जिन्हें बाल तत्व कहा जाता है। एक उदाहरण है <code>&lt;greeting>Hello, world!&lt;/greeting></code>. एक और है <code>&lt;line-break&nbsp;/></code>.
;{{visible anchor|तत्व}}: एक तत्व तार्किक दस्तावेज़ घटक है जो या तो स्टार्ट-टैग के साथ प्रारंभ होता है और मेल खाने वाले अंत-टैग के साथ समाप्त होता है या इसमें केवल खाली-तत्व टैग होता है। स्टार्ट-टैग और एंड-टैग के बीच के अक्षर, यदि कोई तत्व का पदार्थ हैं, और इसमें अन्य तत्वों सहित मार्कअप सम्मिलित हो सकते हैं, जिन्हें बाल तत्व कहा जाता है। उदाहरण <code>&lt;greeting>Hello, world!&lt;/greeting></code>. और <code>&lt;line-break&nbsp;/></code>. है


;{{visible anchor|Attribute}}: एक विशेषता एक मार्कअप निर्माण है जिसमें एक नाम-मूल्य जोड़ी होती है जो एक स्टार्ट-टैग या खाली-तत्व टैग के भीतर मौजूद होती है। एक उदाहरण है <code>&lt;img src="madonna.jpg" alt="Madonna" /></code>, where the names of the attributes are "src" and "alt", and their values are "madonna.jpg और मैडोना क्रमशः। एक और उदाहरण है <code>&lt;step number="3">Connect A to B.&lt;/step></code>, जहां विशेषता का नाम संख्या है और इसका मान 3 है। एक XML विशेषता में केवल एक मान हो सकता है और प्रत्येक विशेषता प्रत्येक तत्व पर अधिक से अधिक एक बार दिखाई दे सकती है। सामान्य स्थिति में जहां एकाधिक मानों की एक सूची वांछित है, यह सूची को एक अच्छी तरह से गठित एक्सएमएल विशेषता में एन्कोड करके किया जाना चाहिए{{efn-lr|i.e., embedded quote characters would be a problem}} कुछ प्रारूप के साथ जो एक्सएमएल खुद को परिभाषित करता है। आमतौर पर यह या तो अल्पविराम या अर्ध-विराम सीमांकित सूची होती है या, यदि अलग-अलग मानों में रिक्त स्थान नहीं होने के बारे में जाना जाता है,{{efn-lr|A common example of this is [[CSS]] class or identifier names.}} एक अंतरिक्ष-सीमांकित सूची का उपयोग किया जा सकता है। <code>&lt;div class="inner greeting-box">Welcome!&lt;/div></code>, जहां विशेषता वर्ग में आंतरिक ग्रीटिंग-बॉक्स दोनों मूल्य हैं और दो सीएसएस वर्ग नामों को आंतरिक और ग्रीटिंग-बॉक्स भी इंगित करता है।
;{{visible anchor|विशेषता}}:एक विशेषता एक मार्कअप निर्माण है जिसमें नाम-मूल्य जोड़ी सम्मिलित होती है जो स्टार्ट-टैग या खाली-तत्व टैग के अन्दर उपस्थित होती है। एक उदाहरण <code>&lt;img src="madonna.jpg" alt="Madonna" /></code> है, जहां विशेषताओं के नाम 'src' और 'alt' हैं, और उनके मान क्रमशः 'मैडोना.jpg' और 'मैडोना' हैं। एक अन्य उदाहरण <code>&lt;step number="3">Connect A to B.&lt;/step></code> है, जहां विशेषता का नाम "संख्या" है और इसका मान "3" है। एक एक्सएमएल विशेषता का केवल एक ही मान हो सकता है और प्रत्येक विशेषता प्रत्येक तत्व पर अधिकतम एक बार दिखाई दे सकती है। सामान्य स्थिति में जहां कई मानों की एक सूची वांछित होती है, यह सूची को एक अच्छी तरह से गठित एक्सएमएल विशेषता {{efn-lr|i.e., embedded quote characters would be a problem}} में एन्कोड करके किया जाना चाहिए, जो कि एक्सएमएल द्वारा परिभाषित प्रारूप से परे है। सामान्यतः यह या तो अल्पविराम या अर्ध-कोलन सीमांकित सूची होती है या, यदि व्यक्तिगत मानों में रिक्त स्थान नहीं होने के लिए जाना जाता है, तो {{efn-lr|A common example of this is [[CSS]] class or identifier names.}} एक स्थान-सीमांकित सूची का उपयोग किया जा सकता है। <code>&lt;div class="inner greeting-box">Welcome!&lt;/div></code>, जहां विशेषता "क्लास" में "इनर ग्रीटिंग-बॉक्स" दोनों मान हैं और यह दो सीएसएस क्लास नाम "इनर" और "ग्रीटिंग-बॉक्स" को भी इंगित करता है। ".


;{{visible anchor|XML declaration}}: XML दस्तावेज़ एक XML घोषणा के साथ शुरू हो सकते हैं जो अपने बारे में कुछ जानकारी का वर्णन करता है। एक उदाहरण है <code>&lt;?xml version="1.0" encoding="UTF-8"?></code>.
;{{visible anchor|एक्सएमएल प्रकाशन}}: एक्सएमएल दस्तावेज़ एक्सएमएल प्रकाशन के साथ प्रारंभ हो सकते हैं जो अपने बारे में कुछ जानकारी का वर्णन करता है। उदाहरण <code>&lt;?xml version="1.0" encoding="यूटीएफ-8"?></code>.है


== वर्ण और बचना ==
== वर्ण और पलायन ==
XML दस्तावेज़ों में पूरी तरह से यूनिकोड प्रदर्शनों की सूची के वर्ण शामिल हैं। विशेष रूप से बहिष्कृत नियंत्रण वर्णों की एक छोटी संख्या को छोड़कर, यूनिकोड द्वारा परिभाषित कोई भी वर्ण किसी XML दस्तावेज़ की सामग्री के भीतर दिखाई दे सकता है।
एक्सएमएल दस्तावेज़ों में पूरी तरह से यूनिकोड प्रदर्शनों की सूची के वर्ण सम्मिलित हैं। विशेष रूप से बहिष्कृत नियंत्रण वर्णों की छोटी संख्या को छोड़कर, यूनिकोड द्वारा परिभाषित कोई भी वर्ण किसी एक्सएमएल दस्तावेज़ की पदार्थ के अन्दर दिखाई दे सकता है।


XML में दस्तावेज़ बनाने वाले यूनिकोड वर्णों के एन्कोडिंग की पहचान करने और उन वर्णों को व्यक्त करने के लिए सुविधाएँ शामिल हैं, जिनका एक कारण या किसी अन्य के लिए सीधे उपयोग नहीं किया जा सकता है।
एक्सएमएल में दस्तावेज़ बनाने वाले यूनिकोड वर्णों के एन्कोडिंग की पहचान करने और उन वर्णों को व्यक्त करने के लिए सुविधाएँ सम्मिलित हैं, जिनका कारण या किसी अन्य के लिए सीधे उपयोग नहीं किया जा सकता है।


=== मान्य वर्ण ===
=== मान्य वर्ण ===
{{Main|Valid characters in XML}}
{{Main|एक्सएमएल में मान्य अक्षर}}
निम्न श्रेणियों में यूनिकोड कोड बिंदु XML 1.0 दस्तावेज़ों में मान्य हैं:<ref>{{cite web|url=http://www.w3.org/TR/2008/REC-xml-20081126/#charsets|title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.0 (पांचवां संस्करण)|publisher=World Wide Web Consortium|date=2008-11-26|access-date=23 November 2012}}</ref>
 
* U+0009 (क्षैतिज टैब), U+000A (लाइन फीड), U+000D (कैरिज रिटर्न): ये केवल C0 और C1 कंट्रोल कोड हैं जो XML 1.0 में स्वीकृत हैं;
निम्न श्रेणियों में यूनिकोड कोड बिंदु एक्सएमएल 1.0 दस्तावेज़ों में मान्य हैं:<ref>{{cite web|url=http://www.w3.org/TR/2008/REC-xml-20081126/#charsets|title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.0 (पांचवां संस्करण)|publisher=World Wide Web Consortium|date=2008-11-26|access-date=23 November 2012}}</ref>
* U+0020–U+D7FF, U+E000–U+FFFD: इसमें मूल बहुभाषी तल में कुछ गैर-वर्ण शामिल नहीं हैं (सभी प्रतिनिधि, U+FFFE और U+FFFF निषिद्ध हैं);
* U+0009 (क्षैतिज टैब), U+000A (लाइन फीड), U+000D (कैरिज रिटर्न): ये केवल C0 और C1 कंट्रोल कोड हैं जो एक्सएमएल 1.0 में स्वीकृत हैं;
* यू+10000-यू+10एफएफएफएफ: इसमें गैर-वर्णों सहित पूरक विमानों में सभी कोड बिंदु शामिल हैं।
* U+0020–U+D7FF, U+E000–U+FFFD: इसमें मूल बहुभाषी तल में कुछ गैर-वर्ण सम्मिलित नहीं हैं (सभी प्रतिनिधि, U+FFFE और U+FFFF निषिद्ध हैं);
* यू+10000-यू+10एफएफएफएफ: इसमें गैर-वर्णों सहित पूरक स्पेसो में सभी कोड बिंदु सम्मिलित हैं।


XML 1.1 उपरोक्त सभी को शामिल करने के लिए अनुमत वर्णों के सेट का विस्तार करता है, साथ ही U+0001–U+001F श्रेणी में शेष वर्णों को भी शामिल करता है।<ref>{{cite web|url=http://www.w3.org/TR/xml11/#charsets |title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.1 (दूसरा संस्करण)|publisher=World Wide Web Consortium |access-date=22 August 2010}}</ref> उसी समय, हालांकि, यह U+0009 (क्षैतिज टैब), U+000A (लाइन फीड), U+000D (कैरिज रिटर्न), और U+ के अलावा C0 और C0 और C1 नियंत्रण कोड नियंत्रण वर्णों के उपयोग को प्रतिबंधित करता है। 0085 (अगली पंक्ति) उन्हें एस्केप्ड फॉर्म में लिखने की आवश्यकता के द्वारा (उदाहरण के लिए U+0001 को इस रूप में लिखा जाना चाहिए <code>&amp;#x01;</code> या इसके समकक्ष)। C1 वर्णों के मामले में, यह प्रतिबंध पश्चगामी असंगति है; इसे सामान्य एन्कोडिंग त्रुटियों का पता लगाने की अनुमति देने के लिए पेश किया गया था।
एक्सएमएल 1.1 उपरोक्त सभी को सम्मिलित करने के लिए अनुमत वर्णों के सेट का विस्तार करता है, साथ ही U+0001–U+001F श्रेणी में शेष वर्णों को भी सम्मिलित करता है।<ref>{{cite web|url=http://www.w3.org/TR/xml11/#charsets |title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.1 (दूसरा संस्करण)|publisher=World Wide Web Consortium |access-date=22 August 2010}}</ref> उसी समय, चूँकि, यह U+0009 (क्षैतिज टैब), U+000A (लाइन फीड), U+000D (कैरिज रिटर्न), और U+ के अतिरिक्त C0 और C0 और C1 नियंत्रण कोड नियंत्रण वर्णों के उपयोग को प्रतिबंधित करता है। 0085 (अगली पंक्ति) उन्हें एस्केप्ड फॉर्म में लिखने की आवश्यकता के द्वारा (उदाहरण के लिए U+0001 को इस रूप में लिखा जाना चाहिए <code>&amp;#x01;</code> या इसके समकक्ष)। C1 वर्णों के स्थिति में, यह प्रतिबंध पश्चगामी असंगति है; इसे सामान्य एन्कोडिंग त्रुटियों का पता लगाने की अनुमति देने के लिए प्रस्तुत किया गया था।


कोड पॉइंट नल कैरेक्टर|यू+0000 (नल) एकमात्र ऐसा कैरेक्टर है जिसकी किसी भी एक्सएमएल 1.1 दस्तावेज़ में अनुमति नहीं है।
कोड पॉइंट नल कैरेक्टर यू+0000 एकमात्र ऐसा कैरेक्टर है जिसकी किसी भी एक्सएमएल 1.1 दस्तावेज़ में अनुमति नहीं है।


=== एन्कोडिंग पहचान ===
=== एन्कोडिंग पहचान ===
यूनिकोड कैरेक्टर सेट को विभिन्न तरीकों से स्टोरेज या ट्रांसमिशन के लिए बाइट्स में एन्कोड किया जा सकता है, जिसे एनकोडिंग कहा जाता है। यूनिकोड ही एनकोडिंग को परिभाषित करता है जो पूरे प्रदर्शनों की सूची को कवर करता है; जाने-माने लोगों में UTF-8 (जिसे XML मानक बाइट ऑर्डर मार्क के बिना उपयोग करने की अनुशंसा करता है) और UTF-16 शामिल हैं।<ref>{{cite web|url=http://www.tbray.org/ongoing/When/200x/2003/04/26/UTF|title=वर्ण बनाम बाइट्स|website=Tbray.org|access-date=16 November 2017}}</ref> ऐसे कई अन्य टेक्स्ट एनकोडिंग हैं जो यूनिकोड से पहले के हैं, जैसे ASCII और विभिन्न ISO/IEC 8859; उनके चरित्र प्रदर्शनों की सूची हर मामले में यूनिकोड वर्ण सेट के उपसमुच्चय हैं।
यूनिकोड कैरेक्टर सेट को विभिन्न विधियों से स्टोरेज या ट्रांसमिशन के लिए बाइट्स में एन्कोड किया जा सकता है, जिसे एनकोडिंग कहा जाता है। यूनिकोड ही एनकोडिंग को परिभाषित करता है जो पूरे प्रदर्शनों की सूची को कवर करता है; इस प्रकार जाने-माने लोगों में यूटीएफ-8 (जिसे एक्सएमएल मानक बाइट ऑर्डर मार्क के बिना उपयोग करने की अनुशंसा करता है) और यूटीएफ-16 सम्मिलित हैं।<ref>{{cite web|url=http://www.tbray.org/ongoing/When/200x/2003/04/26/UTF|title=वर्ण बनाम बाइट्स|website=Tbray.org|access-date=16 November 2017}}</ref> ऐसे कई अन्य टेक्स्ट एनकोडिंग हैं जो यूनिकोड से पहले के हैं, जैसे एएससीआईआई और विभिन्न आईएसओ/आईईसी 8859; उनके कैरेक्टर प्रदर्शनों की सूची प्रत्येक स्थिति में यूनिकोड वर्ण सेट के उपसमुच्चय हैं।


XML किसी भी यूनिकोड-परिभाषित एन्कोडिंग और किसी भी अन्य एन्कोडिंग के उपयोग की अनुमति देता है जिनके वर्ण भी यूनिकोड में दिखाई देते हैं। XML एक तंत्र भी प्रदान करता है जिससे एक XML प्रोसेसर बिना किसी पूर्व ज्ञान के मज़बूती से यह निर्धारित कर सकता है कि किस एन्कोडिंग का उपयोग किया जा रहा है।<ref>{{cite web|url=http://www.w3.org/TR/REC-xml/#sec-guessing|title=कैरेक्टर एनकोडिंग का ऑटोडिटेक्शन|website=W3.org|access-date=16 November 2017}}</ref> UTF-8 और UTF-16 के अलावा अन्य एन्कोडिंग आवश्यक रूप से प्रत्येक XML पार्सर द्वारा मान्यता प्राप्त नहीं हैं (और कुछ मामलों में UTF-16 भी नहीं, भले ही मानक इसे भी मान्यता देने के लिए अनिवार्य करता है)।
एक्सएमएल किसी भी यूनिकोड-परिभाषित एन्कोडिंग और किसी भी अन्य एन्कोडिंग के उपयोग की अनुमति देता है जिनके वर्ण भी यूनिकोड में दिखाई देते हैं। एक्सएमएल तंत्र भी प्रदान करता है जिससे एक्सएमएल प्रोसेसर बिना किसी पूर्व ज्ञान के शक्ति से यह निर्धारित कर सकता है कि किस एन्कोडिंग का उपयोग किया जा रहा है।<ref>{{cite web|url=http://www.w3.org/TR/REC-xml/#sec-guessing|title=कैरेक्टर एनकोडिंग का ऑटोडिटेक्शन|website=W3.org|access-date=16 November 2017}}</ref> यूटीएफ-8 और यूटीएफ-16 के अतिरिक्त अन्य एन्कोडिंग आवश्यक रूप से प्रत्येक एक्सएमएल पार्सर द्वारा मान्यता प्राप्त नहीं हैं (और कुछ स्थितियों में यूटीएफ-16 भी नहीं, तथापि मानक इसे भी मान्यता देने के लिए अनिवार्य करता है)।


=== भागना ===
=== पलायन ===
एक्सएमएल उन पात्रों को शामिल करने के लिए एस्केप सीक्वेंस सुविधाएं प्रदान करता है जो सीधे शामिल करने के लिए समस्याग्रस्त हैं। उदाहरण के लिए:
एक्सएमएल उन पात्रों को सम्मिलित करने के लिए एस्केप सीक्वेंस सुविधाएं प्रदान करता है जो सीधे सम्मिलित करने के लिए समस्याग्रस्त हैं। उदाहरण के लिए:
* अक्षर < और & कुंजी सिंटैक्स मार्कर हैं और कभी भी सीडीएटीए अनुभाग के बाहर सामग्री में प्रकट नहीं हो सकते हैं। एक्सएमएल इकाई मूल्यों में < का उपयोग करने के लिए इसकी अनुमति है, लेकिन अनुशंसित नहीं है।<ref>{{cite web|url=http://www.w3.org/TR/2008/REC-xml-20081126/#NT-AttValue|title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.0 (पांचवां संस्करण)|website=W3.org|access-date=16 November 2017}}</ref>
* अक्षर < और & कुंजी सिंटैक्स मार्कर हैं और कभी भी सीडीएटीए अनुभाग के बाहर पदार्थ में प्रकट नहीं हो सकते हैं। एक्सएमएल इकाई मूल्यों में < का उपयोग करने के लिए इसकी अनुमति है, किन्तु अनुशंसित नहीं है।<ref>{{cite web|url=http://www.w3.org/TR/2008/REC-xml-20081126/#NT-AttValue|title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.0 (पांचवां संस्करण)|website=W3.org|access-date=16 November 2017}}</ref>
* कुछ कैरेक्टर एनकोडिंग यूनिकोड के केवल एक सबसेट का समर्थन करते हैं। उदाहरण के लिए, ASCII में एक XML दस्तावेज़ को एन्कोड करना कानूनी है, लेकिन ASCII में यूनिकोड वर्णों जैसे é के लिए कोड बिंदु नहीं हैं।
* कुछ कैरेक्टर एनकोडिंग यूनिकोड के केवल सबसेट का समर्थन करते हैं। उदाहरण के लिए, एएससीआईआई में एक्सएमएल दस्तावेज़ को एन्कोड करना नियमबद्ध है, किन्तु एएससीआईआई में यूनिकोड वर्णों जैसे é के लिए कोड बिंदु नहीं हैं।
* लेखक की मशीन पर चरित्र को टाइप करना संभव नहीं हो सकता है।
* लेखक की मशीन पर कैरेक्टर को टाइप करना संभव नहीं हो सकता है।
* कुछ पात्रों में समरूपता होती है जिसे अन्य वर्णों से दृष्टिगत रूप से अलग नहीं किया जा सकता है, जैसे कि गैर-ब्रेकिंग स्पेस (<code>&amp;#xa0;</code>) और अंतरिक्ष (विराम चिह्न) (<code>&amp;#x20;</code>), और ए (<code>&amp;#x410;</code>) ए और ए (<code>&amp;#x41;</code>) ए ।
* कुछ पात्रों में समरूपता होती है जिसे अन्य वर्णों से दृष्टिगत रूप से अलग नहीं किया जा सकता है, जैसे कि गैर-ब्रेकिंग स्पेस (<code>&amp;#xa0;</code>) और अंतरिक्ष (विराम चिह्न) (<code>&amp;#x20;</code>), और ए (<code>&amp;#x410;</code>) ए और ए (<code>&amp;#x41;</code>) ए आदि है


एक्सएमएल और एचटीएमएल चरित्र इकाई संदर्भों की पांच सूची हैं # एक्सएमएल में पूर्वनिर्धारित इकाइयां:
एक्सएमएल और एचटीएमएल कैरेक्टर एक्सएमएल में पूर्वनिर्धारित इकाई संदर्भों की पांच सूची हैं :
* <code>&amp;lt;</code> प्रतिनिधित्व करता है < ;
* <code>&amp;lt;</code> < का प्रतिनिधित्व करता है
* <code>&amp;gt;</code> प्रतिनिधित्व करता है > ;
* <code>&amp;gt;</code> > का प्रतिनिधित्व करता है ;
* <code>&amp;amp;</code> प्रतिनिधित्व करता है & ;
* <code>&amp;amp;</code> & का प्रतिनिधित्व करता है ;
* <code>&amp;apos;</code> प्रतिनिधित्व करता है{{mono|'}};
* <code>&amp;apos;</code> {{mono|'}} का प्रतिनिधित्व करता है;
* <code>&amp;quot;</code> प्रतिनिधित्व करता है '{{mono|"}}'।
* <code>&amp;quot;</code> {{mono|"}} का प्रतिनिधित्व करता है <nowiki>''</nowiki>


सभी अनुमत यूनिकोड वर्णों को संख्यात्मक वर्ण संदर्भ के साथ प्रदर्शित किया जा सकता है। चीनी वर्ण 中 पर विचार करें, जिसका यूनिकोड में संख्यात्मक कोड हेक्साडेसिमल 4E2D, या दशमलव 20,013 है। एक उपयोगकर्ता जिसका कीबोर्ड इस वर्ण को दर्ज करने के लिए कोई विधि प्रदान नहीं करता है, वह अभी भी इसे एन्कोड किए गए XML दस्तावेज़ में सम्मिलित कर सकता है <code>&amp;#20013;</code> या <code>&amp;#x4e2d;</code>. इसी तरह, स्ट्रिंग I <3 Jörg को XML दस्तावेज़ में शामिल करने के लिए एन्कोड किया जा सकता है <code>I &amp;lt;3 J&amp;#xF6;rg</code>.
सभी अनुमत यूनिकोड वर्णों को संख्यात्मक वर्ण संदर्भ के साथ प्रदर्शित किया जा सकता है। चीनी वर्ण 中 पर विचार करें, जिसका यूनिकोड में संख्यात्मक कोड हेक्साडेसिमल 4E2D, या दशमलव 20,013 है। उपयोगकर्ता जिसका कीबोर्ड इस वर्ण को दर्ज करने के लिए कोई विधि प्रदान नहीं करता है, वह अभी भी इसे एन्कोड किए गए एक्सएमएल दस्तावेज़ में सम्मिलित कर सकता है <code>&amp;#20013;</code> या <code>&amp;#x4e2d;</code>. इसी तरह, स्ट्रिंग <3 Jörg को एक्सएमएल दस्तावेज़ में सम्मिलित करने के लिए एन्कोड <code>I &amp;lt;3 J&amp;#xF6;rg</code> किया जा सकता है .


<code>&amp;#0;</code> अनुमति नहीं है क्योंकि शून्य वर्ण XML से बहिष्कृत नियंत्रण वर्णों में से एक है, यहां तक ​​कि संख्यात्मक वर्ण संदर्भ का उपयोग करते समय भी।<ref>{{cite web|url=http://www.w3.org/International/questions/qa-controls|title=W3C I18N अक्सर पूछे जाने वाले प्रश्न: HTML, XHTML, XML और नियंत्रण कोड|website=W3.org|access-date=16 November 2017}}</ref> ऐसे वर्णों का प्रतिनिधित्व करने के लिए बेस 64 जैसे वैकल्पिक एन्कोडिंग तंत्र की आवश्यकता होती है।
<code>&amp;#0;</code> अनुमति नहीं है क्योंकि शून्य वर्ण एक्सएमएल से बहिष्कृत नियंत्रण वर्णों में से है, यहां तक ​​कि संख्यात्मक वर्ण संदर्भ का उपयोग करते समय भी है।<ref>{{cite web|url=http://www.w3.org/International/questions/qa-controls|title=W3C I18N अक्सर पूछे जाने वाले प्रश्न: HTML, XHTML, XML और नियंत्रण कोड|website=W3.org|access-date=16 November 2017}}</ref> ऐसे वर्णों का प्रतिनिधित्व करने के लिए बेस 64 जैसे वैकल्पिक एन्कोडिंग तंत्र की आवश्यकता होती है।


=== टिप्पणियाँ ===
=== टिप्पणियाँ ===
अन्य मार्कअप के बाहर दस्तावेज़ में कहीं भी टिप्पणियाँ दिखाई दे सकती हैं। टिप्पणियाँ XML घोषणा से पहले प्रकट नहीं हो सकतीं। टिप्पणियाँ से शुरू होती हैं <code>&lt;!--</code> और साथ समाप्त करें <code>--&gt;</code>. एसजीएमएल के साथ संगतता के लिए, टिप्पणियों के अंदर स्ट्रिंग - (डबल-हाइफ़न) की अनुमति नहीं है;<ref>{{cite web|url=http://www.w3.org/TR/REC-xml/#sec-comments|title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML)|website=W3.org|access-date=16 November 2017}} Section "Comments"</ref> इसका मतलब है कि टिप्पणियों को नेस्टेड नहीं किया जा सकता है। एम्पर्सेंड का टिप्पणियों के भीतर कोई विशेष महत्व नहीं है, इसलिए इकाई और चरित्र संदर्भों को इस तरह पहचाना नहीं जाता है, और दस्तावेज़ एन्कोडिंग के वर्ण सेट के बाहर वर्णों का प्रतिनिधित्व करने का कोई तरीका नहीं है।
अन्य मार्कअप के बाहर दस्तावेज़ में कहीं भी टिप्पणियाँ दिखाई दे सकती हैं। टिप्पणियाँ एक्सएमएल प्रकाशन से पहले प्रकट नहीं हो सकतीं। टिप्पणियाँ से प्रारंभ होती हैं <code>&lt;!--</code> और <code>--&gt;</code> साथ समाप्त करें . एसजीएमएल के साथ संगतता के लिए, टिप्पणियों के अंदर स्ट्रिंग - (डबल-हाइफ़न) की अनुमति नहीं है;<ref>{{cite web|url=http://www.w3.org/TR/REC-xml/#sec-comments|title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML)|website=W3.org|access-date=16 November 2017}} Section "Comments"</ref> इसका कारण है कि टिप्पणियों को नेस्टेड नहीं किया जा सकता है। एम्पर्सेंड का टिप्पणियों के अन्दर कोई विशेष महत्व नहीं है, इसलिए इकाई और कैरेक्टर संदर्भों को इस तरह पहचाना नहीं जाता है, और दस्तावेज़ एन्कोडिंग के वर्ण सेट के बाहर वर्णों का प्रतिनिधित्व करने का कोई विधि नहीं है।
 
वैध टिप्पणी का एक उदाहरण:
<code>&lt;!--no need to escape &lt;code&gt; &amp; such in comments--&gt;</code>
 


वैध टिप्पणी का उदाहरण: <code>&lt;!--no need to escape &lt;code&gt; &amp; such in comments--&gt;</code> है
=== अंतर्राष्ट्रीय उपयोग ===
=== अंतर्राष्ट्रीय उपयोग ===
{{Contains special characters|Armenian|example}}
{{Contains special characters|Armenian|example}}
एक्सएमएल 1.0 (पांचवां संस्करण) और एक्सएमएल 1.1 तत्वों के नाम, विशेषताओं, टिप्पणियों, चरित्र डेटा और प्रसंस्करण निर्देशों में लगभग किसी भी यूनिकोड वर्ण के प्रत्यक्ष उपयोग का समर्थन करते हैं (उनके अलावा जो एक्सएमएल में विशेष प्रतीकात्मक अर्थ रखते हैं, जैसे कम -थान चिह्न, < ). निम्नलिखित एक अच्छी तरह से निर्मित XML दस्तावेज़ है जिसमें चीनी वर्ण, अर्मेनियाई वर्णमाला और सिरिलिक लिपि वर्ण शामिल हैं:
एक्सएमएल 1.0 (पांचवां संस्करण) और एक्सएमएल 1.1 तत्वों के नाम, विशेषताओं, टिप्पणियों, कैरेक्टर डेटा और प्रसंस्करण निर्देशों में लगभग किसी भी यूनिकोड वर्ण के प्रत्यक्ष उपयोग का समर्थन करते हैं (उनके अतिरिक्त जो एक्सएमएल में विशेष प्रतीकात्मक अर्थ रखते हैं, जैसे कम -थान चिह्न, < ). निम्नलिखित अच्छी तरह से निर्मित एक्सएमएल दस्तावेज़ है जिसमें चीनी वर्ण, अर्मेनियाई वर्णमाला और सिरिलिक लिपि वर्ण सम्मिलित हैं:
<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल>
<?xml संस्करण = 1.0 एन्कोडिंग = UTF-8 ?>
<俄语 լեզու= ռուսերեն >данные</俄语>
</वाक्यविन्यास हाइलाइट>


== वाक्यात्मक शुद्धता और त्रुटि-प्रबंधन ==
== वाक्यात्मक शुद्धता और त्रुटि-प्रबंधन ==
{{Main|Well-formed document}}
{{Main|सुगठित दस्तावेज़}}
एक्सएमएल विनिर्देश एक एक्सएमएल दस्तावेज़ को एक अच्छी तरह से गठित तत्व | अच्छी तरह से गठित पाठ के रूप में परिभाषित करता है, जिसका अर्थ है कि यह विनिर्देश में प्रदान किए गए सिंटैक्स नियमों की सूची को संतुष्ट करता है। काफी लंबी सूची में कुछ प्रमुख बिंदुओं में शामिल हैं:
 
* दस्तावेज़ में केवल ठीक से एन्कोडेड कानूनी यूनिकोड वर्ण हैं।
एक्सएमएल विनिर्देश एक्सएमएल दस्तावेज़ को अच्छी तरह से गठित तत्व या अच्छी तरह से गठित पाठ के रूप में परिभाषित करता है, जिसका अर्थ है कि यह विनिर्देश में प्रदान किए गए सिंटैक्स नियमों की सूची को संतुष्ट करता है। अधिक लंबी सूची में कुछ प्रमुख बिंदुओं में सम्मिलित हैं:
* विशेष सिंटैक्स वर्णों में से कोई भी नहीं <code>&lt;</code> और <code>&amp;</code> अपनी मार्कअप-डिलिनेशन भूमिकाएं करते समय के अलावा दिखाई देते हैं।
* दस्तावेज़ में केवल ठीक से एन्कोडेड नियमबद्ध यूनिकोड वर्ण हैं।
* स्टार्ट-टैग, एंड-टैग, और खाली-तत्व टैग जो तत्वों को परिसीमित करते हैं, सही ढंग से नेस्टेड हैं, टैग छूटे हुए हैं और कोई ओवरलैपिंग नहीं है।
* विशेष सिंटैक्स वर्णों में से कोई भी नहीं <code>&lt;</code> और <code>&amp;</code> अपनी मार्कअप-डिलिनेशन भूमिकाएं करते समय के अतिरिक्त दिखाई देते हैं।
* टैग नाम केस-संवेदी होते हैं; स्टार्ट-टैग और एंड-टैग बिल्कुल मेल खाना चाहिए।
* स्टार्ट-टैग, एंड-टैग, और खाली-तत्व टैग जो तत्वों को परिसीमित करते हैं, सही विधि से नेस्टेड हैं, टैग छूटे हुए हैं और कोई ओवरलैपिंग नहीं है।
* टैग नामों में कोई भी वर्ण नहीं हो सकता! #$%&'()*+,/;<=>?@[\]^`{|}~, न ही कोई स्पेस कैरेक्टर, और - से शुरू नहीं हो सकता। , या एक संख्यात्मक अंक।
* टैग नाम केस-संवेदी होते हैं; स्टार्ट-टैग और एंड-टैग पूर्ण रूप से मेल खाना चाहिए।
* टैग नामों में कोई भी वर्ण नहीं हो सकता! #$%&'()*+,/;<=>?@[\]^`{|}~, न ही कोई स्पेस कैरेक्टर, और - से प्रारंभ नहीं हो सकता है।
* एक मूल तत्व में अन्य सभी तत्व होते हैं।
* एक मूल तत्व में अन्य सभी तत्व होते हैं।


XML दस्तावेज़ की परिभाषा में वे पाठ शामिल नहीं हैं जिनमें सुगठित नियमों का उल्लंघन होता है; वे केवल XML नहीं हैं। एक XML प्रोसेसर जो इस तरह के उल्लंघन का सामना करता है, ऐसी त्रुटियों की रिपोर्ट करने और सामान्य प्रसंस्करण को रोकने के लिए आवश्यक है। यह नीति, जिसे कभी-कभी ड्रैको (कानून देने वाला) त्रुटि प्रबंधन के रूप में संदर्भित किया जाता है, HTML को संसाधित करने वाले कार्यक्रमों के व्यवहार के उल्लेखनीय विपरीत है, जिन्हें गंभीर मार्कअप त्रुटियों की उपस्थिति में भी उचित परिणाम देने के लिए डिज़ाइन किया गया है।<ref>{{cite web|url=http://diveintomark.org/archives/2004/01/16/draconianism|archive-url=https://web.archive.org/web/20110726002036/http://diveintomark.org/archives/2004/01/16/draconianism|archive-date=2011-07-26|title=एक्सएमएल में ड्रैकोनियन एरर हैंडलिंग का इतिहास|year=2004|access-date=18 July 2013|first=Mark|last=Pilgrim}}</ref> इस क्षेत्र में XML की नीति की पोस्टेल के कानून के उल्लंघन के रूप में आलोचना की गई है (आप जो भेजते हैं उसमें रूढ़िवादी रहें; जो आप स्वीकार करते हैं उसमें उदार रहें)।<ref>{{cite web|url=http://diveintomark.org/archives/2004/01/08/postels-law|archive-url=https://web.archive.org/web/20110514120305/http://diveintomark.org/archives/2004/01/08/postels-law|archive-date=2011-05-14|title=पोस्टेल के नियम का कोई अपवाद नहीं है [निशान में गोता लगाएँ]|website=DiveIntoMark.org|access-date=22 April 2013}}</ref>
एक्सएमएल दस्तावेज़ की परिभाषा में वे पाठ सम्मिलित नहीं हैं जिनमें सुगठित नियमों का उल्लंघन होता है; वे केवल एक्सएमएल नहीं हैं। एक्सएमएल प्रोसेसर जो इस तरह के उल्लंघन का सामना करता है, ऐसी त्रुटियों की सूची करने और सामान्य प्रसंस्करण को रोकने के लिए आवश्यक है। यह नीति, जिसे कभी-कभी ड्रैको (नियम देने वाला) त्रुटि प्रबंधन के रूप में संदर्भित किया जाता है, एचटीएमएल को संसाधित करने वाले कार्यक्रमों के व्यवहार के उल्लेखनीय विपरीत है, जिन्हें गंभीर मार्कअप त्रुटियों की उपस्थिति में भी उचित परिणाम देने के लिए डिज़ाइन किया गया है।<ref>{{cite web|url=http://diveintomark.org/archives/2004/01/16/draconianism|archive-url=https://web.archive.org/web/20110726002036/http://diveintomark.org/archives/2004/01/16/draconianism|archive-date=2011-07-26|title=एक्सएमएल में ड्रैकोनियन एरर हैंडलिंग का इतिहास|year=2004|access-date=18 July 2013|first=Mark|last=Pilgrim}}</ref> इस क्षेत्र में एक्सएमएल की नीति की पोस्टेल के नियम के उल्लंघन के रूप में आलोचना की गई है (आप जो भेजते हैं उसमें रूढ़िवादी रहें; जो आप स्वीकार करते हैं उसमें उदार रहें)।<ref>{{cite web|url=http://diveintomark.org/archives/2004/01/08/postels-law|archive-url=https://web.archive.org/web/20110514120305/http://diveintomark.org/archives/2004/01/08/postels-law|archive-date=2011-05-14|title=पोस्टेल के नियम का कोई अपवाद नहीं है [निशान में गोता लगाएँ]|website=DiveIntoMark.org|access-date=22 April 2013}}</ref>
एक्सएमएल विनिर्देश एक एक्सएमएल सत्यापन को एक अच्छी तरह से गठित एक्सएमएल दस्तावेज़ के रूप में परिभाषित करता है जो दस्तावेज़ प्रकार परिभाषा (डीटीडी) के नियमों के अनुरूप भी है।<ref>{{cite web|url=https://xmlnotepad.codeplex.com/|title=एक्सएमएल नोटपैड|website=Xmlnotepad/codeplex.com|access-date=16 November 2017|archive-date=15 November 2017|archive-url=https://web.archive.org/web/20171115122856/http://xmlnotepad.codeplex.com/|url-status=dead}}</ref><ref>{{cite web|url=https://www.microsoft.com/en-us/download/details.aspx?id=7973|title=एक्सएमएल नोटपैड 2007|website=Microsoft.com|access-date=16 November 2017}}</ref>
 


एक्सएमएल विनिर्देश एक्सएमएल सत्यापन को अच्छी तरह से गठित एक्सएमएल दस्तावेज़ के रूप में परिभाषित करता है जो दस्तावेज़ प्रकार परिभाषा (डीटीडी) के नियमों के अनुरूप भी है।<ref>{{cite web|url=https://xmlnotepad.codeplex.com/|title=एक्सएमएल नोटपैड|website=Xmlnotepad/codeplex.com|access-date=16 November 2017|archive-date=15 November 2017|archive-url=https://web.archive.org/web/20171115122856/http://xmlnotepad.codeplex.com/|url-status=dead}}</ref><ref>{{cite web|url=https://www.microsoft.com/en-us/download/details.aspx?id=7973|title=एक्सएमएल नोटपैड 2007|website=Microsoft.com|access-date=16 November 2017}}</ref>
== स्कीमा और सत्यापन ==
== स्कीमा और सत्यापन ==
अच्छी तरह से गठित होने के अलावा, एक XML दस्तावेज़ मान्य हो सकता है। इसका अर्थ है कि इसमें एक दस्तावेज़ प्रकार परिभाषा (डीटीडी) का संदर्भ शामिल है, और इसके तत्व और गुण उस डीटीडी में घोषित किए गए हैं और डीटीडी द्वारा निर्दिष्ट व्याकरणिक नियमों का पालन करते हैं।
अच्छी तरह से गठित होने के अतिरिक्त, एक्सएमएल दस्तावेज़ मान्य हो सकता है। इसका अर्थ है कि इसमें दस्तावेज़ प्रकार परिभाषा (डीटीडी) का संदर्भ सम्मिलित है, और इसके तत्व और गुण उस डीटीडी में घोषित किए गए हैं और डीटीडी द्वारा निर्दिष्ट व्याकरणिक नियमों का पालन करते हैं।


XML प्रोसेसर को वैधता के लिए XML दस्तावेज़ों की जाँच करने या न करने के आधार पर मान्य या गैर-मान्य के रूप में वर्गीकृत किया जाता है। एक प्रोसेसर जो एक वैधता त्रुटि का पता लगाता है, उसे इसकी रिपोर्ट करने में सक्षम होना चाहिए, लेकिन सामान्य प्रसंस्करण जारी रख सकता है।
एक्सएमएल प्रोसेसर को वैधता के लिए एक्सएमएल दस्तावेज़ों की जाँच करने या न करने के आधार पर मान्य या गैर-मान्य के रूप में वर्गीकृत किया जाता है। प्रोसेसर जो वैधता त्रुटि का पता लगाता है, उसे इसकी सूची करने में सक्षम होना चाहिए, किन्तु सामान्य प्रसंस्करण जारी रख सकता है।


DTD XML स्कीमा या व्याकरण का एक उदाहरण है। XML 1.0 के प्रारंभिक प्रकाशन के बाद से, XML के लिए स्कीमा भाषाओं के क्षेत्र में पर्याप्त कार्य किया गया है। ऐसी स्कीमा भाषाएं आमतौर पर उन तत्वों के सेट को विवश करती हैं जिनका उपयोग किसी दस्तावेज़ में किया जा सकता है, कौन से गुण उन पर लागू हो सकते हैं, जिस क्रम में वे प्रकट हो सकते हैं, और स्वीकार्य माता-पिता/बच्चे के संबंध।
डीटीडी एक्सएमएल स्कीमा या व्याकरण का उदाहरण है। एक्सएमएल 1.0 के प्रारंभिक प्रकाशन के बाद से, एक्सएमएल के लिए स्कीमा भाषाओं के क्षेत्र में पर्याप्त कार्य किया गया है। ऐसी स्कीमा भाषाएं सामान्यतः उन तत्वों के सेट को विवश करती हैं जिनका उपयोग किसी दस्तावेज़ में किया जा सकता है, कौन से गुण उन पर प्रयुक्त हो सकते हैं, जिस क्रम में स्वीकार्य माता-पिता/बच्चे के संबंध में वे प्रकट हो सकते हैं, ।


=== दस्तावेज़ प्रकार की परिभाषा ===
=== दस्तावेज़ प्रकार की परिभाषा ===
{{Main|Document type definition}}
{{Main|दस्तावेज़ प्रकार की परिभाषा}}
XML के लिए सबसे पुरानी स्कीमा भाषा दस्तावेज़ प्रकार की परिभाषा (DTD) है, जो SGML से विरासत में मिली है।
 
एक्सएमएल के लिए सबसे पुरानी स्कीमा भाषा दस्तावेज़ प्रकार की परिभाषा (डीटीडी) है, जो एसजीएमएल से विरासत में मिली है।


डीटीडी के निम्नलिखित लाभ हैं:
डीटीडी के निम्नलिखित लाभ हैं:
* XML 1.0 मानक में शामिल किए जाने के कारण DTD समर्थन सर्वव्यापी है।
* एक्सएमएल 1.0 मानक में सम्मिलित किए जाने के कारण डीटीडी समर्थन सर्वव्यापी है।
* डीटीडी तत्व-आधारित स्कीमा भाषाओं की तुलना में संक्षिप्त हैं और फलस्वरूप एक ही स्क्रीन में अधिक जानकारी प्रस्तुत करते हैं।
* डीटीडी तत्व-आधारित स्कीमा भाषाओं की तुलना में संक्षिप्त हैं और फलस्वरूप ही स्क्रीन में अधिक जानकारी प्रस्तुत करते हैं।
* डीटीडी पात्रों को प्रकाशित करने के लिए एसजीएमएल इकाई की घोषणा की अनुमति देते हैं।
* डीटीडी पात्रों को प्रकाशित करने के लिए एसजीएमएल इकाई की प्रकाशन की अनुमति देते हैं।
* डीटीडी एक नामस्थान द्वारा उपयोग किए जाने वाले प्रकारों के बजाय दस्तावेज़ प्रकार को परिभाषित करते हैं, इस प्रकार एक संग्रह में दस्तावेज़ के लिए सभी बाधाओं को समूहित करते हैं।
* डीटीडी नामस्थान द्वारा उपयोग किए जाने वाले प्रकारों के अतिरिक्त दस्तावेज़ प्रकार को परिभाषित करते हैं, इस प्रकार संग्रह में दस्तावेज़ के लिए सभी बाधाओं को समूहित करते हैं।


डीटीडी की निम्नलिखित सीमाएँ हैं:
डीटीडी की निम्नलिखित सीमाएँ हैं:
* उनके पास एक्सएमएल के नए फीचर (सॉफ्टवेयर डिजाइन) के लिए कोई स्पष्ट समर्थन नहीं है, सबसे महत्वपूर्ण एक्सएमएल नेमस्पेस।
* उनके पास एक्सएमएल के नए फीचर (सॉफ्टवेयर डिजाइन) के लिए कोई स्पष्ट समर्थन नहीं है, सबसे महत्वपूर्ण एक्सएमएल नेमस्पेस है।
* उनमें अभिव्यक्ति की कमी है। XML DTDs SGML DTDs की तुलना में सरल होते हैं और कुछ संरचनाएँ होती हैं जिन्हें नियमित व्याकरण के साथ व्यक्त नहीं किया जा सकता है। डीटीडी केवल प्रारंभिक डेटाटाइप का समर्थन करते हैं।
* उनमें अभिव्यक्ति की कमी है। एक्सएमएल डीटीडी एसजीएमएल डीटीडी की तुलना में सरल होते हैं और कुछ संरचनाएँ होती हैं जिन्हें नियमित व्याकरण के साथ व्यक्त नहीं किया जा सकता है। डीटीडी केवल प्रारंभिक डेटाटाइप का समर्थन करते हैं।
* उनमें पठनीयता का अभाव है। डीटीडी डिजाइनर आमतौर पर पैरामीटर इकाइयों का भारी उपयोग करते हैं (जो अनिवार्य रूप से टेक्स्ट मैक्रो (कंप्यूटर साइंस) के रूप में व्यवहार करते हैं), जो जटिल व्याकरण को परिभाषित करना आसान बनाता है, लेकिन स्पष्टता की कीमत पर।
* उनमें पठनीयता का अभाव है। डीटीडी डिजाइनर सामान्यतः मापदंड इकाइयों का भारी उपयोग करते हैं (जो अनिवार्य रूप से टेक्स्ट मैक्रो (कंप्यूटर साइंस) के रूप में व्यवहार करते हैं), जो जटिल व्याकरण को परिभाषित करना सरल बनाता है, किन्तु स्पष्टता की मूल्य पर प्रयोग किया जाता है।
* वे स्कीमा का वर्णन करने के लिए SGML से विरासत में मिले रेगुलर एक्सप्रेशन सिंटैक्स पर आधारित सिंटैक्स का उपयोग करते हैं। विशिष्ट XML API जैसे कि XML के लिए सरल API अनुप्रयोगों को सिंटैक्स के संरचित प्रतिनिधित्व की पेशकश करने का प्रयास नहीं करते हैं, इसलिए यह तत्व-आधारित सिंटैक्स की तुलना में प्रोग्रामर के लिए कम सुलभ हो सकता है।
* वे स्कीमा का वर्णन करने के लिए एसजीएमएल से विरासत में मिले रेगुलर एक्सप्रेशन सिंटैक्स पर आधारित सिंटैक्स का उपयोग करते हैं। विशिष्ट एक्सएमएल एपीआई जैसे कि एक्सएमएल के लिए सरल एपीआई अनुप्रयोगों को सिंटैक्स के संरचित प्रतिनिधित्व की प्रस्तुति करने का प्रयास नहीं करते हैं, इसलिए यह तत्व-आधारित सिंटैक्स की तुलना में प्रोग्रामर के लिए कम सुलभ हो सकता है।


दो अजीबोगरीब विशेषताएं जो अन्य स्कीमा प्रकारों से डीटीडी को अलग करती हैं, एक्सएमएल दस्तावेज़ों के भीतर डीटीडी को एम्बेड करने और संस्थाओं को परिभाषित करने के लिए सिंटैक्टिक समर्थन हैं, जो टेक्स्ट या मार्कअप के मनमाना टुकड़े हैं जो एक्सएमएल प्रोसेसर डीटीडी में और एक्सएमएल दस्तावेज़ में कहीं भी सम्मिलित करता है। संदर्भित हैं, जैसे चरित्र बच निकलता है।
दो विचित्र विशेषताएं जो अन्य स्कीमा प्रकारों से डीटीडी को अलग करती हैं, एक्सएमएल दस्तावेज़ों के अन्दर डीटीडी को एम्बेड करने और संस्थाओं को परिभाषित करने के लिए सिंटैक्टिक समर्थन हैं, जो टेक्स्ट या मार्कअप के अधिक टुकड़े हैं जो एक्सएमएल प्रोसेसर डीटीडी में और एक्सएमएल दस्तावेज़ में कहीं भी सम्मिलित करता है। संदर्भित हैं, जैसे कैरेक्टर बच निकलता है।


इसकी सर्वव्यापकता के कारण डीटीडी तकनीक अभी भी कई अनुप्रयोगों में उपयोग की जाती है।
इसकी सर्वव्यापकता के कारण डीटीडी तकनीक अभी भी कई अनुप्रयोगों में उपयोग की जाती है।


=== स्कीमा ===
=== स्कीमा ===
{{Main|XML Schema (W3C)}}
{{Main|एक्सएमएल स्कीमा (डब्ल्यू3सी)}}
W3C द्वारा DTDs के उत्तराधिकारी के रूप में वर्णित एक नई स्कीमा भाषा, XML स्कीमा (W3C) है, जिसे अक्सर XML स्कीमा उदाहरणों, XSD (XML स्कीमा परिभाषा) के लिए [[प्रथमाक्षर]] द्वारा संदर्भित किया जाता है। एक्सएमएल भाषाओं का वर्णन करने में डीटीडी की तुलना में एक्सएसडी कहीं अधिक शक्तिशाली हैं। वे एक समृद्ध डेटा प्रकार प्रणाली का उपयोग करते हैं और XML दस्तावेज़ की तार्किक संरचना पर अधिक विस्तृत बाधाओं की अनुमति देते हैं। XSD एक XML-आधारित प्रारूप का भी उपयोग करते हैं, जिससे उन्हें संसाधित करने में सहायता के लिए सामान्य XML टूल का उपयोग करना संभव हो जाता है।


xs: स्कीमा तत्व जो स्कीमा को परिभाषित करता है:
डब्ल्यू3सी द्वारा डीटीडी के उत्तराधिकारी के रूप में वर्णित नई स्कीमा भाषा, एक्सएमएल स्कीमा (डब्ल्यू3सी) है, जिसे अधिकांशतः एक्सएमएल स्कीमा उदाहरणों, एक्सएसडी (एक्सएमएल स्कीमा परिभाषा) के लिए [[प्रथमाक्षर]] द्वारा संदर्भित किया जाता है। एक्सएमएल भाषाओं का वर्णन करने में डीटीडी की तुलना में एक्सएसडी कहीं अधिक शक्तिशाली हैं। वे समृद्ध डेटा प्रकार प्रणाली का उपयोग करते हैं और एक्सएमएल दस्तावेज़ की तार्किक संरचना पर अधिक विस्तृत बाधाओं की अनुमति देते हैं। एक्सएसडी एक्सएमएल-आधारित प्रारूप का भी उपयोग करते हैं, जिससे उन्हें संसाधित करने में सहायता के लिए सामान्य एक्सएमएल टूल का उपयोग करना संभव हो जाता है।<syntaxhighlight lang="abl">
<वाक्यविन्यास प्रकाश लैंग = एक्सएमएल>
<?xml version="1.0" encoding="UTF-8" ?>
<?xml संस्करण = 1.0 एन्कोडिंग = UTF-8 ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"></xs:schema>
<xs:schema xmlns:xs= http://www.w3.org/2001/XMLSchema ></xs:schema>
</syntaxhighlight>
</वाक्यविन्यास हाइलाइट>


=== आराम एनजी ===
=== आराम एनजी ===
RELAX NG (XML अगली पीढ़ी के लिए नियमित भाषा) को शुरू में OASIS (संगठन) द्वारा निर्दिष्ट किया गया था और अब यह एक मानक है (भाग 2: DSDL|ISO/IEC 19757 - DSDL का नियमित-व्याकरण-आधारित सत्यापन)। RELAX NG स्कीमा को XML आधारित सिंटैक्स या अधिक कॉम्पैक्ट गैर-XML सिंटैक्स में लिखा जा सकता है; दो सिंटैक्स हैं आइसोमॉर्फिक और जेम्स क्लार्क (प्रोग्रामर) का रूपांतरण उपकरण—[http://www.thaiopensource.com/relaxng/trang.html ट्रांग]—जानकारी खोए बिना उनके बीच रूपांतरण कर सकते हैं। RELAX NG में XML स्कीमा की तुलना में एक सरल परिभाषा और सत्यापन ढांचा है, जिससे इसे उपयोग करना और कार्यान्वित करना आसान हो जाता है। इसमें डेटाटाइप फ्रेमवर्क प्लग-इन (कंप्यूटिंग)|प्लग-इन्स; एक RELAX NG स्कीमा लेखक, उदाहरण के लिए, XML स्कीमा डेटाटाइप्स में परिभाषाओं के अनुरूप XML दस्तावेज़ में मानों की आवश्यकता हो सकती है।
रिलैक्स एनजी (एक्सएमएल अगली पीढ़ी के लिए नियमित भाषा) को प्रारंभ में ओएसिस (संगठन) द्वारा निर्दिष्ट किया गया था और अब यह मानक है (भाग 2: डीएसडीएल या आईएसओ/आईईसी 19757 - डीएसडीएल का नियमित-व्याकरण-आधारित सत्यापन) रिलैक्स एनजी स्कीमा को एक्सएमएल आधारित सिंटैक्स या अधिक कॉम्पैक्ट गैर-एक्सएमएल सिंटैक्स में लिखा जा सकता है; दो सिंटैक्स हैं आइसोमॉर्फिक और जेम्स क्लार्क (प्रोग्रामर) का रूपांतरण उपकरण [http://www.thaiopensource.com/relaxng/trang.html ट्रांग] जानकारी खोए बिना उनके बीच रूपांतरण कर सकते हैं। रिलैक्स एनजी में एक्सएमएल स्कीमा की तुलना में सरल परिभाषा और सत्यापन रुपरेखा है, जिससे इसे उपयोग करना और कार्यान्वित करना सरल हो जाता है। इसमें डेटाटाइप फ्रेमवर्क प्लग-इन (कंप्यूटिंग) या प्लग-इन्स; रिलैक्स एनजी स्कीमा लेखक, उदाहरण के लिए, एक्सएमएल स्कीमा डेटाटाइप्स में परिभाषाओं के अनुरूप एक्सएमएल दस्तावेज़ में मानों की आवश्यकता हो सकती है।


=== स्कीमट्रॉन ===
=== स्कीमट्रॉन ===
स्कैमेट्रॉन एक XML दस्तावेज़ में पैटर्न की उपस्थिति या अनुपस्थिति के बारे में अभिकथन (कंप्यूटिंग) करने के लिए एक भाषा है। यह आमतौर पर XPath एक्सप्रेशन का उपयोग करता है। स्कीमट्रॉन अब एक मानक है (भाग 3: DSDL|ISO/IEC 19757 - DSDL का नियम-आधारित सत्यापन)।
स्कैमेट्रॉन एक्सएमएल दस्तावेज़ में पैटर्न की उपस्थिति या अनुपस्थिति के बारे में अभिकथन (कंप्यूटिंग) करने के लिए भाषा है। यह सामान्यतः एक्सपाथ एक्सप्रेशन का उपयोग करता है। स्कीमट्रॉन अब मानक है (भाग 3: डीएसडीएल या आईएसओ/आईईसी 19757 - डीएसडीएल का नियम-आधारित सत्यापन)।


=== डीएसडीएल और अन्य स्कीमा भाषाएं ===
=== डीएसडीएल और अन्य स्कीमा भाषाएं ===
दस्तावेज़ स्कीमा परिभाषा भाषाएँ (दस्तावेज़ स्कीमा परिभाषा भाषाएँ) एक बहु-भाग ISO/IEC मानक (ISO/IEC 19757) है जो विशिष्ट समस्याओं पर लक्षित छोटी स्कीमा भाषाओं के एक व्यापक सेट को एक साथ लाता है। DSDL में RELAX NG पूर्ण और कॉम्पैक्ट सिंटैक्स, स्कीमाट्रॉन अभिकथन भाषा, और डेटाटाइप्स को परिभाषित करने के लिए भाषाएं, वर्ण प्रदर्शनों की सूची, नाम बदलने और इकाई विस्तार, और अलग-अलग सत्यापनकर्ताओं के लिए दस्तावेज़ अंशों के नामस्थान-आधारित रूटिंग शामिल हैं। डीएसडीएल स्कीमा भाषाओं में अभी एक्सएमएल स्कीमा का विक्रेता समर्थन नहीं है, और कुछ हद तक प्रकाशन के लिए एक्सएमएल स्कीमा की उपयोगिता की कमी के लिए औद्योगिक प्रकाशकों की जमीनी प्रतिक्रिया है।
दस्तावेज़ स्कीमा परिभाषा भाषाएँ (दस्तावेज़ स्कीमा परिभाषा भाषाएँ) बहु-भाग आईएसओ/आईईसी मानक (आईएसओ/आईईसी 19757) है जो विशिष्ट समस्याओं पर लक्षित छोटी स्कीमा भाषाओं के व्यापक सेट को साथ लाता है। डीएसडीएल में रिलैक्स एनजी पूर्ण और कॉम्पैक्ट सिंटैक्स, स्कीमाट्रॉन अभिकथन भाषा, और डेटाटाइप्स को परिभाषित करने के लिए भाषाएं, वर्ण प्रदर्शनों की सूची, नाम बदलने और इकाई विस्तार, और अलग-अलग सत्यापनकर्ताओं के लिए दस्तावेज़ अंशों के नामस्थान-आधारित रूटिंग सम्मिलित हैं। डीएसडीएल स्कीमा भाषाओं में अभी एक्सएमएल स्कीमा का विक्रेता समर्थन नहीं है, और कुछ हद तक प्रकाशन के लिए एक्सएमएल स्कीमा की उपयोगिता की कमी के लिए औद्योगिक प्रकाशकों की जमीनी प्रतिक्रिया है।


कुछ स्कीमा भाषाएँ न केवल किसी विशेष XML प्रारूप की संरचना का वर्णन करती हैं बल्कि इस प्रारूप के अनुरूप व्यक्तिगत XML फ़ाइलों के प्रसंस्करण को प्रभावित करने के लिए सीमित सुविधाएं भी प्रदान करती हैं। डीटीडी और एक्सएसडी दोनों में यह क्षमता है; उदाहरण के लिए, वे इन्फोसेट वृद्धि सुविधा और विशेषता डिफ़ॉल्ट प्रदान कर सकते हैं। RELAX NG और Schematron जानबूझकर इन्हें प्रदान नहीं करते हैं।
कुछ स्कीमा भाषाएँ न केवल किसी विशेष एक्सएमएल प्रारूप की संरचना का वर्णन करती हैं किन्तु इस प्रारूप के अनुरूप व्यक्तिगत एक्सएमएल फ़ाइलों के प्रसंस्करण को प्रभावित करने के लिए सीमित सुविधाएं भी प्रदान करती हैं। डीटीडी और एक्सएसडी दोनों में यह क्षमता है; उदाहरण के लिए, वे इन्फोसेट वृद्धि सुविधा और विशेषता डिफ़ॉल्ट प्रदान कर सकते हैं। रिलैक्स एनजी और स्कीमेट्रोन संकल्पपूर्वक इन्हें प्रदान नहीं करते हैं।


== संबंधित विनिर्देश ==
== संबंधित विनिर्देश ==
XML से निकटता से संबंधित विशिष्टताओं का एक समूह विकसित किया गया है, जो XML 1.0 के प्रारंभिक प्रकाशन के तुरंत बाद शुरू हुआ। यह अक्सर ऐसा होता है कि XML शब्द का उपयोग XML को एक या एक से अधिक अन्य तकनीकों के साथ संदर्भित करने के लिए किया जाता है जिन्हें XML कोर के हिस्से के रूप में देखा जाता है।
एक्सएमएल से निकटता से संबंधित विशिष्टताओं का समूह विकसित किया गया है, जो एक्सएमएल 1.0 के प्रारंभिक प्रकाशन के तुरंत बाद प्रारंभ हुआ था। यह अधिकांशतः ऐसा होता है कि एक्सएमएल शब्द का उपयोग एक्सएमएल को या से अधिक अन्य तकनीकों के साथ संदर्भित करने के लिए किया जाता है जिन्हें एक्सएमएल कोर के भाग के रूप में देखा जाता है।
* एक्सएमएल नेमस्पेस एक ही दस्तावेज़ को एक्सएमएल तत्वों और विभिन्न शब्दावली से ली गई विशेषताओं को शामिल करने में सक्षम बनाता है, बिना किसी नामकरण टकराव के। हालाँकि XML नामस्थान स्वयं XML विनिर्देशन का हिस्सा नहीं हैं, वस्तुतः सभी XML सॉफ़्टवेयर भी XML नामस्थानों का समर्थन करते हैं।
* एक्सएमएल नेमस्पेस ही दस्तावेज़ को एक्सएमएल तत्वों और विभिन्न शब्दावली से ली गई विशेषताओं को सम्मिलित करने में सक्षम बनाता है, बिना किसी नामकरण टकराव चूँकि एक्सएमएल नामस्थान स्वयं एक्सएमएल विनिर्देशन का भाग नहीं हैं, ऑब्जेक्टतः सभी एक्सएमएल सॉफ़्टवेयर भी एक्सएमएल नामस्थानों का समर्थन करते हैं।
* एक्सएमएल बेस परिभाषित करता है <code>xml:base</code> विशेषता, जिसका उपयोग एकल XML तत्व के दायरे में संबंधित URI संदर्भों के समाधान के लिए आधार सेट करने के लिए किया जा सकता है।
* एक्सएमएल बेस परिभाषित करता है <code>xml:base</code> विशेषता, जिसका उपयोग एकल एक्सएमएल तत्व के सीमा में संबंधित यूआरआई संदर्भों के समाधान के लिए आधार सेट करने के लिए किया जा सकता है।
* XML सूचना सेट या XML Infoset सूचना मदों के संदर्भ में XML दस्तावेज़ों के लिए एक सार डेटा मॉडल है। इन्फोसेट का उपयोग आमतौर पर एक्सएमएल भाषाओं के विनिर्देशों में किया जाता है, एक्सएमएल पर बाधाओं का वर्णन करने में सुविधा के लिए उन भाषाओं को अनुमति देता है।
* एक्सएमएल सूचना सेट या एक्सएमएल इन्फोसेट सूचना मदों के संदर्भ में एक्सएमएल दस्तावेज़ों के लिए सार डेटा मॉडल है। इन्फोसेट का उपयोग सामान्यतः एक्सएमएल भाषाओं के विनिर्देशों में किया जाता है, एक्सएमएल पर बाधाओं का वर्णन करने में सुविधा के लिए उन भाषाओं को अनुमति देता है।
* एक्सएसएल (एक्सटेंसिबल स्टाइलशीट लैंग्वेज) एक्सएमएल दस्तावेजों को बदलने और प्रस्तुत करने के लिए इस्तेमाल की जाने वाली भाषाओं का एक परिवार है, जो तीन भागों में विभाजित है:
* एक्सएसएल (एक्सटेंसिबल स्टाइलशीट भाषा) एक्सएमएल दस्तावेजों को बदलने और प्रस्तुत करने के लिए इस्तेमाल की जाने वाली भाषाओं का परिवार है, जो तीन भागों में विभाजित है:
* XSLT (XSL Transformations), XML दस्तावेज़ों को अन्य XML दस्तावेज़ों या अन्य स्वरूपों जैसे HTML, सादा पाठ, या XSL-FO में बदलने के लिए एक XML भाषा। XSLT बहुत कसकर XPath के साथ युग्मित है, जिसका उपयोग यह इनपुट XML दस्तावेज़ के घटकों, मुख्य रूप से तत्वों और विशेषताओं को संबोधित करने के लिए करता है।
* एक्सएसएलटी (एक्सएसएल ट्रांसफॉर्मेशन), एक्सएमएल दस्तावेज़ों को अन्य एक्सएमएल दस्तावेज़ों या अन्य स्वरूपों जैसे एचटीएमएल, सादा पाठ, या एक्सएसएल-एफओ में बदलने के लिए एक्सएमएल भाषा एक्सएसएलटी एक्सपाथ के साथ युग्मित है, जिसका उपयोग यह इनपुट एक्सएमएल दस्तावेज़ के घटकों, मुख्य रूप से तत्वों और विशेषताओं को संबोधित करने के लिए करता है।
* एक्सएसएल-एफओ (एक्सएसएल फॉर्मेटिंग ऑब्जेक्ट्स), एक्सएमएल दस्तावेजों को प्रस्तुत करने के लिए एक एक्सएमएल भाषा, अक्सर पीडीएफ उत्पन्न करने के लिए प्रयोग की जाती है।
* एक्सएसएल-एफओ (एक्सएसएल फॉर्मेटिंग ऑब्जेक्ट्स), एक्सएमएल दस्तावेजों को प्रस्तुत करने के लिए एक्सएमएल भाषा, अधिकांशतः पीडीएफ उत्पन्न करने के लिए प्रयोग की जाती है।
* XPath (XML पाथ लैंग्वेज), एक XML दस्तावेज़ के घटकों (तत्वों, विशेषताओं, और इसी तरह) को संबोधित करने के लिए एक गैर-XML भाषा। XPath का व्यापक रूप से अन्य कोर-एक्सएमएल विनिर्देशों में और एक्सएमएल-एन्कोडेड डेटा तक पहुंचने के लिए प्रोग्रामिंग पुस्तकालयों में उपयोग किया जाता है।
* एक्सपाथ (एक्सएमएल पाथ भाषा), एक्सएमएल दस्तावेज़ के घटकों (तत्वों, विशेषताओं, और इसी तरह) को संबोधित करने के लिए गैर-एक्सएमएल भाषा या एक्सपाथ का व्यापक रूप से अन्य कोर-एक्सएमएल विनिर्देशों में और एक्सएमएल-एन्कोडेड डेटा तक पहुंचने के लिए प्रोग्रामिंग पुस्तकालयों में उपयोग किया जाता है।
* XQuery (XML क्वेरी) एक XML क्वेरी भाषा है जो XPath और XML स्कीमा में दृढ़ता से निहित है। यह XML तक पहुँचने, हेरफेर करने और वापस करने के तरीके प्रदान करता है, और मुख्य रूप से XML डेटाबेस के लिए एक क्वेरी भाषा के रूप में माना जाता है।
* एक्सक्वेरी (एक्सएमएल क्वेरी) एक्सएमएल क्वेरी भाषा है जो एक्सपाथ और एक्सएमएल स्कीमा में दृढ़ता से निहित है। यह एक्सएमएल तक पहुँचने, हेरफेर करने और वापस करने के विधि प्रदान करता है, और मुख्य रूप से एक्सएमएल डेटाबेस के लिए क्वेरी भाषा के रूप में माना जाता है।
* XML हस्ताक्षर XML सामग्री पर डिजिटल हस्ताक्षर बनाने के लिए सिंटैक्स और प्रोसेसिंग नियमों को परिभाषित करता है।
* एक्सएमएल हस्ताक्षर एक्सएमएल पदार्थ पर डिजिटल हस्ताक्षर बनाने के लिए सिंटैक्स और प्रोसेसिंग नियमों को परिभाषित करता है।
* XML एन्क्रिप्शन एन्क्रिप्शन XML सामग्री के लिए सिंटैक्स और प्रसंस्करण नियमों को परिभाषित करता है।
* एक्सएमएल एन्क्रिप्शन एन्क्रिप्शन एक्सएमएल पदार्थ के लिए सिंटैक्स और प्रसंस्करण नियमों को परिभाषित करता है।
* एक्सएमएल मॉडल (भाग 11: डीएसडीएल की स्कीमा एसोसिएशन | आईएसओ/आईईसी 19757 - डीएसडीएल) किसी भी एक्सएमएल दस्तावेज़ को स्कीमा और सत्यापन के किसी भी स्कीमा प्रकार के साथ संबद्ध करने के माध्यम को परिभाषित करता है।
* एक्सएमएल मॉडल (भाग 11: डीएसडीएल की स्कीमा एसोसिएशन या आईएसओ/आईईसी 19757 - डीएसडीएल) किसी भी एक्सएमएल दस्तावेज़ को स्कीमा और सत्यापन के किसी भी स्कीमा प्रकार के साथ संबद्ध करने के माध्यम को परिभाषित करता है।


XML कोर के हिस्से के रूप में कल्पना की गई कुछ अन्य विशिष्टताओं को व्यापक रूप से अपनाने में विफल रहे हैं, जिनमें XInclude, XLink, और XPointer शामिल हैं।
एक्सएमएल कोर के भाग के रूप में कल्पना की गई कुछ अन्य विशिष्टताओं को व्यापक रूप से अपनाने में विफल रहे हैं, जिनमें एक्स इन्क्लुड करें, एक्स लिंक, और एक्स पॉइंटर सम्मिलित हैं।


== प्रोग्रामिंग इंटरफेस ==
== प्रोग्रामिंग इंटरफेस ==
एक्सएमएल के डिजाइन लक्ष्यों में शामिल हैं, ऐसे प्रोग्राम लिखना आसान होगा जो एक्सएमएल दस्तावेजों को प्रोसेस करते हैं।<ref name="XML Goals"/>इसके बावजूद, XML विनिर्देश में इस बारे में लगभग कोई जानकारी नहीं है कि प्रोग्रामर इस तरह की प्रोसेसिंग कैसे कर सकते हैं। एक्सएमएल इंफोसेट विनिर्देश एक्सएमएल दस्तावेज़ के भीतर निर्माणों को संदर्भित करने के लिए एक शब्दावली प्रदान करता है, लेकिन इस जानकारी तक पहुंचने के तरीके पर कोई मार्गदर्शन प्रदान नहीं करता है। XML तक पहुँचने के लिए विभिन्न प्रकार के API विकसित और उपयोग किए गए हैं, और कुछ को मानकीकृत किया गया है।
एक्सएमएल के डिजाइन लक्ष्यों में सम्मिलित हैं, ऐसे प्रोग्राम लिखना सरल होगा जो एक्सएमएल दस्तावेजों को प्रोसेस करते हैं।<ref name="XML Goals"/> इसके अतिरिक्त, एक्सएमएल विनिर्देश में इस बारे में लगभग कोई जानकारी नहीं है कि प्रोग्रामर इस तरह की प्रोसेसिंग कैसे कर सकते हैं। एक्सएमएल इंफोसेट विनिर्देश एक्सएमएल दस्तावेज़ के अन्दर निर्माणों को संदर्भित करने के लिए शब्दावली प्रदान करता है, किन्तु इस जानकारी तक पहुंचने के विधि पर कोई मार्गदर्शन प्रदान नहीं करता है। एक्सएमएल तक पहुँचने के लिए विभिन्न प्रकार के एपीआई विकसित और उपयोग किए गए हैं, और कुछ को मानकीकृत किया गया है।


XML प्रोसेसिंग के लिए मौजूदा API इन श्रेणियों में आते हैं:
एक्सएमएल प्रोसेसिंग के लिए उपस्थिता एपीआई इन श्रेणियों में आते हैं:
* स्ट्रीम-ओरिएंटेड एपीआई प्रोग्रामिंग भाषा से सुलभ हैं, उदाहरण के लिए एक्सएमएल और स्टैक्स के लिए सरल एपीआई।
* स्ट्रीम-ओरिएंटेड एपीआई प्रोग्रामिंग भाषा से सुलभ हैं, उदाहरण के लिए एक्सएमएल और स्टैक्स के लिए सरल एपीआई है।
* ट्री-ट्रैवर्सल एपीआई एक प्रोग्रामिंग भाषा से सुलभ है, उदाहरण के लिए डोम (एक्सएमएल एपीआई)
* ट्री-ट्रैवर्सल एपीआई प्रोग्रामिंग भाषा से सुलभ है, उदाहरण के लिए डोम (एक्सएमएल एपीआई) है।
* XML डेटा बाइंडिंग, जो एक XML दस्तावेज़ और प्रोग्रामिंग-भाषा वस्तुओं के बीच एक स्वचालित अनुवाद प्रदान करता है।
* एक्सएमएल डेटा बाइंडिंग, जो एक्सएमएल दस्तावेज़ और प्रोग्रामिंग-भाषा ऑब्जेक्टओं के बीच स्वचालित अनुवाद प्रदान करता है।
* घोषणात्मक रूपांतरण भाषाएँ जैसे XSLT और XQuery।
* प्रकाशनत्मक रूपांतरण भाषाएँ जैसे एक्सएसएलटी और एक्सक्वेरी है।
* सामान्य प्रयोजन की प्रोग्रामिंग भाषाओं के लिए सिंटैक्स एक्सटेंशन, उदाहरण के लिए LINQ और Scala (प्रोग्रामिंग भाषा)
* सामान्य प्रयोजन की प्रोग्रामिंग भाषाओं के लिए सिंटैक्स एक्सटेंशन, उदाहरण के लिए लिंक और स्काला (प्रोग्रामिंग भाषा) है।


स्ट्रीम-ओरिएंटेड सुविधाओं के लिए कम मेमोरी की आवश्यकता होती है और, किसी XML दस्तावेज़ के रैखिक ट्रैवर्सल पर आधारित कुछ कार्यों के लिए, अन्य विकल्पों की तुलना में तेज़ और सरल होते हैं। ट्री-ट्रैवर्सल और डेटा-बाइंडिंग एपीआई को आमतौर पर बहुत अधिक मेमोरी के उपयोग की आवश्यकता होती है, लेकिन अक्सर प्रोग्रामर द्वारा उपयोग के लिए इसे अधिक सुविधाजनक पाया जाता है; कुछ में XPath एक्सप्रेशन के उपयोग के माध्यम से दस्तावेज़ घटकों की घोषणात्मक पुनर्प्राप्ति शामिल है।
स्ट्रीम-ओरिएंटेड सुविधाओं के लिए कम मेमोरी की आवश्यकता होती है और, किसी एक्सएमएल दस्तावेज़ के रैखिक ट्रैवर्सल पर आधारित कुछ कार्यों के लिए, अन्य विकल्पों की तुलना में तेज़ और सरल होते हैं। ट्री-ट्रैवर्सल और डेटा-बाइंडिंग एपीआई को सामान्यतः बहुत अधिक मेमोरी के उपयोग की आवश्यकता होती है, किन्तु अधिकांशतः प्रोग्रामर द्वारा उपयोग के लिए इसे अधिक सुविधाजनक पाया जाता है; कुछ में एक्सपाथ एक्सप्रेशन के उपयोग के माध्यम से दस्तावेज़ घटकों की प्रकाशनत्मक पुनर्प्राप्ति सम्मिलित है।


XSLT को XML दस्तावेज़ परिवर्तनों के घोषणात्मक विवरण के लिए डिज़ाइन किया गया है, और सर्वर-साइड पैकेज और वेब ब्राउज़र दोनों में व्यापक रूप से लागू किया गया है। XQuery अपनी कार्यक्षमता में XSLT को ओवरलैप करता है, लेकिन बड़े XML डेटाबेस की खोज के लिए अधिक डिज़ाइन किया गया है।
एक्सएसएलटी को एक्सएमएल दस्तावेज़ परिवर्तनों के प्रकाशनत्मक विवरण के लिए डिज़ाइन किया गया है, और सर्वर-साइड पैकेज और वेब ब्राउज़र दोनों में व्यापक रूप से प्रयुक्त किया गया है। एक्सक्वेरी अपनी कार्यक्षमता में एक्सएसएलटी को ओवरलैप करता है, किन्तु बड़े एक्सएमएल डेटाबेस की खोज के लिए अधिक डिज़ाइन किया गया है।


=== एक्सएमएल के लिए सरल एपीआई ===
=== एक्सएमएल के लिए सरल एपीआई ===
{{Main|Simple API for XML}}
{{Main|एक्सएमएल के लिए सरल एपीआई}}
एक्सएमएल के लिए सरल एपीआई (एसएएक्स) एक लेक्सिकल विश्लेषण, इवेंट-संचालित प्रोग्रामिंग है। इवेंट-संचालित एपीआई जिसमें एक दस्तावेज़ को क्रमिक रूप से पढ़ा जाता है और इसकी सामग्री को कॉलबैक (कंप्यूटर प्रोग्रामिंग) के रूप में विभिन्न तरीकों (कंप्यूटर विज्ञान) के रूप में रिपोर्ट किया जाता है। उपयोगकर्ता के डिजाइन के। SAX लागू करने के लिए तेज और कुशल है, लेकिन XML से यादृच्छिक रूप से जानकारी निकालने के लिए उपयोग करना मुश्किल है, क्योंकि यह दस्तावेज़ के किस भाग को संसाधित किया जा रहा है, इसका ट्रैक रखने के साथ एप्लिकेशन लेखक पर बोझ पड़ता है। यह उन स्थितियों के लिए बेहतर है जिनमें कुछ प्रकार की सूचनाओं को हमेशा एक ही तरीके से संभाला जाता है, चाहे वे दस्तावेज़ में कहीं भी हों।
 
एक्सएमएल के लिए सरल एपीआई (एसएएक्स) लेक्सिकल विश्लेषण, इवेंट-संचालित प्रोग्रामिंग है। इवेंट-संचालित एपीआई जिसमें दस्तावेज़ को क्रमिक रूप से पढ़ा जाता है और इसकी पदार्थ को कॉलबैक (कंप्यूटर प्रोग्रामिंग) के रूप में विभिन्न विधियों (कंप्यूटर विज्ञान) के रूप में सूची किया जाता है। उपयोगकर्ता के डिजाइन के। सैक्स प्रयुक्त करने के लिए तेज और कुशल है, किन्तु एक्सएमएल से यादृच्छिक रूप से जानकारी निकालने के लिए उपयोग करना कठिन है, क्योंकि यह दस्तावेज़ के किस भाग को संसाधित किया जा रहा है, इसका ट्रैक रखने के साथ एप्लिकेशन लेखक पर बोझ पड़ता है। यह उन स्थितियों के लिए उत्तम है जिनमें कुछ प्रकार की सूचनाओं को सदैव ही विधि से संभाला जाता है, वे दस्तावेज़ में कहीं भी हों उसे खोजा जा सकता है।


=== पार्सिंग खींचो ===
=== पार्सिंग पुल ===
पुल पार्सिंग दस्तावेज़ को इटरेटर पैटर्न का उपयोग करके अनुक्रम में पढ़ी गई वस्तुओं की एक श्रृंखला के रूप में मानता है। यह रिकर्सिव डिसेंट पार्सर लिखने की अनुमति देता है जिसमें पार्सिंग करने वाले कोड की संरचना एक्सएमएल की संरचना को पार्स किया जा रहा है, और इंटरमीडिएट पार्स किए गए परिणामों का उपयोग किया जा सकता है और पार्सिंग करने वाले कार्यों के भीतर स्थानीय चर के रूप में उपयोग किया जा सकता है, या पारित किया जा सकता है ( फ़ंक्शन पैरामीटर्स के रूप में) निम्न-स्तरीय फ़ंक्शंस में, या उच्च-स्तरीय फ़ंक्शंस में लौटाया गया (फ़ंक्शन रिटर्न मान के रूप में)।<ref>{{cite web|url=http://www.xml.com/pub/a/2005/07/06/tr.html|title=धक्का, खींचो, अगला!|first=Bob|last=DuCharme|website=Xml.com|access-date=16 November 2017}}</ref> पुल पारसर्स के उदाहरणों में डेटा :: एडिट :: एक्सएमएल इन पर्ल (प्रोग्रामिंग लैंग्वेज), जावा (प्रोग्रामिंग लैंग्वेज) प्रोग्रामिंग लैंग्वेज, स्मॉलटॉक में XMLPullParser, PHP में XMLReader, Python (प्रोग्रामिंग लैंग्वेज) में ElementTree.iterparse, सिस्टम शामिल हैं। .NET फ्रेमवर्क में Xml.XmlReader, और DOM ट्रैवर्सल API (NodeIterator और TreeWalker)
पुल पार्सिंग दस्तावेज़ को इटरेटर पैटर्न का उपयोग करके अनुक्रम में पढ़ी गई ऑब्जेक्टओं की श्रृंखला के रूप में मानता है। यह रिकर्सिव डिसेंट पार्सर लिखने की अनुमति देता है जिसमें पार्सिंग करने वाले कोड की संरचना एक्सएमएल की संरचना को पार्स किया जा रहा है, और इंटरमीडिएट पार्स किए गए परिणामों का उपयोग किया जा सकता है और पार्सिंग करने वाले कार्यों के अन्दर स्थानीय चर के रूप में उपयोग किया जा सकता है, या पारित किया जा सकता है ( फ़ंक्शन मापदंड्स के रूप में) निम्न-स्तरीय फ़ंक्शंस में, या उच्च-स्तरीय फ़ंक्शंस में लौटाया गया (फ़ंक्शन रिटर्न मान के रूप में)।<ref>{{cite web|url=http://www.xml.com/pub/a/2005/07/06/tr.html|title=धक्का, खींचो, अगला!|first=Bob|last=DuCharme|website=Xml.com|access-date=16 November 2017}}</ref> पुल पारसर्स के उदाहरणों में डेटा एक्सएमएल इन पर्ल (प्रोग्रामिंग भाषा), जावा (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा, स्मॉलटॉक में एक्सएमएल पुल पार्सर, पीएचपी में एक्सएमएल रीडर, पायथन (प्रोग्रामिंग भाषा) में एलिमेंटट्री.इटरपरसे, सिस्टम सम्मिलित हैं। .नेट फ्रेमवर्क में एक्सएमएल.एक्सएमएलरीडर, और डोम ट्रैवर्सल एपीआई (नोडइटरेटर और ट्रीवॉकर) है।


एक पुल पार्सर एक पुनरावर्तक बनाता है जो क्रमिक रूप से XML दस्तावेज़ में विभिन्न तत्वों, विशेषताओं और डेटा पर जाता है। इस पुनरावर्तक का उपयोग करने वाला कोड वर्तमान आइटम का परीक्षण कर सकता है (उदाहरण के लिए, यह बताने के लिए कि क्या यह एक स्टार्ट-टैग या एंड-टैग, या टेक्स्ट है), और इसकी विशेषताओं (स्थानीय नाम, एक्सएमएल नेमस्पेस, एक्सएमएल विशेषताओं के मूल्य, मूल्य) का निरीक्षण कर सकता है पाठ का, आदि), और पुनरावर्तक को अगले आइटम पर भी ले जा सकता है। कोड इस प्रकार दस्तावेज़ से जानकारी निकाल सकता है क्योंकि यह इसे पार करता है। पुनरावर्ती-अवरोही दृष्टिकोण डेटा को पार्सिंग करने वाले कोड में टाइप किए गए स्थानीय चर के रूप में डेटा रखने के लिए उधार देता है, जबकि SAX, उदाहरण के लिए, आमतौर पर एक पार्सर की आवश्यकता होती है जो तत्वों के ढेर के भीतर मध्यवर्ती डेटा को मैन्युअल रूप से बनाए रखता है जो तत्व के मूल तत्व हैं विश्लेषित किया जा रहा है। SAX पार्सिंग कोड की तुलना में पुल-पार्सिंग कोड समझने और बनाए रखने के लिए अधिक सरल हो सकता है।
एक पुल पार्सर पुनरावर्तक बनाता है जो क्रमिक रूप से एक्सएमएल दस्तावेज़ में विभिन्न तत्वों, विशेषताओं और डेटा पर जाता है। इस पुनरावर्तक का उपयोग करने वाला कोड वर्तमान आइटम का परीक्षण कर सकता है (उदाहरण के लिए, यह बताने के लिए कि क्या यह स्टार्ट-टैग या एंड-टैग, या टेक्स्ट है), और इसकी विशेषताओं (स्थानीय नाम, एक्सएमएल नेमस्पेस, एक्सएमएल विशेषताओं के मूल्य, मूल्य) का निरीक्षण कर सकता है पाठ का, आदि), और पुनरावर्तक को अगले आइटम पर भी ले जा सकता है। कोड इस प्रकार दस्तावेज़ से जानकारी निकाल सकता है क्योंकि यह इसे पार करता है। पुनरावर्ती-अवरोही दृष्टिकोण डेटा को पार्सिंग करने वाले कोड में टाइप किए गए स्थानीय चर के रूप में डेटा रखने के लिए उधार देता है, जबकि सैक्स, उदाहरण के लिए, सामान्यतः पार्सर की आवश्यकता होती है जो तत्वों के ढेर के अन्दर मध्यवर्ती डेटा को मैन्युअल रूप से बनाए रखता है जो तत्व के मूल तत्व हैं विश्लेषित किया जा रहा है। सैक्स पार्सिंग कोड की तुलना में पुल-पार्सिंग कोड समझने और बनाए रखने के लिए अधिक सरल हो सकता है।


=== दस्तावेज़ वस्तु मॉडल ===
=== दस्तावेज़ ऑब्जेक्ट मॉडल ===
{{Main|Document Object Model}}
{{Main|दस्तावेज़ ऑब्जेक्ट मॉडल}}
दस्तावेज़ ऑब्जेक्ट मॉडल (डीओएम) एक एपीआई है जो पूरे दस्तावेज़ के नेविगेशन की अनुमति देता है जैसे कि यह दस्तावेज़ की सामग्री का प्रतिनिधित्व करने वाले नोड (कंप्यूटर विज्ञान) ऑब्जेक्ट (कंप्यूटर विज्ञान) का पेड़ था। एक DOM दस्तावेज़ एक पार्सर द्वारा बनाया जा सकता है, या उपयोगकर्ताओं द्वारा (सीमाओं के साथ) मैन्युअल रूप से उत्पन्न किया जा सकता है। DOM नोड्स में डेटा प्रकार सार हैं; कार्यान्वयन अपनी स्वयं की प्रोग्रामिंग भाषा-विशिष्ट भाषा बाइंडिंग प्रदान करते हैं। डीओएम कार्यान्वयन स्मृति गहन होते हैं, क्योंकि उन्हें आम तौर पर पूरे दस्तावेज़ को स्मृति में लोड करने की आवश्यकता होती है और पहुंच की अनुमति देने से पहले वस्तुओं के पेड़ के रूप में बनाया जाता है।
 
दस्तावेज़ ऑब्जेक्ट मॉडल (डीओएम) एपीआई है जो पूरे दस्तावेज़ के नेविगेशन की अनुमति देता है जैसे कि यह दस्तावेज़ की पदार्थ का प्रतिनिधित्व करने वाले नोड (कंप्यूटर विज्ञान) ऑब्जेक्ट (कंप्यूटर विज्ञान) का पेड़ था। डोम दस्तावेज़ पार्सर द्वारा बनाया जा सकता है, या उपयोगकर्ताओं द्वारा (सीमाओं के साथ) मैन्युअल रूप से उत्पन्न किया जा सकता है। डोम नोड्स में डेटा प्रकार सार हैं; इस प्रकार कार्यान्वयन अपनी स्वयं की प्रोग्रामिंग भाषा-विशिष्ट भाषा बाइंडिंग प्रदान करते हैं। डीओएम कार्यान्वयन मेमोरी गहन होते हैं, क्योंकि उन्हें सामान्यतः पूरे दस्तावेज़ को मेमोरी में लोड करने की आवश्यकता होती है और पहुंच की अनुमति देने से पहले ऑब्जेक्टओं के पेड़ के रूप में बनाया जाता है।


=== डेटा बाइंडिंग ===
=== डेटा बाइंडिंग ===
XML डेटा बाइंडिंग, DOM पार्सर द्वारा बनाई गई सामान्य वस्तुओं के विपरीत, कस्टम और दृढ़ता से टाइप की गई वस्तुओं के पदानुक्रम के लिए XML दस्तावेज़ों का बंधन है। यह दृष्टिकोण कोड विकास को सरल करता है, और कई मामलों में रन-टाइम के बजाय संकलन समय पर समस्याओं की पहचान करने की अनुमति देता है। यह उन अनुप्रयोगों के लिए उपयुक्त है जहां दस्तावेज़ संरचना ज्ञात है और आवेदन लिखे जाने के समय तय की गई है। उदाहरण डेटा बाइंडिंग सिस्टम में XML बाइंडिंग (JAXB) के लिए Java आर्किटेक्चर, .NET फ्रेमवर्क में XML सीरियलाइज़ेशन शामिल हैं।<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/ms950721.aspx|title=.NET फ्रेमवर्क में XML क्रमांकन|website=Msdn.microsoft.com|access-date=31 July 2009}}</ref> और जीएसओएपी में एक्सएमएल सीरियलाइजेशन।
एक्सएमएल डेटा बाइंडिंग, डोम पार्सर द्वारा बनाई गई सामान्य ऑब्जेक्टओं के विपरीत, कस्टम और दृढ़ता से टाइप की गई ऑब्जेक्टओं के पदानुक्रम के लिए एक्सएमएल दस्तावेज़ों का बंधन है। यह दृष्टिकोण कोड विकास को सरल करता है, और कई स्थितियों में रन-टाइम के अतिरिक्त संकलन समय पर समस्याओं की पहचान करने की अनुमति देता है। यह उन अनुप्रयोगों के लिए उपयुक्त है जहां दस्तावेज़ संरचना ज्ञात है और आवेदन लिखे जाने के समय तय की गई है। उदाहरण डेटा बाइंडिंग सिस्टम में एक्सएमएल बाइंडिंग (जेएक्सबी) के लिए जावा आर्किटेक्चर, .नेट फ्रेमवर्क में एक्सएमएल सीरियलाइज़ेशन सम्मिलित हैं।<ref>{{cite web|url=http://msdn.microsoft.com/en-us/library/ms950721.aspx|title=.NET फ्रेमवर्क में XML क्रमांकन|website=Msdn.microsoft.com|access-date=31 July 2009}}</ref> और जीएसओएपी में एक्सएमएल सीरियलाइजेशन सम्मिलित है।


=== एक्सएमएल डेटा प्रकार === के रूप में
==== '''एक्सएमएल डेटा प्रकार के रूप में''' ====
XML अन्य भाषाओं में प्रथम श्रेणी के डेटा प्रकार के रूप में प्रकट हुआ है। ईसीएमएस्क्रिप्ट/जावास्क्रिप्ट भाषा के लिए ई4एक्स (ई4एक्स) विस्तार स्पष्ट रूप से जावास्क्रिप्ट के लिए दो विशिष्ट वस्तुओं (एक्सएमएल और एक्सएमएललिस्ट) को परिभाषित करता है, जो एक्सएमएल दस्तावेज़ नोड्स और एक्सएमएल नोड सूचियों को अलग-अलग वस्तुओं के रूप में समर्थन करते हैं और पैरेंट-चाइल्ड संबंधों को निर्दिष्ट करने वाले डॉट-नोटेशन का उपयोग करते हैं।<ref>{{cite web|title=प्रसंस्करण XML E4X के साथ|url=https://developer.mozilla.org/en/core_javascript_1.5_guide/processing_xml_with_e4x|work=Mozilla Developer Center|publisher=Mozilla Foundation|access-date=2010-07-27|archive-date=2011-05-01|archive-url=https://web.archive.org/web/20110501151224/https://developer.mozilla.org/en/core_javascript_1.5_guide/processing_xml_with_e4x|url-status=dead}}</ref> E4X Mozilla 2.5+ ब्राउज़र (हालांकि अब हटा दिया गया है) और Adobe Actionscript द्वारा समर्थित है, लेकिन इसे अधिक सार्वभौमिक रूप से नहीं अपनाया गया है। Microsoft .NET 3.5 और इसके बाद के संस्करण के लिए Microsoft के LINQ कार्यान्वयन में और Scala (प्रोग्रामिंग भाषा) (जो Java VM का उपयोग करता है) में इसी तरह के नोटेशन का उपयोग किया जाता है। ओपन-सोर्स xmlsh एप्लिकेशन, जो XML हेरफेर के लिए विशेष सुविधाओं के साथ लिनक्स जैसा शेल प्रदान करता है, इसी तरह <[ ]> संकेतन का उपयोग करके XML को डेटा प्रकार के रूप में मानता है।<ref>{{cite web|url=http://www.xmlsh.org/CoreSyntax|title=एक्सएमएल शैल: कोर सिंटैक्स|website=Xmlsh.org|date=2010-05-13|access-date=22 August 2010}}</ref> संसाधन विवरण फ्रेमवर्क एक डेटा प्रकार को परिभाषित करता है <code>rdf:XMLLiteral</code> रैप्ड, कैनोनिकल XML को होल्ड करने के लिए।<ref>{{cite web|url=http://www.w3.org/TR/2003/WD-rdf-concepts-20030123/#dfn-rdf-XMLLiteral|title=रिसोर्स डिस्क्रिप्शन फ्रेमवर्क (RDF): कॉन्सेप्ट्स एंड एब्सट्रैक्ट सिंटेक्स|publisher=W3.org|access-date=22 August 2010}}</ref> फेसबुक ने PHP और जावास्क्रिप्ट भाषाओं के लिए एक्सटेंशन का उत्पादन किया है जो XML को क्रमशः E4X, अर्थात् XHP और रिएक्ट (जावास्क्रिप्ट लाइब्रेरी) #JSX के समान फैशन में कोर सिंटैक्स में जोड़ता है।
एक्सएमएल अन्य भाषाओं में प्रथम श्रेणी के डेटा प्रकार के रूप में प्रकट हुआ है। ईसीएमएस्क्रिप्ट/जावास्क्रिप्ट भाषा के लिए ई4एक्स (ई4एक्स) विस्तार स्पष्ट रूप से जावास्क्रिप्ट के लिए दो विशिष्ट ऑब्जेक्टओं (एक्सएमएल और एक्सएमएललिस्ट) को परिभाषित करता है, जो एक्सएमएल दस्तावेज़ नोड्स और एक्सएमएल नोड सूचियों को अलग-अलग ऑब्जेक्टओं के रूप में समर्थन करते हैं और पैरेंट-चाइल्ड संबंधों को निर्दिष्ट करने वाले डॉट-नोटेशन का उपयोग करते हैं।<ref>{{cite web|title=प्रसंस्करण XML E4X के साथ|url=https://developer.mozilla.org/en/core_javascript_1.5_guide/processing_xml_with_e4x|work=Mozilla Developer Center|publisher=Mozilla Foundation|access-date=2010-07-27|archive-date=2011-05-01|archive-url=https://web.archive.org/web/20110501151224/https://developer.mozilla.org/en/core_javascript_1.5_guide/processing_xml_with_e4x|url-status=dead}}</ref> ई4एक्स मोज़िला 2.5+ ब्राउज़र (चूँकि अब हटा दिया गया है) और एडोब एक्शनस्क्रिप्ट द्वारा समर्थित है, किन्तु इसे अधिक सार्वभौमिक रूप से नहीं अपनाया गया है। माइक्रोसॉफ्ट .नेट 3.5 और इसके बाद के संस्करण के लिए माइक्रोसॉफ्ट के लिंक कार्यान्वयन में और स्काला (प्रोग्रामिंग भाषा) (जो जावा वीएम का उपयोग करता है) में इसी तरह के नोटेशन का उपयोग किया जाता है। ओपन-सोर्स एक्सएमएलएसएच एप्लिकेशन, जो एक्सएमएल हेरफेर के लिए विशेष सुविधाओं के साथ लिनक्स जैसा शेल प्रदान करता है, इसी तरह <[ ]> संकेतन का उपयोग करके एक्सएमएल को डेटा प्रकार के रूप में मानता है।<ref>{{cite web|url=http://www.xmlsh.org/CoreSyntax|title=एक्सएमएल शैल: कोर सिंटैक्स|website=Xmlsh.org|date=2010-05-13|access-date=22 August 2010}}</ref> संसाधन विवरण फ्रेमवर्क डेटा प्रकार को परिभाषित करता है <code>rdf:एक्सएमएलLiteral</code> रैप्ड, कैनोनिकल एक्सएमएल को होल्ड करने के लिए।<ref>{{cite web|url=http://www.w3.org/TR/2003/WD-rdf-concepts-20030123/#dfn-rdf-XMLLiteral|title=रिसोर्स डिस्क्रिप्शन फ्रेमवर्क (RDF): कॉन्सेप्ट्स एंड एब्सट्रैक्ट सिंटेक्स|publisher=W3.org|access-date=22 August 2010}}</ref> फेसबुक ने पीएचपी और जावास्क्रिप्ट भाषाओं के लिए एक्सटेंशन का उत्पादन किया है जो एक्सएमएल को क्रमशः ई4एक्स, अर्थात् एक्सएचपी और रिएक्ट (जावास्क्रिप्ट लाइब्रेरी) या जेएसएक्स के समान फैशन में कोर सिंटैक्स में जोड़ता है।


== इतिहास ==
== इतिहास ==
XML SGML (ISO 8879) का एक एप्लिकेशन प्रोफाइल (इंजीनियरिंग) है।<ref name="iso19757-3_xmlref">{{cite journal|title=आईएसओ/आईईसी 19757-3|page=vi|publisher=[[International Organization for Standardization|ISO]]/[[International Electrotechnical Commission|IEC]]|date=1 June 2006}}</रेफरी>
एक्सएमएल एसजीएमएल (आईएसओ 8879) का एप्लिकेशन प्रोफाइल (इंजीनियरिंग) है।<ref name="iso19757-3_xmlref">{{cite journal|title=आईएसओ/आईईसी 19757-3|page=vi|publisher=[[International Organization for Standardization|ISO]]/[[International Electrotechnical Commission|IEC]]|date=1 June 2006}}</रेफरी>


इंटरनेट के उदय से पहले 1980 के दशक के अंत में शुरुआती डिजिटल मीडिया प्रकाशकों द्वारा गतिशील सूचना प्रदर्शन के लिए SGML की बहुमुखी प्रतिभा को समझा गया था।
इंटरनेट के उदय से पहले 1980 के दशक के अंत में शुरुआती डिजिटल मीडिया प्रकाशकों द्वारा गतिशील सूचना प्रदर्शन के लिए SGML की बहुमुखी प्रतिभा को समझा गया था।
रेफरी नाम = ओईडी >{{cite web|title=टिम ब्रे के साथ बातचीत: दुनिया की सूचनाओं के विशाल भंडार को वश में करने के तरीकों की खोज|url=http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=282|first=Tim |last=Bray |date=February 2005|publisher=Association for Computing Machinery's "Queue site"|access-date=16 April 2006}}</रेफरी><ref name="multimedia">{{cite book|title=इंटरएक्टिव मल्टीमीडिया|chapter=Publishers, multimedia, and interactivity|publisher=Cobb Group|isbn=1-55615-124-1|year=1988|editor1-first=Sueann|editor1-last=Ambron|editor2-first=Kristina|editor2-last=Hooper|name-list-style=amp|url-access=registration|url=https://archive.org/details/interactivemulti0000unse}}</ref> 1990 के दशक के मध्य तक SGML के कुछ चिकित्सकों ने उस समय के नए वर्ल्ड वाइड वेब के साथ अनुभव प्राप्त कर लिया था, और उनका मानना ​​था कि SGML ने कुछ समस्याओं के समाधान की पेशकश की थी जो वेब के बढ़ने की संभावना थी। डेन कोनोली (कंप्यूटर वैज्ञानिक) ने 1995 में कर्मचारियों में शामिल होने पर W3C की गतिविधियों की सूची में SGML को जोड़ा; काम 1996 के मध्य में शुरू हुआ जब सन माइक्रोसिस्टम्स के इंजीनियर जॉन बोसाक ने एक चार्टर विकसित किया और सहयोगियों की भर्ती की। एसजीएमएल और वेब दोनों में अनुभव रखने वाले लोगों के छोटे समुदाय में बोसक अच्छी तरह से जुड़ा हुआ था।<ref name="drmacro">{{cite web|title=एक्सएमएल 10 है|url=http://drmacros-xml-rants.blogspot.com/2006/11/xml-ten-year-aniversary.html|year=2006|author=Eliot Kimber|website=Drmacros-xml-rants.blogspot.com|access-date=16 November 2017}}</ref>
रेफरी नाम = ओईडी >{{cite web|title=टिम ब्रे के साथ बातचीत: दुनिया की सूचनाओं के विशाल भंडार को वश में करने के तरीकों की खोज|url=http://www.acmqueue.com/modules.php?name=Content&pa=showpage&pid=282|first=Tim |last=Bray |date=February 2005|publisher=Association for Computing Machinery's "Queue site"|access-date=16 April 2006}}</रेफरी><ref name="multimedia">{{cite book|title=इंटरएक्टिव मल्टीमीडिया|chapter=Publishers, multimedia, and interactivity|publisher=Cobb Group|isbn=1-55615-124-1|year=1988|editor1-first=Sueann|editor1-last=Ambron|editor2-first=Kristina|editor2-last=Hooper|name-list-style=amp|url-access=registration|url=https://archive.org/details/interactivemulti0000unse}}</ref> 1990 के दशक के मध्य तक एसजीएमएल के कुछ चिकित्सकों ने उस समय के नए वर्ल्ड वाइड वेब के साथ अनुभव प्राप्त कर लिया था, और उनका मानना ​​था कि एसजीएमएल ने कुछ समस्याओं के समाधान की प्रस्तुत की थी जो वेब के बढ़ने की संभावना थी। डेन कोनोली (कंप्यूटर वैज्ञानिक) ने 1995 में कर्मचारियों में सम्मिलित होने पर डब्ल्यू3सी की गतिविधियों की सूची में एसजीएमएल को जोड़ा; काम 1996 के मध्य में प्रारंभ हुआ जब सन माइक्रोसिस्टम्स के इंजीनियर जॉन बोसाक ने चार्टर विकसित किया और सहयोगियों की भर्ती की थी। एसजीएमएल और वेब दोनों में अनुभव रखने वाले लोगों के छोटे समुदाय में बोसक अच्छी तरह से जुड़ा हुआ था।<ref name="drmacro">{{cite web|title=एक्सएमएल 10 है|url=http://drmacros-xml-rants.blogspot.com/2006/11/xml-ten-year-aniversary.html|year=2006|author=Eliot Kimber|website=Drmacros-xml-rants.blogspot.com|access-date=16 November 2017}}</ref>
XML को ग्यारह सदस्यों के एक कार्यकारी समूह द्वारा संकलित किया गया था,<ref>The working group was originally called the "Editorial Review Board." The original members and seven who were added before the first edition was complete, are listed at the end of the first edition of the XML Recommendation, at http://www.w3.org/TR/1998/REC-xml-19980210.</ref> (मोटे तौर पर) 150 सदस्यीय हित समूह द्वारा समर्थित। इंटरेस्ट ग्रुप मेलिंग लिस्ट पर तकनीकी बहस हुई और मुद्दों को आम सहमति से सुलझाया गया, या जब वह विफल हो गया, तो वर्किंग ग्रुप के बहुमत से। 4 दिसंबर, 1997 को माइकल स्पर्बर्ग-मैकक्वीन द्वारा डिजाइन निर्णयों और उनके तर्कों का एक रिकॉर्ड संकलित किया गया था।<ref>{{cite web|url=http://www.w3.org/XML/9712-reports.html|title=W3C SGML ERB से SGML WG को और W3C XML ERB से XML SIG को रिपोर्ट|publisher=W3.org|access-date=31 July 2009}}</ref> जेम्स क्लार्क (एक्सएमएल विशेषज्ञ) ने कार्यकारी समूह के तकनीकी नेतृत्व के रूप में कार्य किया, विशेष रूप से खाली-तत्व में योगदान दिया <code>&lt;empty&nbsp;/></code> वाक्य रचना और नाम XML . जिन अन्य नामों पर विचार किया गया उनमें मैग्मा (सामान्यीकृत मार्कअप अनुप्रयोगों के लिए न्यूनतम वास्तुकला), एसएलआईएम (इंटरनेट मार्कअप के लिए संरचित भाषा) और एमजीएमएल (न्यूनतम सामान्यीकृत मार्कअप भाषा) शामिल हैं। विनिर्देश के सह-संपादक मूल रूप से टिम ब्रे और माइकल स्पर्बर्ग-मैकक्वीन थे। प्रोजेक्ट के बीच में ही ब्रे ने नेटस्केप कम्युनिकेशंस कॉरपोरेशन के साथ एक कंसल्टिंग एंगेजमेंट स्वीकार कर लिया, जिससे माइक्रोसॉफ्ट ने जोरदार विरोध किया। ब्रे को अस्थायी रूप से संपादक के पद से इस्तीफा देने के लिए कहा गया। इसके कारण वर्किंग ग्रुप में तीव्र विवाद हुआ, जिसे अंततः तीसरे सह-संपादक के रूप में माइक्रोसॉफ्ट के जीन पाओली की नियुक्ति से हल किया गया।


एक्सएमएल वर्किंग ग्रुप कभी आमने-सामने नहीं मिला; डिजाइन ईमेल और साप्ताहिक टेलीकॉन्फ्रेंस के संयोजन का उपयोग करके पूरा किया गया था। प्रमुख डिजाइन निर्णय अगस्त और नवंबर 1996 के बीच गहन काम के एक छोटे विस्फोट में पहुंचे,<ref>{{cite web|url=http://java.sun.com/xml/birth_of_xml.html|title=जावा डेवलपर्स के लिए ओरेकल टेक्नोलॉजी नेटवर्क - ओरेकल टेक्नोलॉजी नेटवर्क - ओरेकल|website=Java.sun.com|access-date=16 November 2017}}</ref> जब XML विनिर्देशन का पहला वर्किंग ड्राफ्ट प्रकाशित किया गया था।<ref>{{cite web|url=http://www.w3.org/TR/WD-xml-961114.html|title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML)|publisher=W3.org|date=1996-11-14|access-date=31 July 2009}}</ref> आगे की डिजाइन का काम 1997 तक जारी रहा, और XML 1.0 फरवरी 10, 1998 को W3C सिफारिश बन गया।
एक्सएमएल को ग्यारह सदस्यों के कार्यकारी समूह द्वारा संकलित किया गया था,<ref>The working group was originally called the "Editorial Review Board." The original members and seven who were added before the first edition was complete, are listed at the end of the first edition of the XML Recommendation, at http://www.w3.org/TR/1998/REC-xml-19980210.</ref> 150 सदस्यीय हित समूह द्वारा समर्थित या इंटरेस्ट समूह मेलिंग लिस्ट पर तकनीकी बहस हुई और कथनों को सामान्य सहमति से सुलझाया गया था, या जब वह विफल हो गया, तो वर्किंग समूह के बहुमत से 4 दिसंबर, 1997 को माइकल स्पर्बर्ग-मैकक्वीन द्वारा डिजाइन निर्णयों और उनके तर्कों का रिकॉर्ड संकलित किया गया था।<ref>{{cite web|url=http://www.w3.org/XML/9712-reports.html|title=W3C SGML ERB से SGML WG को और W3C XML ERB से XML SIG को रिपोर्ट|publisher=W3.org|access-date=31 July 2009}}</ref> जेम्स क्लार्क (एक्सएमएल विशेषज्ञ) ने कार्यकारी समूह के तकनीकी नेतृत्व के रूप में कार्य किया था , विशेष रूप से खाली-तत्व में योगदान दिया <code>&lt;empty&nbsp;/></code> वाक्य रचना और नाम एक्सएमएल . जिन अन्य नामों पर विचार किया गया उनमें मैग्मा (सामान्यीकृत मार्कअप अनुप्रयोगों के लिए न्यूनतम वास्तुकला), एसएलआईएम (इंटरनेट मार्कअप के लिए संरचित भाषा) और एमजीएमएल (न्यूनतम सामान्यीकृत मार्कअप भाषा) सम्मिलित हैं। विनिर्देश के सह-संपादक मूल रूप से टिम ब्रे और माइकल स्पर्बर्ग-मैकक्वीन थे। प्रोजेक्ट के बीच में ही ब्रे ने नेटस्केप कम्युनिकेशंस कॉरपोरेशन के साथ कंसल्टिंग एंगेजमेंट स्वीकार कर लिया था , जिससे माइक्रोसॉफ्ट ने बलदार विरोध किया था । ब्रे को अस्थायी रूप से संपादक के पद से इस्तीफा देने के लिए कहा गया। इसके कारण वर्किंग समूह में तीव्र विवाद हुआ था , जिसे अंततः तीसरे सह-संपादक के रूप में माइक्रोसॉफ्ट के जीन पाओली की नियुक्ति से हल किया गया था ।
 
एक्सएमएल वर्किंग समूह कभी आमने-सामने नहीं मिला; डिजाइन ईमेल और साप्ताहिक टेलीकॉन्फ्रेंस के संयोजन का उपयोग करके पूरा किया गया था। प्रमुख डिजाइन निर्णय अगस्त और नवंबर 1996 के बीच गहन काम के छोटे विस्फोट में पहुंचे,<ref>{{cite web|url=http://java.sun.com/xml/birth_of_xml.html|title=जावा डेवलपर्स के लिए ओरेकल टेक्नोलॉजी नेटवर्क - ओरेकल टेक्नोलॉजी नेटवर्क - ओरेकल|website=Java.sun.com|access-date=16 November 2017}}</ref> जब एक्सएमएल विनिर्देशन का पहला वर्किंग ड्राफ्ट प्रकाशित किया गया था।<ref>{{cite web|url=http://www.w3.org/TR/WD-xml-961114.html|title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML)|publisher=W3.org|date=1996-11-14|access-date=31 July 2009}}</ref> आगे की डिजाइन का काम 1997 तक जारी रहा, और एक्सएमएल 1.0 फरवरी 10, 1998 को डब्ल्यू3सी पक्षसमर्थन बन गया था ।


=== स्रोत ===
=== स्रोत ===
XML एक ISO मानक SGML का प्रोफाइल है, और अधिकांश XML SGML अपरिवर्तित से आता है। SGML से तार्किक और भौतिक संरचनाओं (तत्वों और संस्थाओं) का पृथक्करण होता है, व्याकरण-आधारित सत्यापन (DTDs) की उपलब्धता, डेटा और मेटाडेटा (तत्वों और विशेषताओं) का पृथक्करण, मिश्रित सामग्री, प्रतिनिधित्व (प्रसंस्करण) से प्रसंस्करण का पृथक्करण निर्देश), और डिफ़ॉल्ट कोण-ब्रैकेट सिंटैक्स। एसजीएमएल घोषणा को हटा दिया गया था; इस प्रकार XML का एक निश्चित सीमांकक सेट है और यूनिकोड को दस्तावेज़ वर्ण एन्कोडिंग के रूप में अपनाता है।
एक्सएमएल आईएसओ मानक एसजीएमएल का प्रोफाइल है, और अधिकांश एक्सएमएल एसजीएमएल अपरिवर्तित से आता है। एसजीएमएल से तार्किक और भौतिक संरचनाओं (तत्वों और संस्थाओं) का पृथक्करण होता है, व्याकरण-आधारित सत्यापन (डीटीडी) की उपलब्धता, डेटा और मेटाडेटा (तत्वों और विशेषताओं) का पृथक्करण, मिश्रित पदार्थ, प्रतिनिधित्व (प्रसंस्करण) से प्रसंस्करण का पृथक्करण निर्देश), और डिफ़ॉल्ट कोण-ब्रैकेट सिंटैक्स। एसजीएमएल प्रकाशन को हटा दिया गया था; इस प्रकार एक्सएमएल का निश्चित सीमांकक सेट है और यूनिकोड को दस्तावेज़ वर्ण एन्कोडिंग के रूप में अपनाता है।


एक्सएमएल के लिए प्रौद्योगिकी के अन्य स्रोत टेक्स्ट एन्कोडिंग इनिशिएटिव (टेक्स्ट एन्कोडिंग इनिशिएटिव) थे, जो ट्रांसफर सिंटैक्स के रूप में उपयोग के लिए एसजीएमएल की एक प्रोफाइल को परिभाषित करते थे; और HTML, जिसमें तत्व अपने संसाधन के साथ तुल्यकालिक थे, दस्तावेज़ वर्ण सेट संसाधन एन्कोडिंग से अलग थे, <code>xml:lang</code> विशेषता का आविष्कार किया गया था, और (एचटीटीपी की तरह) मेटाडेटा एक लिंक की घोषणा पर आवश्यक होने के बजाय संसाधन के साथ था। आईएसओ से संबंधित चीन/जापान/कोरिया दस्तावेज़ प्रसंस्करण विशेषज्ञ समूह की स्प्रेड (पूर्व एशियाई दस्तावेजों के संबंध में मानकीकरण परियोजना) की ईआरसीएस (विस्तारित संदर्भ कंक्रीट सिंटेक्स) परियोजना एक्सएमएल 1.0 के नामकरण नियमों का आधार थी; SPREAD ने हेक्साडेसिमल न्यूमेरिक कैरेक्टर रेफरेंस और सभी यूनिकोड कैरेक्टर उपलब्ध कराने के लिए रेफरेंस की अवधारणा को भी पेश किया। ERCS, XML और HTML को बेहतर समर्थन देने के लिए, SGML मानक IS 8879 को 1996 और 1998 में WebSGML अनुकूलन के साथ संशोधित किया गया था। XML शीर्षलेख ISO HyTime का अनुसरण करता है।
एक्सएमएल के लिए प्रौद्योगिकी के अन्य स्रोत टेक्स्ट एन्कोडिंग इनिशिएटिव (टेक्स्ट एन्कोडिंग इनिशिएटिव) थे, जो ट्रांसफर सिंटैक्स के रूप में उपयोग के लिए एसजीएमएल की प्रोफाइल को परिभाषित करते थे; और एचटीएमएल, जिसमें तत्व अपने संसाधन के साथ तुल्यकालिक थे, दस्तावेज़ वर्ण सेट संसाधन एन्कोडिंग से अलग थे, <code>xml:lang</code> विशेषता का आविष्कार किया गया था, और (एचटीटीपी की तरह) मेटाडेटा लिंक की प्रकाशन पर आवश्यक होने के अतिरिक्त संसाधन के साथ था। आईएसओ से संबंधित चीन/जापान/कोरिया दस्तावेज़ प्रसंस्करण विशेषज्ञ समूह की स्प्रेड (पूर्व एशियाई दस्तावेजों के संबंध में मानकीकरण परियोजना) की ईआरसीएस (विस्तारित संदर्भ कंक्रीट सिंटेक्स) परियोजना एक्सएमएल 1.0 के नामकरण नियमों का आधार थी; स्प्रेड ने हेक्साडेसिमल न्यूमेरिक कैरेक्टर रेफरेंस और सभी यूनिकोड कैरेक्टर उपलब्ध कराने के लिए रेफरेंस की अवधारणा को भी प्रस्तुत किया। ईआरसीएस, एक्सएमएल और एचटीएमएल को उत्तम समर्थन देने के लिए, एसजीएमएल मानक IS 8879 को 1996 और 1998 में वेबएसजीएमएल अनुकूलन के साथ संशोधित किया गया था। एक्सएमएल शीर्षलेख आईएसओ हाईटाइम का अनुसरण करता है।


विचार जो चर्चा के दौरान विकसित हुए जो एक्सएमएल में उपन्यास हैं, उनमें एन्कोडिंग पहचान और एन्कोडिंग हेडर, प्रसंस्करण निर्देश लक्ष्य, एक्सएमएल: स्पेस विशेषता, और खाली-तत्व टैग के लिए नया करीबी डिलीमीटर शामिल है। वैधता के विपरीत वेल-फॉर्मेडनेस की धारणा (जो स्कीमा के बिना पार्सिंग को सक्षम करती है) को पहले XML में औपचारिक रूप दिया गया था, हालांकि इसे इलेक्ट्रॉनिक बुक टेक्नोलॉजी डायनेटेक्स्ट सॉफ्टवेयर में सफलतापूर्वक लागू किया गया था;<ref>{{cite web|author1=Jon Bosak |author2=Sun Microsystems |url=http://2006.xmlconference.org/proceedings/162/presentation.html|archive-url=https://web.archive.org/web/20070711133314/http://2006.xmlconference.org/proceedings/162/presentation.html|archive-date=2007-07-11|title=क्लोजिंग कीनोट, एक्सएमएल 2006|publisher=2006.xmlconference.org|date=2006-12-07|access-date=31 July 2009}}</ref> वाटरलू यूनिवर्सिटी न्यू ऑक्सफोर्ड इंग्लिश डिक्शनरी प्रोजेक्ट से सॉफ्टवेयर; यूनिस्कोप, टोक्यो में आरआईएसपी लिस्प एसजीएमएल टेक्स्ट प्रोसेसर; यूएस आर्मी मिसाइल कमांड IADS हाइपरटेक्स्ट सिस्टम; मेंटर ग्राफिक्स प्रसंग; इंटरलीफ और ज़ेरॉक्स पब्लिशिंग सिस्टम।
विचार जो चर्चा के दौरान विकसित हुए जो एक्सएमएल में उपन्यास हैं, उनमें एन्कोडिंग पहचान और एन्कोडिंग हेडर, प्रसंस्करण निर्देश लक्ष्य, एक्सएमएल: स्पेस विशेषता, और खाली-तत्व टैग के लिए नया निकट डिलीमीटर सम्मिलित है। वैधता के विपरीत वेल-फॉर्मेडनेस की धारणा (जो स्कीमा के बिना पार्सिंग को सक्षम करती है) को पहले एक्सएमएल में औपचारिक रूप दिया गया था, चूँकि इसे इलेक्ट्रॉनिक बुक टेक्नोलॉजी डायनेटेक्स्ट सॉफ्टवेयर में सफलतापूर्वक प्रयुक्त किया गया था;<ref>{{cite web|author1=Jon Bosak |author2=Sun Microsystems |url=http://2006.xmlconference.org/proceedings/162/presentation.html|archive-url=https://web.archive.org/web/20070711133314/http://2006.xmlconference.org/proceedings/162/presentation.html|archive-date=2007-07-11|title=क्लोजिंग कीनोट, एक्सएमएल 2006|publisher=2006.xmlconference.org|date=2006-12-07|access-date=31 July 2009}}</ref> वाटरलू यूनिवर्सिटी न्यू ऑक्सफोर्ड इंग्लिश डिक्शनरी प्रोजेक्ट से सॉफ्टवेयर; यूनिस्कोप, टोक्यो में आरआईएसपी लिस्प एसजीएमएल टेक्स्ट प्रोसेसर; यूएस आर्मी मिसाइल कमांड आईएडीएस हाइपरटेक्स्ट सिस्टम; मेंटर ग्राफिक्स प्रसंग; इंटरलीफ और ज़ेरॉक्स पब्लिशिंग सिस्टम है।


== संस्करण ==
== संस्करण ==


=== 1.0 और 1.1 ===
=== 1.0 और 1.1 ===
पहले (XML 1.0) को शुरू में 1998 में परिभाषित किया गया था। तब से इसमें मामूली संशोधन किया गया है, बिना कोई नया संस्करण संख्या दिए, और वर्तमान में यह अपने पांचवें संस्करण में है, जैसा कि 26 नवंबर, 2008 को प्रकाशित हुआ था। यह व्यापक रूप से लागू है और अभी भी है सामान्य उपयोग के लिए अनुशंसित।
पहले (एक्सएमएल 1.0) को प्रारंभ में 1998 में परिभाषित किया गया था। तब से इसमें मामूली संशोधन किया गया है, बिना कोई नया संस्करण संख्या दिए, और वर्तमान में यह अपने पांचवें संस्करण में है, जैसा कि 26 नवंबर, 2008 को प्रकाशित हुआ था। यह व्यापक रूप से प्रयुक्त है और अभी भी है सामान्य उपयोग के लिए अनुशंसित होता है।


दूसरा (एक्सएमएल 1.1) शुरू में 4 फरवरी, 2004 को प्रकाशित हुआ था, उसी दिन एक्सएमएल 1.0 तीसरे संस्करण के रूप में,<ref>{{cite web|url=http://www.w3.org/TR/2004/REC-xml-20040204|title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.0 (तीसरा संस्करण)|publisher=W3.org|access-date=22 August 2010}}</ref> और वर्तमान में इसके दूसरे संस्करण में है, जैसा कि 16 अगस्त, 2006 को प्रकाशित किया गया था। इसमें ऐसी विशेषताएं (कुछ विवादास्पद) शामिल हैं, जिनका उद्देश्य कुछ मामलों में XML का उपयोग करना आसान बनाना है।<ref name="xml11rationale">{{cite web|url=http://www.w3.org/TR/xml11/#sec-xml11|title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.1 (दूसरा संस्करण), XML 1.1 के लिए औचित्य और परिवर्तनों की सूची|access-date=20 January 2012|website=W3.org}}</ref> मुख्य परिवर्तन ईबीसीडीआईसी प्लेटफॉर्म पर उपयोग किए जाने वाले लाइन-एंडिंग वर्णों के उपयोग को सक्षम करने और यूनिकोड 3.2 से अनुपस्थित लिपियों और वर्णों के उपयोग को सक्षम करने के लिए हैं। XML 1.1 बहुत व्यापक रूप से लागू नहीं किया गया है और केवल उन लोगों के लिए अनुशंसित है जिन्हें इसकी विशेष विशेषताओं की आवश्यकता है।<ref>{{cite book|last=Harold|first=Elliotte Rusty|title=प्रभावी एक्सएमएल|publisher=Addison-Wesley|year=2004|pages=[https://archive.org/details/effectivexml50sp00haro/page/10 10–19]|url=https://archive.org/details/effectivexml50sp00haro/page/10|isbn=0-321-15040-6|url-access=registration}}</ref>
दूसरा (एक्सएमएल 1.1) प्रारंभ में 4 फरवरी, 2004 को प्रकाशित हुआ था, उसी दिन एक्सएमएल 1.0 तीसरे संस्करण के रूप में,<ref>{{cite web|url=http://www.w3.org/TR/2004/REC-xml-20040204|title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.0 (तीसरा संस्करण)|publisher=W3.org|access-date=22 August 2010}}</ref> और वर्तमान में इसके दूसरे संस्करण में है, जैसा कि 16 अगस्त, 2006 को प्रकाशित किया गया था। इसमें ऐसी विशेषताएं (कुछ विवादास्पद) सम्मिलित हैं, जिनका उद्देश्य कुछ स्थितियों में एक्सएमएल का उपयोग करना सरल बनाना है।<ref name="xml11rationale">{{cite web|url=http://www.w3.org/TR/xml11/#sec-xml11|title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.1 (दूसरा संस्करण), XML 1.1 के लिए औचित्य और परिवर्तनों की सूची|access-date=20 January 2012|website=W3.org}}</ref> मुख्य परिवर्तन ईबीसीडीआईसी प्लेटफॉर्म पर उपयोग किए जाने वाले लाइन-एंडिंग वर्णों के उपयोग को सक्षम करने और यूनिकोड 3.2 से अनुपस्थित लिपियों और वर्णों के उपयोग को सक्षम करने के लिए हैं। एक्सएमएल 1.1 बहुत व्यापक रूप से प्रयुक्त नहीं किया गया है और केवल उन लोगों के लिए अनुशंसित है जिन्हें इसकी विशेष विशेषताओं की आवश्यकता है।<ref>{{cite book|last=Harold|first=Elliotte Rusty|title=प्रभावी एक्सएमएल|publisher=Addison-Wesley|year=2004|pages=[https://archive.org/details/effectivexml50sp00haro/page/10 10–19]|url=https://archive.org/details/effectivexml50sp00haro/page/10|isbn=0-321-15040-6|url-access=registration}}</ref>
अपने पांचवें संस्करण के रिलीज से पहले, एक्सएमएल 1.0 एक्सएमएल 1.1 से भिन्न था, जिसमें तत्व और विशेषता नामों और विशिष्ट पहचानकर्ताओं में उपयोग के लिए उपलब्ध वर्णों के लिए सख्त आवश्यकताएं थीं: एक्सएमएल 1.0 के पहले चार संस्करणों में वर्णों को विशेष रूप से एक विशिष्ट संस्करण का उपयोग करके गणना की गई थी। यूनिकोड मानक (यूनिकोड 2.0 से यूनिकोड 3.2 तक।) पांचवां संस्करण एक्सएमएल 1.1 के तंत्र को प्रतिस्थापित करता है, जो अधिक भविष्य-प्रमाण है लेकिन अतिरेक (सूचना सिद्धांत) को कम करता है। XML 1.0 के पांचवें संस्करण और XML 1.1 के सभी संस्करणों में अपनाया गया दृष्टिकोण यह है कि केवल कुछ वर्णों को नामों में वर्जित किया गया है, और बाकी सभी को भविष्य के यूनिकोड संस्करणों में उपयुक्त नाम वर्णों को समायोजित करने की अनुमति है। पांचवें संस्करण में, एक्सएमएल नामों में यूनिकोड 3.2 के बाद से यूनिकोड में जोड़े गए कई अन्य लोगों के बीच बाली लिपि, चाम लिपि, या फोनीशियन वर्णमाला लिपियों में वर्ण शामिल हो सकते हैं।<ref name="xml11rationale"/>


लगभग किसी भी यूनिकोड कोड बिंदु का उपयोग XML 1.0 या 1.1 दस्तावेज़ के वर्ण डेटा और विशेषता मानों में किया जा सकता है, भले ही कोड बिंदु से संबंधित वर्ण यूनिकोड के वर्तमान संस्करण में परिभाषित न हो। कैरेक्‍टर डेटा और विशेषता मानों में, XML 1.1 XML 1.0 की तुलना में अधिक नियंत्रण वर्णों के उपयोग की अनुमति देता है, लेकिन, मजबूती के लिए, XML 1.1 में पेश किए गए अधिकांश नियंत्रण वर्णों को अंकीय वर्ण संदर्भों (और #x7F से #x9F तक) के रूप में व्यक्त किया जाना चाहिए, जो एक्सएमएल 1.0 में अनुमति दी गई थी, एक्सएमएल 1.1 में भी संख्यात्मक चरित्र संदर्भों के रूप में व्यक्त करने की आवश्यकता है<ref>{{cite web|url=http://www.w3.org/TR/xml11/#sec-xml11|title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.1 (दूसरा संस्करण)|publisher=W3.org|access-date=22 August 2010}}</ref>). XML 1.1 में समर्थित नियंत्रण वर्णों में दो लाइन ब्रेक कोड हैं जिन्हें व्हाइटस्पेस वर्णों के रूप में माना जाना चाहिए, जो कि एकमात्र नियंत्रण कोड हैं जिन्हें सीधे लिखा जा सकता है।
अपने पांचवें संस्करण के रिलीज से पहले, एक्सएमएल 1.0 एक्सएमएल 1.1 से भिन्न था, जिसमें तत्व और विशेषता नामों और विशिष्ट पहचानकर्ताओं में उपयोग के लिए उपलब्ध वर्णों के लिए सख्त आवश्यकताएं थीं: एक्सएमएल 1.0 के पहले चार संस्करणों में वर्णों को विशेष रूप से विशिष्ट संस्करण का उपयोग करके गणना की गई थी। यूनिकोड मानक (यूनिकोड 2.0 से यूनिकोड 3.2 तक।) पांचवां संस्करण एक्सएमएल 1.1 के तंत्र को प्रतिस्थापित करता है, जो अधिक भविष्य-प्रमाण है किन्तु अतिरेक (सूचना सिद्धांत) को कम करता है। एक्सएमएल 1.0 के पांचवें संस्करण और एक्सएमएल 1.1 के सभी संस्करणों में अपनाया गया दृष्टिकोण यह है कि केवल कुछ वर्णों को नामों में वर्जित किया गया है, और अवशेष सभी को भविष्य के यूनिकोड संस्करणों में उपयुक्त नाम वर्णों को समायोजित करने की अनुमति है। पांचवें संस्करण में, एक्सएमएल नामों में यूनिकोड 3.2 के बाद से यूनिकोड में जोड़े गए कई अन्य लोगों के बीच बाली लिपि, चाम लिपि, या फोनीशियन वर्णमाला लिपियों में वर्ण सम्मिलित हो सकते हैं।<ref name="xml11rationale" />
 
लगभग किसी भी यूनिकोड कोड बिंदु का उपयोग एक्सएमएल 1.0 या 1.1 दस्तावेज़ के वर्ण डेटा और विशेषता मानों में किया जा सकता है, तथापि कोड बिंदु से संबंधित वर्ण यूनिकोड के वर्तमान संस्करण में परिभाषित नही होता है। कैरेक्‍टर डेटा और विशेषता मानों में, एक्सएमएल 1.1 एक्सएमएल 1.0 की तुलना में अधिक नियंत्रण वर्णों के उपयोग की अनुमति देता है, किन्तु, सशक्ती के लिए, एक्सएमएल 1.1 में प्रस्तुत किए गए अधिकांश नियंत्रण वर्णों को अंकीय वर्ण संदर्भों (और x7F से x9F तक) के रूप में व्यक्त किया जाना चाहिए, जो एक्सएमएल 1.0 में अनुमति दी गई थी, एक्सएमएल 1.1 में भी संख्यात्मक कैरेक्टर संदर्भों के रूप में व्यक्त करने की आवश्यकता है <ref>{{cite web|url=http://www.w3.org/TR/xml11/#sec-xml11|title=एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.1 (दूसरा संस्करण)|publisher=W3.org|access-date=22 August 2010}}</ref>). एक्सएमएल 1.1 में समर्थित नियंत्रण वर्णों में दो लाइन ब्रेक कोड हैं जिन्हें व्हाइटस्पेस वर्णों के रूप में माना जाना चाहिए, जो कि एकमात्र नियंत्रण कोड हैं जिन्हें सीधे लिखा जा सकता है।


===2.0===
===2.0===
XML 2.0 की चर्चा हुई है, हालांकि किसी भी संगठन ने इस तरह की परियोजना पर काम करने की योजना की घोषणा नहीं की है। XML-SW (स्कंकवर्क्स प्रोजेक्ट के लिए SW), जिसे XML के मूल डेवलपर्स में से एक ने लिखा है,<ref>{{Cite web |first=Tim |last=Bray |url=http://www.textuality.com/xml/xmlSW.html |title=एक्स्टेंसिबल मार्कअप लैंग्वेज, SW (XML-SW)|date=10 February 2002}}</ref> XML 2.0 कैसा दिख सकता है, इसके लिए कुछ प्रस्ताव शामिल हैं, जिसमें सिंटैक्स से DTDs का उन्मूलन, साथ ही XML नामस्थानों का एकीकरण, XML बेस और XML सूचना सेट को आधार मानक में शामिल किया गया है।
एक्सएमएल 2.0 की चर्चा हुई है, चूँकि किसी भी संगठन ने इस तरह की परियोजना पर काम करने की योजना की प्रकाशन नहीं की है। एक्सएमएल-एसडब्लू (स्कंकवर्क्स प्रोजेक्ट के लिए एसडब्लू), जिसे एक्सएमएल के मूल डेवलपर्स में से ने लिखा है,<ref>{{Cite web |first=Tim |last=Bray |url=http://www.textuality.com/xml/xmlSW.html |title=एक्स्टेंसिबल मार्कअप लैंग्वेज, SW (XML-SW)|date=10 February 2002}}</ref> एक्सएमएल 2.0 कैसा दिख सकता है, इसके लिए कुछ प्रस्ताव सम्मिलित हैं, जिसमें सिंटैक्स से डीटीडी का उन्मूलन, साथ ही एक्सएमएल नामस्थानों का एकीकरण, एक्सएमएल बेस और एक्सएमएल सूचना सेट को आधार मानक में सम्मिलित किया गया है।


=== बाइनरी एक्सएमएल ===
=== बाइनरी एक्सएमएल ===
वर्ल्ड वाइड वेब कंसोर्टियम में एक एक्सएमएल बाइनरी कैरेक्टराइजेशन वर्किंग ग्रुप भी है जो एक्सएमएल सूचना सेट के बाइनरी एन्कोडिंग के लिए उपयोग के मामलों और गुणों में प्रारंभिक शोध कर रहा है। कार्य समूह को किसी भी आधिकारिक मानक का उत्पादन करने के लिए चार्टर्ड नहीं किया गया है। चूँकि XML परिभाषा के अनुसार टेक्स्ट-आधारित है, ITU-T और ISO भ्रम से बचने के लिए अपने स्वयं के बाइनरी प्रारूप (ITU-T Rec. X.891 और ISO/IEC 24824-1) के लिए Fast Infoset नाम का उपयोग कर रहे हैं।
वर्ल्ड वाइड वेब कंसोर्टियम में एक्सएमएल बाइनरी कैरेक्टराइजेशन वर्किंग समूह भी है जो एक्सएमएल सूचना सेट के बाइनरी एन्कोडिंग के लिए उपयोग के स्थितियों और गुणों में प्रारंभिक शोध कर रहा है। कार्य समूह को किसी भी आधिकारिक मानक का उत्पादन करने के लिए चार्टर्ड नहीं किया गया है। चूँकि एक्सएमएल परिभाषा के अनुसार टेक्स्ट-आधारित है, आईटीयू-टी और आईएसओ भ्रम से बचने के लिए अपने स्वयं के बाइनरी प्रारूप (आईटीयू-टी रेक. X.891 और आईएसओ/आईईसी 24824-1) के लिए स्थिर इन्फोसेट नाम का उपयोग कर रहे हैं।


== आलोचना ==
== आलोचना ==
शब्दशः, जटिलता और अतिरेक के लिए XML और इसके एक्सटेंशन की नियमित रूप से आलोचना की गई है।<ref>{{cite web|url=http://www.codinghorror.com/blog/2008/05/xml-the-angle-bracket-tax.html|title=एक्सएमएल: द एंगल ब्रैकेट टैक्स|website=Codinghorror.com|date=11 May 2008|access-date=16 November 2017}}</ref>
शब्दशः, जटिलता और अतिरेक के लिए एक्सएमएल और इसके एक्सटेंशन की नियमित रूप से आलोचना की गई है।<ref>{{cite web|url=http://www.codinghorror.com/blog/2008/05/xml-the-angle-bracket-tax.html|title=एक्सएमएल: द एंगल ब्रैकेट टैक्स|website=Codinghorror.com|date=11 May 2008|access-date=16 November 2017}}</ref> प्रोग्रामिंग भाषाओं या डेटाबेस के टाइप सिस्टम के लिए एक्सएमएल के मूल ट्री मॉडल को मैप करना कठिन हो सकता है, जब एक्सएमएल का उपयोग अनुप्रयोगों के बीच अत्यधिक संरचित डेटा के आदान-प्रदान के लिए किया जाता है, जो कि इसका प्राथमिक डिजाइन लक्ष्य नहीं था। चूँकि, एक्सएमएल डेटा बाइंडिंग सिस्टम अनुप्रयोगों को एक्सएमएल डेटा को सीधे उपयोग की जाने वाली प्रोग्रामिंग भाषा में डेटा की डेटा संरचना का प्रतिनिधित्व करने वाली ऑब्जेक्टओं से एक्सेस करने की अनुमति देता है, जो डेटा को पुनः प्राप्त करने के लिए दस्तावेज़ ऑब्जेक्ट मॉडल या एक्सएमएल के लिए सरल एपीआई का उपयोग करने के अतिरिक्त प्रकार की सुरक्षा सुनिश्चित करता है। एक्सएमएल का प्रत्यक्ष प्रतिनिधित्व यह स्वचालित रूप से दस्तावेज़ के एक्सएमएल स्कीमा एक्सएसडी के तत्वों और मेमोरी में प्रदर्शित होने वाले वर्ग के सदस्यों के बीच मैपिंग बनाकर पूरा किया जाता है।
प्रोग्रामिंग भाषाओं या डेटाबेस के टाइप सिस्टम के लिए XML के मूल ट्री मॉडल को मैप करना मुश्किल हो सकता है, खासकर जब XML का उपयोग अनुप्रयोगों के बीच अत्यधिक संरचित डेटा के आदान-प्रदान के लिए किया जाता है, जो कि इसका प्राथमिक डिजाइन लक्ष्य नहीं था। हालाँकि, XML डेटा बाइंडिंग सिस्टम अनुप्रयोगों को XML डेटा को सीधे उपयोग की जाने वाली प्रोग्रामिंग भाषा में डेटा की डेटा संरचना का प्रतिनिधित्व करने वाली वस्तुओं से एक्सेस करने की अनुमति देता है, जो डेटा को पुनः प्राप्त करने के लिए दस्तावेज़ ऑब्जेक्ट मॉडल या XML के लिए सरल API का उपयोग करने के बजाय प्रकार की सुरक्षा सुनिश्चित करता है। एक्सएमएल का प्रत्यक्ष प्रतिनिधित्व। यह स्वचालित रूप से दस्तावेज़ के एक्सएमएल स्कीमा एक्सएसडी के तत्वों और स्मृति में प्रदर्शित होने वाले वर्ग के सदस्यों के बीच मैपिंग बनाकर पूरा किया जाता है।


अन्य आलोचनाएँ इस दावे का खंडन करने का प्रयास करती हैं कि XML एक स्व-वर्णन करने वाली भाषा है<ref>{{cite web|url=http://workflow.healthbase.info/monographs/XML_myths_Browne.pdf|title=स्व-वर्णन एक्सएमएल का मिथक|date=September 2003|website=Workflow.HealthBase.info|access-date=16 November 2017}}</ref> (हालांकि एक्सएमएल विनिर्देश स्वयं ऐसा कोई दावा नहीं करता है)।
अन्य आलोचनाएँ इस प्रमाण का खंडन करने का प्रयास करती हैं कि एक्सएमएल स्व-वर्णन करने वाली भाषा है <ref>{{cite web|url=http://workflow.healthbase.info/monographs/XML_myths_Browne.pdf|title=स्व-वर्णन एक्सएमएल का मिथक|date=September 2003|website=Workflow.HealthBase.info|access-date=16 November 2017}}</ref> (चूँकि एक्सएमएल विनिर्देश स्वयं ऐसा कोई प्रमाणित नहीं करता है)।


JSON, YAML, और S-एक्सप्रेशन | S-एक्सप्रेशन को अक्सर सरल विकल्प के रूप में प्रस्तावित किया जाता है (डेटा क्रमांकन प्रारूपों की तुलना देखें)<ref>{{cite web|url=https://stackoverflow.com/questions/51492/what-usable-alternatives-to-xml-syntax-do-you-know|title=आप XML सिंटैक्स के कौन से उपयोगी विकल्प जानते हैं?|website=StackOverflow.com|access-date=16 November 2017}}</ref> जो दस्तावेजों के बजाय अत्यधिक संरचित डेटा का प्रतिनिधित्व करने पर ध्यान केंद्रित करता है, जिसमें अत्यधिक संरचित और अपेक्षाकृत असंरचित सामग्री दोनों हो सकती हैं। हालाँकि, W3C मानकीकृत XML स्कीमा विनिर्देश सरल क्रमांकन स्वरूपों की तुलना में संरचित XSD डेटा प्रकारों की एक विस्तृत श्रृंखला प्रदान करते हैं और XML नामस्थानों के माध्यम से मॉड्यूलरिटी और पुन: उपयोग की पेशकश करते हैं।
जेएसओएन, वाईएएमएल, और S-एक्सप्रेशन को अधिकांशतः सरल विकल्प के रूप में प्रस्तावित किया जाता है (डेटा क्रमांकन प्रारूपों की तुलना देखें) <ref>{{cite web|url=https://stackoverflow.com/questions/51492/what-usable-alternatives-to-xml-syntax-do-you-know|title=आप XML सिंटैक्स के कौन से उपयोगी विकल्प जानते हैं?|website=StackOverflow.com|access-date=16 November 2017}}</ref> जो दस्तावेजों के अतिरिक्त अत्यधिक संरचित डेटा का प्रतिनिधित्व करने पर ध्यान केंद्रित करता है, जिसमें अत्यधिक संरचित और अपेक्षाकृत असंरचित पदार्थ दोनों हो सकती हैं। चूँकि, डब्ल्यू3सी मानकीकृत एक्सएमएल स्कीमा विनिर्देश सरल क्रमांकन स्वरूपों की तुलना में संरचित एक्सएसडी डेटा प्रकारों की विस्तृत श्रृंखला प्रदान करते हैं और एक्सएमएल नामस्थानों के माध्यम से मॉड्यूलरिटी और पुन: उपयोग की प्रस्तुति करते हैं।


== यह भी देखें ==
== यह भी देखें ==
Line 291: Line 291:
==टिप्पणियाँ==
==टिप्पणियाँ==
{{Notelist-lr}}
{{Notelist-lr}}


==संदर्भ==
==संदर्भ==
Line 307: Line 306:
* {{cite web|url=http://wam.inrialpes.fr/courses/PG-MoSIG12/xml.pdf |title=Introduction to XML |date=October 2012 |work=Course Slides |publisher=[[Pierre Geneves]] |url-status=bot: unknown |archive-url=https://web.archive.org/web/20151016053704/http://wam.inrialpes.fr/courses/PG-MoSIG12/xml.pdf |archive-date=2015-10-16 }}
* {{cite web|url=http://wam.inrialpes.fr/courses/PG-MoSIG12/xml.pdf |title=Introduction to XML |date=October 2012 |work=Course Slides |publisher=[[Pierre Geneves]] |url-status=bot: unknown |archive-url=https://web.archive.org/web/20151016053704/http://wam.inrialpes.fr/courses/PG-MoSIG12/xml.pdf |archive-date=2015-10-16 }}
{{Refend}}
{{Refend}}


==इस पेज में लापता आंतरिक लिंक की सूची==
==इस पेज में लापता आंतरिक लिंक की सूची==
Line 315: Line 312:
{{Commons category|XML}}
{{Commons category|XML}}
{{Wikibooks|Subject:XML}}
{{Wikibooks|Subject:XML}}
{{Prone to spam|date=November 2013}}
 
<!--
* [http://www.w3.org/XML/ डब्ल्यू3सी एक्सएमएल homepage]
{{No more links}}
* [http://www.w3.org/TR/REC-xml एक्सएमएल 1.0 Specification]
Please be cautious adding more external links.
Wikipedia is not a collection of links and should not be used for advertising.
Excessive or inappropriate links will be removed.
See [[Wikipedia:बाहरी कड़ियाँ]] and [[Wikipedia:Spam]] for details.
If there are already suitable links, propose additions or replacements on
the article's talk page, or submit your link to the relevant category at
the Open Directory Project (dmoz.org) and link there using {{Dmoz}}.
-->
* [http://www.w3.org/XML/ W3C XML homepage]
* [http://www.w3.org/TR/REC-xml XML 1.0 Specification]
* [http://xml.ascc.net/en/utf-8/ercsretro.html Retrospective on Extended Reference Concrete Syntax] {{Webarchive|url=https://web.archive.org/web/20191118064318/http://xml.ascc.net/en/utf-8/ercsretro.html |date=2019-11-18 }} by [[Rick Jelliffe]]
* [http://xml.ascc.net/en/utf-8/ercsretro.html Retrospective on Extended Reference Concrete Syntax] {{Webarchive|url=https://web.archive.org/web/20191118064318/http://xml.ascc.net/en/utf-8/ercsretro.html |date=2019-11-18 }} by [[Rick Jelliffe]]
* [http://www.xml.com/pub/a/w3j/s3.bosak.html ''XML, Java and the Future of the Web''] (1997) by [[Jon Bosak]]
* [http://www.xml.com/pub/a/w3j/s3.bosak.html ''एक्सएमएल, जावा and the Future of the Web''] (1997) by [[Jon Bosak]]
* [http://validator.w3.org/ http://validator.w3.org/] The Official [W3C] Markup Validation Service
* [http://validator.w3.org/ http://validator.w3.org/] The Official [डब्ल्यू3सी] Markup Validation Service
* [http://xml.silmaril.ie/ The XML FAQ] originally for the W3C's XML SIG by Peter Flynn
* [http://xml.silmaril.ie/ The एक्सएमएल FAQ] originally for the डब्ल्यू3सी's एक्सएमएल SIG by Peter Flynn
 
{{W3C Standards}}
{{Web browsers}}
{{Data Exchange}}
{{Semantic Web}}
{{Authority control}}
[[श्रेणी:एक्सएमएल| ]]
[[श्रेणी:एक्सएमएल| ]]
[[श्रेणी:अनुप्रयोग परत प्रोटोकॉल]]
[[श्रेणी:अनुप्रयोग परत प्रोटोकॉल]]
Line 351: Line 332:
[[श्रेणी: वर्ल्ड वाइड वेब कंसोर्टियम मानक]]
[[श्रेणी: वर्ल्ड वाइड वेब कंसोर्टियम मानक]]


 
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category: Machine Translated Page]]
[[Category:CS1 maint]]
[[Category:Commons category link is locally defined]]
[[Category:Created On 30/12/2022]]
[[Category:Created On 30/12/2022]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Pages with reference errors]]
[[Category:Pages with script errors]]
[[Category:Short description with empty Wikidata description]]
[[Category:Template documentation pages|Short description/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Webarchive template wayback links]]

Latest revision as of 18:44, 3 July 2023

एक्सएमएल (मानक)
एक्सटेंसिबल मार्कअप लैंग्वेज
Extensible Markup Language (XML) logo.svg
Abbreviationएक्सएमएल
Statusप्रकाशित, डब्ल्यू3सी अनुशंसा
Year started1996; 29 years ago (1996)
First publishedFebruary 10, 1998; 27 years ago (1998-02-10)
Latest version1.1 (2nd ed.)
September 29, 2006; 19 years ago (2006-09-29)
Organizationवर्ल्ड वाइड वेब कंसोर्टियम (डब्ल्यू3सी)
Editorsटिम ब्रे, जीन पाओली, माइकल स्परबर्ग-मैकक्वीन, ईव मालेर, फ्रांकोइस येरग्यू, जॉन डब्ल्यू. कोवान
Base standardsएसजीएमएल
Related standardsडब्ल्यू3सी एक्सएमएल स्कीम
Domainक्रमबद्धता
Websitewww.w3.org/xml
एक्सएमएल (फ़ाइल स्वरूप)
Filename extension
.xml
Internet media typeapplication/xml, text/xml[1]
Uniform Type Identifier (UTI)public.xml
UTI conformationpublic.text
Magic number<?xml
Developed byवर्ल्ड वाइड वेब कंसोर्टियम
Type of formatमार्कअप भाषा
Extended fromएसजीएमएल
Extended toकई भाषाएं, जिनमें एक्सएचटीएमएल, आरएसएस, एटम, और केएमएल सम्मिलित हैं।
Standard
Open format?हां
Free format?हां

एक्स्टेंसिबल मार्कअप भाषा (एक्सएमएल) मार्कअप भाषा और फाइल फॉर्मेट है, जो इच्छानुसार डेटा को स्टोर करने, ट्रांसमिट करने और फिर से बनाने के लिए है। यह प्रारूप में इलेक्ट्रॉनिक दस्तावेज़ों को एन्कोडिंग के लिए नियमों का सेट परिभाषित करता है जो मानव-पठनीय माध्यम या मानव-पठनीय और मशीन-पठनीय डेटा या मशीन-पठनीय दोनों है। वर्ल्ड वाइड वेब कंसोर्टियम का एक्सएमएल 1.0 विशिष्टता [2] 1998 में [3] और कई अन्य संबंधित विनिर्देश [4] उनमें से सभी मुक्त खुले मानक एक्सएमएल को परिभाषित करते हैं।[5]


एक्सएमएल के डिजाइन लक्ष्यों में इंटरनेट पर सरलता, व्यापकता और उपयोगिता पर बल दिया गया है।[6] यह अलग-अलग भाषाओं के लिए यूनिकोड के माध्यम से सशक्त समर्थन वाला टेक्स्ट डेटा प्रारूप है। यद्यपि एक्सएमएल का डिज़ाइन दस्तावेज़ों पर केंद्रित है, भाषा का व्यापक रूप से स्वैच्छिक डेटा संरचनाओं के प्रतिनिधित्व के लिए उपयोग किया जाता है [7] जैसे कि वेब सेवाओं में उपयोग किए जाता है।

एक्सएमएल-आधारित भाषाओं की परिभाषा में सहायता के लिए कई एक्सएमएल स्कीमा उपस्थित हैं, जबकि प्रोग्रामर ने एक्सएमएल डेटा के प्रसंस्करण में सहायता के लिए कई एप्लिकेशन प्रोग्रामिंग इंटरफेस (एपीआई) विकसित किए हैं।

अवलोकन

एक्सएमएल का मुख्य उद्देश्य क्रमांकन है, अर्थात इच्छानुसार डेटा का स्टोरेज, संचारण और पुनर्निर्माण करना या सूचनाओं के आदान-प्रदान के लिए दो अलग-अलग प्रणालियों के लिए, उन्हें फ़ाइल प्रारूप पर सहमत होने की आवश्यकता है। एक्सएमएल इस प्रक्रिया का मानकीकरण करता है। एक्सएमएल सूचना का प्रतिनिधित्व करने के लिए भाषा के अनुरूप है।[8]: 1 

एक मार्कअप भाषा के रूप में, एक्सएमएल लेबल, वर्गीकृत और जानकारी को संरचनात्मक रूप से व्यवस्थित करता है।[8]: 11  एक्सएमएल टैग डेटा संरचना का प्रतिनिधित्व करते हैं और इसमें मेटाडेटा होता है। टैग के अन्दर डेटा है, जो एक्सएमएल मानक निर्दिष्ट विधि से एन्कोड किया गया है।[8]: 11  अतिरिक्त एक्सएमएल स्कीमा (एक्सएसडी) एक्सएमएल की व्याख्या और सत्यापन के लिए आवश्यक मेटाडेटा को परिभाषित करता है। (इसे कैनोनिकल स्कीमा भी कहा जाता है।)[8]: 135  एक्सएमएल दस्तावेज़ जो मूलभूत एक्सएमएल नियमों का पालन करता है, अच्छी तरह से बना हुआ है; जो इसकी स्कीमा का पालन करता है वह मान्य है।[8]: 135 

इंटरनेट का इतिहास या इंटरनेट इंजीनियरिंग टास्क फोर्स आरएफसी:7303 (जो पुराने आरएफसी:3023 का स्थान लेता है), एक्सएमएल संदेश में उपयोग के लिए मीडिया प्रकार के निर्माण के लिए नियम प्रदान करता है। यह तीन मीडिया प्रकारों को परिभाषित करता है: application/xml (text/xml उपनाम है), application/xml-external-parsed-entity (text/xml-external-parsed-entity उपनाम है) और application/xml-dtd. उनका उपयोग उनके आंतरिक शब्दार्थ को प्रदर्शित किए बिना रॉ एक्सएमएल फ़ाइलों को प्रसारित करने के लिए किया जाता है। [rfc:7303 आरएफसी 7303] आगे अनुशंसा करता है कि एक्सएमएल-आधारित भाषाओं में समाप्त होने वाले मीडिया प्रकार दिए जाएं +xml, उदाहरण के लिए, image/svg+xml स्केलेबल वेक्टर ग्राफिक्स के लिए उपयोग किया जाता है।

नेटवर्क के संदर्भ में एक्सएमएल के उपयोग के लिए आगे के दिशानिर्देश :आरएफसी:3470 में दिखाई देते हैं, जिसे आईईटीएफ बीसीपी 70 के रूप में भी जाना जाता है, दस्तावेज़ जिसमें एक्सएमएल-आधारित भाषा को डिजाइन करने और तैनात करने के कई तथ्य सम्मिलित हैं।

अनुप्रयोग

इंटरनेट पर डेटा के आदान-प्रदान के लिए एक्सएमएल सामान्य उपयोग में आ गया है। एक्सएमएल सिंटैक्स का उपयोग करने वाले सैकड़ों दस्तावेज़ स्वरूप विकसित किए गए हैं,[9] आरएसएस, परमाणु (मानक), ऑफिस ओपन एक्सएमएल, ओपनदस्तावेज़, स्केलेबल वेक्टर ग्राफ़िक्स और एक्सएचटीएमएल सहित या एक्सएमएल संचार प्रोटोकॉल जैसे एसओएपी और एक्स्टेंसिबल मैसेजिंग और उपस्थिति प्रोटोकॉल के लिए आधार भाषा भी प्रदान करता है। यह अजाक्स (प्रोग्रामिंग) या अतुल्यकालिक जावास्क्रिप्ट और एक्सएमएल (अजाक्स) प्रोग्रामिंग तकनीक के लिए संदेश विनिमय प्रारूप है।

स्वास्थ्य स्तर 7, ओपनट्रैवल एलायंस, एफपीएमएल, एमआईएसएमओ और राष्ट्रीय सूचना विनिमय मॉडल जैसे कई उद्योग डेटा मानक एक्सएमएल और एक्सएमएल स्कीमा विनिर्देश की समृद्ध विशेषताओं पर आधारित हैं। प्रकाशन में, डार्विन इंफॉर्मेशन टाइपिंग आर्किटेक्चर एक्सएमएल उद्योग डेटा मानक है। एक्सएमएल का व्यापक रूप से विभिन्न प्रकाशन प्रारूपों को रेखांकित करने के लिए उपयोग किया जाता है।

प्रमुख शब्दावली

इस खंड की पदार्थ एक्सएमएल विशिष्टता पर आधारित है। यह एक्सएमएल में प्रकट होने वाले सभी निर्माणों की विस्तृत सूची नहीं है; यह दिन-प्रतिदिन के उपयोग में सबसे अधिक बार सामने आने वाली प्रमुख संरचनाओं का परिचय प्रदान करता है।

अक्षर
एक एक्सएमएल दस्तावेज़ वर्णों की स्ट्रिंग है। वैध अक्षर में एक्सएमएल या अक्षर अनुमति किन्तु हतोत्साहित नियमबद्ध यूनिकोड वर्ण (शून्य को छोड़कर) (1.1) एक्सएमएल दस्तावेज़ में प्रकट हो सकता है (जबकि कुछ निराश हैं)।
प्रोसेसर और एप्लीकेशन
प्रोसेसर मार्कअप का विश्लेषण करता है और एप्लिकेशन को संरचित जानकारी पास करता है। विनिर्देश आवश्यकताओं को रखता है कि एक्सएमएल प्रोसेसर को क्या करना चाहिए और क्या नहीं करना चाहिए, किन्तु एप्लिकेशन इसके सीमा से बाहर है। प्रोसेसर (जैसा कि विनिर्देश कहता है) को अधिकांशतः बोलचाल की भाषा में एक्सएमएल पार्सर के रूप में संदर्भित किया जाता है।
मार्कअप और पदार्थ
एक्सएमएल दस्तावेज़ बनाने वाले वर्णों को मार्कअप और पदार्थ में विभाजित किया जाता है, जिन्हें सरल वाक्य-विन्यास नियमों के अनुप्रयोग द्वारा अलग किया जा सकता है। सामान्यतः, मार्कअप बनाने वाले तार या तो वर्ण से प्रारंभ होते हैं < और ए के साथ समाप्त करें >, या वे कैरेक्टर से प्रारंभ होते हैं & और ए के साथ समाप्त करें ;. वर्णों की स्ट्रिंग जो मार्कअप नहीं हैं, पदार्थ हैं। चूँकि, सीडीएटीए सेक्शन में, सीमांकक <![CDATA[ और ]]> मार्कअप के रूप में वर्गीकृत किया जाता है, जबकि उनके बीच के टेक्स्ट को पदार्थ के रूप में वर्गीकृत किया जाता है। इसके अतिरिक्त, सबसे बाहरी तत्व से पहले और बाद में व्हाइटस्पेस को मार्कअप के रूप में वर्गीकृत किया गया है।
टैग
टैग एक मार्कअप निर्माण है जो < से प्रारंभ होता है और > पर समाप्त होता है। टैग तीन प्रकार के होते हैं:
* स्टार्ट-टैग, जैसे <section>;
* एंड-टैग, जैसे </section>;
* खाली-तत्व टैग, जैसे <line-break />.
तत्व
एक तत्व तार्किक दस्तावेज़ घटक है जो या तो स्टार्ट-टैग के साथ प्रारंभ होता है और मेल खाने वाले अंत-टैग के साथ समाप्त होता है या इसमें केवल खाली-तत्व टैग होता है। स्टार्ट-टैग और एंड-टैग के बीच के अक्षर, यदि कोई तत्व का पदार्थ हैं, और इसमें अन्य तत्वों सहित मार्कअप सम्मिलित हो सकते हैं, जिन्हें बाल तत्व कहा जाता है। उदाहरण <greeting>Hello, world!</greeting>. और <line-break />. है
विशेषता
एक विशेषता एक मार्कअप निर्माण है जिसमें नाम-मूल्य जोड़ी सम्मिलित होती है जो स्टार्ट-टैग या खाली-तत्व टैग के अन्दर उपस्थित होती है। एक उदाहरण <img src="madonna.jpg" alt="Madonna" /> है, जहां विशेषताओं के नाम 'src' और 'alt' हैं, और उनके मान क्रमशः 'मैडोना.jpg' और 'मैडोना' हैं। एक अन्य उदाहरण <step number="3">Connect A to B.</step> है, जहां विशेषता का नाम "संख्या" है और इसका मान "3" है। एक एक्सएमएल विशेषता का केवल एक ही मान हो सकता है और प्रत्येक विशेषता प्रत्येक तत्व पर अधिकतम एक बार दिखाई दे सकती है। सामान्य स्थिति में जहां कई मानों की एक सूची वांछित होती है, यह सूची को एक अच्छी तरह से गठित एक्सएमएल विशेषता [lower-roman 1] में एन्कोड करके किया जाना चाहिए, जो कि एक्सएमएल द्वारा परिभाषित प्रारूप से परे है। सामान्यतः यह या तो अल्पविराम या अर्ध-कोलन सीमांकित सूची होती है या, यदि व्यक्तिगत मानों में रिक्त स्थान नहीं होने के लिए जाना जाता है, तो [lower-roman 2] एक स्थान-सीमांकित सूची का उपयोग किया जा सकता है। <div class="inner greeting-box">Welcome!</div>, जहां विशेषता "क्लास" में "इनर ग्रीटिंग-बॉक्स" दोनों मान हैं और यह दो सीएसएस क्लास नाम "इनर" और "ग्रीटिंग-बॉक्स" को भी इंगित करता है। ".
एक्सएमएल प्रकाशन
एक्सएमएल दस्तावेज़ एक्सएमएल प्रकाशन के साथ प्रारंभ हो सकते हैं जो अपने बारे में कुछ जानकारी का वर्णन करता है। उदाहरण <?xml version="1.0" encoding="यूटीएफ-8"?>.है

वर्ण और पलायन

एक्सएमएल दस्तावेज़ों में पूरी तरह से यूनिकोड प्रदर्शनों की सूची के वर्ण सम्मिलित हैं। विशेष रूप से बहिष्कृत नियंत्रण वर्णों की छोटी संख्या को छोड़कर, यूनिकोड द्वारा परिभाषित कोई भी वर्ण किसी एक्सएमएल दस्तावेज़ की पदार्थ के अन्दर दिखाई दे सकता है।

एक्सएमएल में दस्तावेज़ बनाने वाले यूनिकोड वर्णों के एन्कोडिंग की पहचान करने और उन वर्णों को व्यक्त करने के लिए सुविधाएँ सम्मिलित हैं, जिनका कारण या किसी अन्य के लिए सीधे उपयोग नहीं किया जा सकता है।

मान्य वर्ण

निम्न श्रेणियों में यूनिकोड कोड बिंदु एक्सएमएल 1.0 दस्तावेज़ों में मान्य हैं:[10]

  • U+0009 (क्षैतिज टैब), U+000A (लाइन फीड), U+000D (कैरिज रिटर्न): ये केवल C0 और C1 कंट्रोल कोड हैं जो एक्सएमएल 1.0 में स्वीकृत हैं;
  • U+0020–U+D7FF, U+E000–U+FFFD: इसमें मूल बहुभाषी तल में कुछ गैर-वर्ण सम्मिलित नहीं हैं (सभी प्रतिनिधि, U+FFFE और U+FFFF निषिद्ध हैं);
  • यू+10000-यू+10एफएफएफएफ: इसमें गैर-वर्णों सहित पूरक स्पेसो में सभी कोड बिंदु सम्मिलित हैं।

एक्सएमएल 1.1 उपरोक्त सभी को सम्मिलित करने के लिए अनुमत वर्णों के सेट का विस्तार करता है, साथ ही U+0001–U+001F श्रेणी में शेष वर्णों को भी सम्मिलित करता है।[11] उसी समय, चूँकि, यह U+0009 (क्षैतिज टैब), U+000A (लाइन फीड), U+000D (कैरिज रिटर्न), और U+ के अतिरिक्त C0 और C0 और C1 नियंत्रण कोड नियंत्रण वर्णों के उपयोग को प्रतिबंधित करता है। 0085 (अगली पंक्ति) उन्हें एस्केप्ड फॉर्म में लिखने की आवश्यकता के द्वारा (उदाहरण के लिए U+0001 को इस रूप में लिखा जाना चाहिए &#x01; या इसके समकक्ष)। C1 वर्णों के स्थिति में, यह प्रतिबंध पश्चगामी असंगति है; इसे सामान्य एन्कोडिंग त्रुटियों का पता लगाने की अनुमति देने के लिए प्रस्तुत किया गया था।

कोड पॉइंट नल कैरेक्टर यू+0000 एकमात्र ऐसा कैरेक्टर है जिसकी किसी भी एक्सएमएल 1.1 दस्तावेज़ में अनुमति नहीं है।

एन्कोडिंग पहचान

यूनिकोड कैरेक्टर सेट को विभिन्न विधियों से स्टोरेज या ट्रांसमिशन के लिए बाइट्स में एन्कोड किया जा सकता है, जिसे एनकोडिंग कहा जाता है। यूनिकोड ही एनकोडिंग को परिभाषित करता है जो पूरे प्रदर्शनों की सूची को कवर करता है; इस प्रकार जाने-माने लोगों में यूटीएफ-8 (जिसे एक्सएमएल मानक बाइट ऑर्डर मार्क के बिना उपयोग करने की अनुशंसा करता है) और यूटीएफ-16 सम्मिलित हैं।[12] ऐसे कई अन्य टेक्स्ट एनकोडिंग हैं जो यूनिकोड से पहले के हैं, जैसे एएससीआईआई और विभिन्न आईएसओ/आईईसी 8859; उनके कैरेक्टर प्रदर्शनों की सूची प्रत्येक स्थिति में यूनिकोड वर्ण सेट के उपसमुच्चय हैं।

एक्सएमएल किसी भी यूनिकोड-परिभाषित एन्कोडिंग और किसी भी अन्य एन्कोडिंग के उपयोग की अनुमति देता है जिनके वर्ण भी यूनिकोड में दिखाई देते हैं। एक्सएमएल तंत्र भी प्रदान करता है जिससे एक्सएमएल प्रोसेसर बिना किसी पूर्व ज्ञान के शक्ति से यह निर्धारित कर सकता है कि किस एन्कोडिंग का उपयोग किया जा रहा है।[13] यूटीएफ-8 और यूटीएफ-16 के अतिरिक्त अन्य एन्कोडिंग आवश्यक रूप से प्रत्येक एक्सएमएल पार्सर द्वारा मान्यता प्राप्त नहीं हैं (और कुछ स्थितियों में यूटीएफ-16 भी नहीं, तथापि मानक इसे भी मान्यता देने के लिए अनिवार्य करता है)।

पलायन

एक्सएमएल उन पात्रों को सम्मिलित करने के लिए एस्केप सीक्वेंस सुविधाएं प्रदान करता है जो सीधे सम्मिलित करने के लिए समस्याग्रस्त हैं। उदाहरण के लिए:

  • अक्षर < और & कुंजी सिंटैक्स मार्कर हैं और कभी भी सीडीएटीए अनुभाग के बाहर पदार्थ में प्रकट नहीं हो सकते हैं। एक्सएमएल इकाई मूल्यों में < का उपयोग करने के लिए इसकी अनुमति है, किन्तु अनुशंसित नहीं है।[14]
  • कुछ कैरेक्टर एनकोडिंग यूनिकोड के केवल सबसेट का समर्थन करते हैं। उदाहरण के लिए, एएससीआईआई में एक्सएमएल दस्तावेज़ को एन्कोड करना नियमबद्ध है, किन्तु एएससीआईआई में यूनिकोड वर्णों जैसे é के लिए कोड बिंदु नहीं हैं।
  • लेखक की मशीन पर कैरेक्टर को टाइप करना संभव नहीं हो सकता है।
  • कुछ पात्रों में समरूपता होती है जिसे अन्य वर्णों से दृष्टिगत रूप से अलग नहीं किया जा सकता है, जैसे कि गैर-ब्रेकिंग स्पेस (&#xa0;) और अंतरिक्ष (विराम चिह्न) (&#x20;), और ए (&#x410;) ए और ए (&#x41;) ए आदि है ।

एक्सएमएल और एचटीएमएल कैरेक्टर एक्सएमएल में पूर्वनिर्धारित इकाई संदर्भों की पांच सूची हैं :

  • &lt; < का प्रतिनिधित्व करता है
  • &gt; > का प्रतिनिधित्व करता है ;
  • &amp; & का प्रतिनिधित्व करता है ;
  • &apos; ' का प्रतिनिधित्व करता है;
  • &quot; " का प्रतिनिधित्व करता है ''।

सभी अनुमत यूनिकोड वर्णों को संख्यात्मक वर्ण संदर्भ के साथ प्रदर्शित किया जा सकता है। चीनी वर्ण 中 पर विचार करें, जिसका यूनिकोड में संख्यात्मक कोड हेक्साडेसिमल 4E2D, या दशमलव 20,013 है। उपयोगकर्ता जिसका कीबोर्ड इस वर्ण को दर्ज करने के लिए कोई विधि प्रदान नहीं करता है, वह अभी भी इसे एन्कोड किए गए एक्सएमएल दस्तावेज़ में सम्मिलित कर सकता है &#20013; या &#x4e2d;. इसी तरह, स्ट्रिंग <3 Jörg को एक्सएमएल दस्तावेज़ में सम्मिलित करने के लिए एन्कोड I &lt;3 J&#xF6;rg किया जा सकता है .

&#0; अनुमति नहीं है क्योंकि शून्य वर्ण एक्सएमएल से बहिष्कृत नियंत्रण वर्णों में से है, यहां तक ​​कि संख्यात्मक वर्ण संदर्भ का उपयोग करते समय भी है।[15] ऐसे वर्णों का प्रतिनिधित्व करने के लिए बेस 64 जैसे वैकल्पिक एन्कोडिंग तंत्र की आवश्यकता होती है।

टिप्पणियाँ

अन्य मार्कअप के बाहर दस्तावेज़ में कहीं भी टिप्पणियाँ दिखाई दे सकती हैं। टिप्पणियाँ एक्सएमएल प्रकाशन से पहले प्रकट नहीं हो सकतीं। टिप्पणियाँ से प्रारंभ होती हैं <!-- और --> साथ समाप्त करें . एसजीएमएल के साथ संगतता के लिए, टिप्पणियों के अंदर स्ट्रिंग - (डबल-हाइफ़न) की अनुमति नहीं है;[16] इसका कारण है कि टिप्पणियों को नेस्टेड नहीं किया जा सकता है। एम्पर्सेंड का टिप्पणियों के अन्दर कोई विशेष महत्व नहीं है, इसलिए इकाई और कैरेक्टर संदर्भों को इस तरह पहचाना नहीं जाता है, और दस्तावेज़ एन्कोडिंग के वर्ण सेट के बाहर वर्णों का प्रतिनिधित्व करने का कोई विधि नहीं है।

वैध टिप्पणी का उदाहरण: <!--no need to escape <code> & such in comments--> है

अंतर्राष्ट्रीय उपयोग

एक्सएमएल 1.0 (पांचवां संस्करण) और एक्सएमएल 1.1 तत्वों के नाम, विशेषताओं, टिप्पणियों, कैरेक्टर डेटा और प्रसंस्करण निर्देशों में लगभग किसी भी यूनिकोड वर्ण के प्रत्यक्ष उपयोग का समर्थन करते हैं (उनके अतिरिक्त जो एक्सएमएल में विशेष प्रतीकात्मक अर्थ रखते हैं, जैसे कम -थान चिह्न, < ). निम्नलिखित अच्छी तरह से निर्मित एक्सएमएल दस्तावेज़ है जिसमें चीनी वर्ण, अर्मेनियाई वर्णमाला और सिरिलिक लिपि वर्ण सम्मिलित हैं:

वाक्यात्मक शुद्धता और त्रुटि-प्रबंधन

एक्सएमएल विनिर्देश एक्सएमएल दस्तावेज़ को अच्छी तरह से गठित तत्व या अच्छी तरह से गठित पाठ के रूप में परिभाषित करता है, जिसका अर्थ है कि यह विनिर्देश में प्रदान किए गए सिंटैक्स नियमों की सूची को संतुष्ट करता है। अधिक लंबी सूची में कुछ प्रमुख बिंदुओं में सम्मिलित हैं:

  • दस्तावेज़ में केवल ठीक से एन्कोडेड नियमबद्ध यूनिकोड वर्ण हैं।
  • विशेष सिंटैक्स वर्णों में से कोई भी नहीं < और & अपनी मार्कअप-डिलिनेशन भूमिकाएं करते समय के अतिरिक्त दिखाई देते हैं।
  • स्टार्ट-टैग, एंड-टैग, और खाली-तत्व टैग जो तत्वों को परिसीमित करते हैं, सही विधि से नेस्टेड हैं, टैग छूटे हुए हैं और कोई ओवरलैपिंग नहीं है।
  • टैग नाम केस-संवेदी होते हैं; स्टार्ट-टैग और एंड-टैग पूर्ण रूप से मेल खाना चाहिए।
  • टैग नामों में कोई भी वर्ण नहीं हो सकता! #$%&'()*+,/;<=>?@[\]^`{|}~, न ही कोई स्पेस कैरेक्टर, और - से प्रारंभ नहीं हो सकता है।
  • एक मूल तत्व में अन्य सभी तत्व होते हैं।

एक्सएमएल दस्तावेज़ की परिभाषा में वे पाठ सम्मिलित नहीं हैं जिनमें सुगठित नियमों का उल्लंघन होता है; वे केवल एक्सएमएल नहीं हैं। एक्सएमएल प्रोसेसर जो इस तरह के उल्लंघन का सामना करता है, ऐसी त्रुटियों की सूची करने और सामान्य प्रसंस्करण को रोकने के लिए आवश्यक है। यह नीति, जिसे कभी-कभी ड्रैको (नियम देने वाला) त्रुटि प्रबंधन के रूप में संदर्भित किया जाता है, एचटीएमएल को संसाधित करने वाले कार्यक्रमों के व्यवहार के उल्लेखनीय विपरीत है, जिन्हें गंभीर मार्कअप त्रुटियों की उपस्थिति में भी उचित परिणाम देने के लिए डिज़ाइन किया गया है।[17] इस क्षेत्र में एक्सएमएल की नीति की पोस्टेल के नियम के उल्लंघन के रूप में आलोचना की गई है (आप जो भेजते हैं उसमें रूढ़िवादी रहें; जो आप स्वीकार करते हैं उसमें उदार रहें)।[18]

एक्सएमएल विनिर्देश एक्सएमएल सत्यापन को अच्छी तरह से गठित एक्सएमएल दस्तावेज़ के रूप में परिभाषित करता है जो दस्तावेज़ प्रकार परिभाषा (डीटीडी) के नियमों के अनुरूप भी है।[19][20]

स्कीमा और सत्यापन

अच्छी तरह से गठित होने के अतिरिक्त, एक्सएमएल दस्तावेज़ मान्य हो सकता है। इसका अर्थ है कि इसमें दस्तावेज़ प्रकार परिभाषा (डीटीडी) का संदर्भ सम्मिलित है, और इसके तत्व और गुण उस डीटीडी में घोषित किए गए हैं और डीटीडी द्वारा निर्दिष्ट व्याकरणिक नियमों का पालन करते हैं।

एक्सएमएल प्रोसेसर को वैधता के लिए एक्सएमएल दस्तावेज़ों की जाँच करने या न करने के आधार पर मान्य या गैर-मान्य के रूप में वर्गीकृत किया जाता है। प्रोसेसर जो वैधता त्रुटि का पता लगाता है, उसे इसकी सूची करने में सक्षम होना चाहिए, किन्तु सामान्य प्रसंस्करण जारी रख सकता है।

डीटीडी एक्सएमएल स्कीमा या व्याकरण का उदाहरण है। एक्सएमएल 1.0 के प्रारंभिक प्रकाशन के बाद से, एक्सएमएल के लिए स्कीमा भाषाओं के क्षेत्र में पर्याप्त कार्य किया गया है। ऐसी स्कीमा भाषाएं सामान्यतः उन तत्वों के सेट को विवश करती हैं जिनका उपयोग किसी दस्तावेज़ में किया जा सकता है, कौन से गुण उन पर प्रयुक्त हो सकते हैं, जिस क्रम में स्वीकार्य माता-पिता/बच्चे के संबंध में वे प्रकट हो सकते हैं, ।

दस्तावेज़ प्रकार की परिभाषा

एक्सएमएल के लिए सबसे पुरानी स्कीमा भाषा दस्तावेज़ प्रकार की परिभाषा (डीटीडी) है, जो एसजीएमएल से विरासत में मिली है।

डीटीडी के निम्नलिखित लाभ हैं:

  • एक्सएमएल 1.0 मानक में सम्मिलित किए जाने के कारण डीटीडी समर्थन सर्वव्यापी है।
  • डीटीडी तत्व-आधारित स्कीमा भाषाओं की तुलना में संक्षिप्त हैं और फलस्वरूप ही स्क्रीन में अधिक जानकारी प्रस्तुत करते हैं।
  • डीटीडी पात्रों को प्रकाशित करने के लिए एसजीएमएल इकाई की प्रकाशन की अनुमति देते हैं।
  • डीटीडी नामस्थान द्वारा उपयोग किए जाने वाले प्रकारों के अतिरिक्त दस्तावेज़ प्रकार को परिभाषित करते हैं, इस प्रकार संग्रह में दस्तावेज़ के लिए सभी बाधाओं को समूहित करते हैं।

डीटीडी की निम्नलिखित सीमाएँ हैं:

  • उनके पास एक्सएमएल के नए फीचर (सॉफ्टवेयर डिजाइन) के लिए कोई स्पष्ट समर्थन नहीं है, सबसे महत्वपूर्ण एक्सएमएल नेमस्पेस है।
  • उनमें अभिव्यक्ति की कमी है। एक्सएमएल डीटीडी एसजीएमएल डीटीडी की तुलना में सरल होते हैं और कुछ संरचनाएँ होती हैं जिन्हें नियमित व्याकरण के साथ व्यक्त नहीं किया जा सकता है। डीटीडी केवल प्रारंभिक डेटाटाइप का समर्थन करते हैं।
  • उनमें पठनीयता का अभाव है। डीटीडी डिजाइनर सामान्यतः मापदंड इकाइयों का भारी उपयोग करते हैं (जो अनिवार्य रूप से टेक्स्ट मैक्रो (कंप्यूटर साइंस) के रूप में व्यवहार करते हैं), जो जटिल व्याकरण को परिभाषित करना सरल बनाता है, किन्तु स्पष्टता की मूल्य पर प्रयोग किया जाता है।
  • वे स्कीमा का वर्णन करने के लिए एसजीएमएल से विरासत में मिले रेगुलर एक्सप्रेशन सिंटैक्स पर आधारित सिंटैक्स का उपयोग करते हैं। विशिष्ट एक्सएमएल एपीआई जैसे कि एक्सएमएल के लिए सरल एपीआई अनुप्रयोगों को सिंटैक्स के संरचित प्रतिनिधित्व की प्रस्तुति करने का प्रयास नहीं करते हैं, इसलिए यह तत्व-आधारित सिंटैक्स की तुलना में प्रोग्रामर के लिए कम सुलभ हो सकता है।

दो विचित्र विशेषताएं जो अन्य स्कीमा प्रकारों से डीटीडी को अलग करती हैं, एक्सएमएल दस्तावेज़ों के अन्दर डीटीडी को एम्बेड करने और संस्थाओं को परिभाषित करने के लिए सिंटैक्टिक समर्थन हैं, जो टेक्स्ट या मार्कअप के अधिक टुकड़े हैं जो एक्सएमएल प्रोसेसर डीटीडी में और एक्सएमएल दस्तावेज़ में कहीं भी सम्मिलित करता है। संदर्भित हैं, जैसे कैरेक्टर बच निकलता है।

इसकी सर्वव्यापकता के कारण डीटीडी तकनीक अभी भी कई अनुप्रयोगों में उपयोग की जाती है।

स्कीमा

डब्ल्यू3सी द्वारा डीटीडी के उत्तराधिकारी के रूप में वर्णित नई स्कीमा भाषा, एक्सएमएल स्कीमा (डब्ल्यू3सी) है, जिसे अधिकांशतः एक्सएमएल स्कीमा उदाहरणों, एक्सएसडी (एक्सएमएल स्कीमा परिभाषा) के लिए प्रथमाक्षर द्वारा संदर्भित किया जाता है। एक्सएमएल भाषाओं का वर्णन करने में डीटीडी की तुलना में एक्सएसडी कहीं अधिक शक्तिशाली हैं। वे समृद्ध डेटा प्रकार प्रणाली का उपयोग करते हैं और एक्सएमएल दस्तावेज़ की तार्किक संरचना पर अधिक विस्तृत बाधाओं की अनुमति देते हैं। एक्सएसडी एक्सएमएल-आधारित प्रारूप का भी उपयोग करते हैं, जिससे उन्हें संसाधित करने में सहायता के लिए सामान्य एक्सएमएल टूल का उपयोग करना संभव हो जाता है।

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"></xs:schema>

आराम एनजी

रिलैक्स एनजी (एक्सएमएल अगली पीढ़ी के लिए नियमित भाषा) को प्रारंभ में ओएसिस (संगठन) द्वारा निर्दिष्ट किया गया था और अब यह मानक है (भाग 2: डीएसडीएल या आईएसओ/आईईसी 19757 - डीएसडीएल का नियमित-व्याकरण-आधारित सत्यापन) रिलैक्स एनजी स्कीमा को एक्सएमएल आधारित सिंटैक्स या अधिक कॉम्पैक्ट गैर-एक्सएमएल सिंटैक्स में लिखा जा सकता है; दो सिंटैक्स हैं आइसोमॉर्फिक और जेम्स क्लार्क (प्रोग्रामर) का रूपांतरण उपकरण ट्रांग जानकारी खोए बिना उनके बीच रूपांतरण कर सकते हैं। रिलैक्स एनजी में एक्सएमएल स्कीमा की तुलना में सरल परिभाषा और सत्यापन रुपरेखा है, जिससे इसे उपयोग करना और कार्यान्वित करना सरल हो जाता है। इसमें डेटाटाइप फ्रेमवर्क प्लग-इन (कंप्यूटिंग) या प्लग-इन्स; रिलैक्स एनजी स्कीमा लेखक, उदाहरण के लिए, एक्सएमएल स्कीमा डेटाटाइप्स में परिभाषाओं के अनुरूप एक्सएमएल दस्तावेज़ में मानों की आवश्यकता हो सकती है।

स्कीमट्रॉन

स्कैमेट्रॉन एक्सएमएल दस्तावेज़ में पैटर्न की उपस्थिति या अनुपस्थिति के बारे में अभिकथन (कंप्यूटिंग) करने के लिए भाषा है। यह सामान्यतः एक्सपाथ एक्सप्रेशन का उपयोग करता है। स्कीमट्रॉन अब मानक है (भाग 3: डीएसडीएल या आईएसओ/आईईसी 19757 - डीएसडीएल का नियम-आधारित सत्यापन)।

डीएसडीएल और अन्य स्कीमा भाषाएं

दस्तावेज़ स्कीमा परिभाषा भाषाएँ (दस्तावेज़ स्कीमा परिभाषा भाषाएँ) बहु-भाग आईएसओ/आईईसी मानक (आईएसओ/आईईसी 19757) है जो विशिष्ट समस्याओं पर लक्षित छोटी स्कीमा भाषाओं के व्यापक सेट को साथ लाता है। डीएसडीएल में रिलैक्स एनजी पूर्ण और कॉम्पैक्ट सिंटैक्स, स्कीमाट्रॉन अभिकथन भाषा, और डेटाटाइप्स को परिभाषित करने के लिए भाषाएं, वर्ण प्रदर्शनों की सूची, नाम बदलने और इकाई विस्तार, और अलग-अलग सत्यापनकर्ताओं के लिए दस्तावेज़ अंशों के नामस्थान-आधारित रूटिंग सम्मिलित हैं। डीएसडीएल स्कीमा भाषाओं में अभी एक्सएमएल स्कीमा का विक्रेता समर्थन नहीं है, और कुछ हद तक प्रकाशन के लिए एक्सएमएल स्कीमा की उपयोगिता की कमी के लिए औद्योगिक प्रकाशकों की जमीनी प्रतिक्रिया है।

कुछ स्कीमा भाषाएँ न केवल किसी विशेष एक्सएमएल प्रारूप की संरचना का वर्णन करती हैं किन्तु इस प्रारूप के अनुरूप व्यक्तिगत एक्सएमएल फ़ाइलों के प्रसंस्करण को प्रभावित करने के लिए सीमित सुविधाएं भी प्रदान करती हैं। डीटीडी और एक्सएसडी दोनों में यह क्षमता है; उदाहरण के लिए, वे इन्फोसेट वृद्धि सुविधा और विशेषता डिफ़ॉल्ट प्रदान कर सकते हैं। रिलैक्स एनजी और स्कीमेट्रोन संकल्पपूर्वक इन्हें प्रदान नहीं करते हैं।

संबंधित विनिर्देश

एक्सएमएल से निकटता से संबंधित विशिष्टताओं का समूह विकसित किया गया है, जो एक्सएमएल 1.0 के प्रारंभिक प्रकाशन के तुरंत बाद प्रारंभ हुआ था। यह अधिकांशतः ऐसा होता है कि एक्सएमएल शब्द का उपयोग एक्सएमएल को या से अधिक अन्य तकनीकों के साथ संदर्भित करने के लिए किया जाता है जिन्हें एक्सएमएल कोर के भाग के रूप में देखा जाता है।

  • एक्सएमएल नेमस्पेस ही दस्तावेज़ को एक्सएमएल तत्वों और विभिन्न शब्दावली से ली गई विशेषताओं को सम्मिलित करने में सक्षम बनाता है, बिना किसी नामकरण टकराव चूँकि एक्सएमएल नामस्थान स्वयं एक्सएमएल विनिर्देशन का भाग नहीं हैं, ऑब्जेक्टतः सभी एक्सएमएल सॉफ़्टवेयर भी एक्सएमएल नामस्थानों का समर्थन करते हैं।
  • एक्सएमएल बेस परिभाषित करता है xml:base विशेषता, जिसका उपयोग एकल एक्सएमएल तत्व के सीमा में संबंधित यूआरआई संदर्भों के समाधान के लिए आधार सेट करने के लिए किया जा सकता है।
  • एक्सएमएल सूचना सेट या एक्सएमएल इन्फोसेट सूचना मदों के संदर्भ में एक्सएमएल दस्तावेज़ों के लिए सार डेटा मॉडल है। इन्फोसेट का उपयोग सामान्यतः एक्सएमएल भाषाओं के विनिर्देशों में किया जाता है, एक्सएमएल पर बाधाओं का वर्णन करने में सुविधा के लिए उन भाषाओं को अनुमति देता है।
  • एक्सएसएल (एक्सटेंसिबल स्टाइलशीट भाषा) एक्सएमएल दस्तावेजों को बदलने और प्रस्तुत करने के लिए इस्तेमाल की जाने वाली भाषाओं का परिवार है, जो तीन भागों में विभाजित है:
  • एक्सएसएलटी (एक्सएसएल ट्रांसफॉर्मेशन), एक्सएमएल दस्तावेज़ों को अन्य एक्सएमएल दस्तावेज़ों या अन्य स्वरूपों जैसे एचटीएमएल, सादा पाठ, या एक्सएसएल-एफओ में बदलने के लिए एक्सएमएल भाषा एक्सएसएलटी एक्सपाथ के साथ युग्मित है, जिसका उपयोग यह इनपुट एक्सएमएल दस्तावेज़ के घटकों, मुख्य रूप से तत्वों और विशेषताओं को संबोधित करने के लिए करता है।
  • एक्सएसएल-एफओ (एक्सएसएल फॉर्मेटिंग ऑब्जेक्ट्स), एक्सएमएल दस्तावेजों को प्रस्तुत करने के लिए एक्सएमएल भाषा, अधिकांशतः पीडीएफ उत्पन्न करने के लिए प्रयोग की जाती है।
  • एक्सपाथ (एक्सएमएल पाथ भाषा), एक्सएमएल दस्तावेज़ के घटकों (तत्वों, विशेषताओं, और इसी तरह) को संबोधित करने के लिए गैर-एक्सएमएल भाषा या एक्सपाथ का व्यापक रूप से अन्य कोर-एक्सएमएल विनिर्देशों में और एक्सएमएल-एन्कोडेड डेटा तक पहुंचने के लिए प्रोग्रामिंग पुस्तकालयों में उपयोग किया जाता है।
  • एक्सक्वेरी (एक्सएमएल क्वेरी) एक्सएमएल क्वेरी भाषा है जो एक्सपाथ और एक्सएमएल स्कीमा में दृढ़ता से निहित है। यह एक्सएमएल तक पहुँचने, हेरफेर करने और वापस करने के विधि प्रदान करता है, और मुख्य रूप से एक्सएमएल डेटाबेस के लिए क्वेरी भाषा के रूप में माना जाता है।
  • एक्सएमएल हस्ताक्षर एक्सएमएल पदार्थ पर डिजिटल हस्ताक्षर बनाने के लिए सिंटैक्स और प्रोसेसिंग नियमों को परिभाषित करता है।
  • एक्सएमएल एन्क्रिप्शन एन्क्रिप्शन एक्सएमएल पदार्थ के लिए सिंटैक्स और प्रसंस्करण नियमों को परिभाषित करता है।
  • एक्सएमएल मॉडल (भाग 11: डीएसडीएल की स्कीमा एसोसिएशन या आईएसओ/आईईसी 19757 - डीएसडीएल) किसी भी एक्सएमएल दस्तावेज़ को स्कीमा और सत्यापन के किसी भी स्कीमा प्रकार के साथ संबद्ध करने के माध्यम को परिभाषित करता है।

एक्सएमएल कोर के भाग के रूप में कल्पना की गई कुछ अन्य विशिष्टताओं को व्यापक रूप से अपनाने में विफल रहे हैं, जिनमें एक्स इन्क्लुड करें, एक्स लिंक, और एक्स पॉइंटर सम्मिलित हैं।

प्रोग्रामिंग इंटरफेस

एक्सएमएल के डिजाइन लक्ष्यों में सम्मिलित हैं, ऐसे प्रोग्राम लिखना सरल होगा जो एक्सएमएल दस्तावेजों को प्रोसेस करते हैं।[6] इसके अतिरिक्त, एक्सएमएल विनिर्देश में इस बारे में लगभग कोई जानकारी नहीं है कि प्रोग्रामर इस तरह की प्रोसेसिंग कैसे कर सकते हैं। एक्सएमएल इंफोसेट विनिर्देश एक्सएमएल दस्तावेज़ के अन्दर निर्माणों को संदर्भित करने के लिए शब्दावली प्रदान करता है, किन्तु इस जानकारी तक पहुंचने के विधि पर कोई मार्गदर्शन प्रदान नहीं करता है। एक्सएमएल तक पहुँचने के लिए विभिन्न प्रकार के एपीआई विकसित और उपयोग किए गए हैं, और कुछ को मानकीकृत किया गया है।

एक्सएमएल प्रोसेसिंग के लिए उपस्थिता एपीआई इन श्रेणियों में आते हैं:

  • स्ट्रीम-ओरिएंटेड एपीआई प्रोग्रामिंग भाषा से सुलभ हैं, उदाहरण के लिए एक्सएमएल और स्टैक्स के लिए सरल एपीआई है।
  • ट्री-ट्रैवर्सल एपीआई प्रोग्रामिंग भाषा से सुलभ है, उदाहरण के लिए डोम (एक्सएमएल एपीआई) है।
  • एक्सएमएल डेटा बाइंडिंग, जो एक्सएमएल दस्तावेज़ और प्रोग्रामिंग-भाषा ऑब्जेक्टओं के बीच स्वचालित अनुवाद प्रदान करता है।
  • प्रकाशनत्मक रूपांतरण भाषाएँ जैसे एक्सएसएलटी और एक्सक्वेरी है।
  • सामान्य प्रयोजन की प्रोग्रामिंग भाषाओं के लिए सिंटैक्स एक्सटेंशन, उदाहरण के लिए लिंक और स्काला (प्रोग्रामिंग भाषा) है।

स्ट्रीम-ओरिएंटेड सुविधाओं के लिए कम मेमोरी की आवश्यकता होती है और, किसी एक्सएमएल दस्तावेज़ के रैखिक ट्रैवर्सल पर आधारित कुछ कार्यों के लिए, अन्य विकल्पों की तुलना में तेज़ और सरल होते हैं। ट्री-ट्रैवर्सल और डेटा-बाइंडिंग एपीआई को सामान्यतः बहुत अधिक मेमोरी के उपयोग की आवश्यकता होती है, किन्तु अधिकांशतः प्रोग्रामर द्वारा उपयोग के लिए इसे अधिक सुविधाजनक पाया जाता है; कुछ में एक्सपाथ एक्सप्रेशन के उपयोग के माध्यम से दस्तावेज़ घटकों की प्रकाशनत्मक पुनर्प्राप्ति सम्मिलित है।

एक्सएसएलटी को एक्सएमएल दस्तावेज़ परिवर्तनों के प्रकाशनत्मक विवरण के लिए डिज़ाइन किया गया है, और सर्वर-साइड पैकेज और वेब ब्राउज़र दोनों में व्यापक रूप से प्रयुक्त किया गया है। एक्सक्वेरी अपनी कार्यक्षमता में एक्सएसएलटी को ओवरलैप करता है, किन्तु बड़े एक्सएमएल डेटाबेस की खोज के लिए अधिक डिज़ाइन किया गया है।

एक्सएमएल के लिए सरल एपीआई

एक्सएमएल के लिए सरल एपीआई (एसएएक्स) लेक्सिकल विश्लेषण, इवेंट-संचालित प्रोग्रामिंग है। इवेंट-संचालित एपीआई जिसमें दस्तावेज़ को क्रमिक रूप से पढ़ा जाता है और इसकी पदार्थ को कॉलबैक (कंप्यूटर प्रोग्रामिंग) के रूप में विभिन्न विधियों (कंप्यूटर विज्ञान) के रूप में सूची किया जाता है। उपयोगकर्ता के डिजाइन के। सैक्स प्रयुक्त करने के लिए तेज और कुशल है, किन्तु एक्सएमएल से यादृच्छिक रूप से जानकारी निकालने के लिए उपयोग करना कठिन है, क्योंकि यह दस्तावेज़ के किस भाग को संसाधित किया जा रहा है, इसका ट्रैक रखने के साथ एप्लिकेशन लेखक पर बोझ पड़ता है। यह उन स्थितियों के लिए उत्तम है जिनमें कुछ प्रकार की सूचनाओं को सदैव ही विधि से संभाला जाता है, वे दस्तावेज़ में कहीं भी हों उसे खोजा जा सकता है।

पार्सिंग पुल

पुल पार्सिंग दस्तावेज़ को इटरेटर पैटर्न का उपयोग करके अनुक्रम में पढ़ी गई ऑब्जेक्टओं की श्रृंखला के रूप में मानता है। यह रिकर्सिव डिसेंट पार्सर लिखने की अनुमति देता है जिसमें पार्सिंग करने वाले कोड की संरचना एक्सएमएल की संरचना को पार्स किया जा रहा है, और इंटरमीडिएट पार्स किए गए परिणामों का उपयोग किया जा सकता है और पार्सिंग करने वाले कार्यों के अन्दर स्थानीय चर के रूप में उपयोग किया जा सकता है, या पारित किया जा सकता है ( फ़ंक्शन मापदंड्स के रूप में) निम्न-स्तरीय फ़ंक्शंस में, या उच्च-स्तरीय फ़ंक्शंस में लौटाया गया (फ़ंक्शन रिटर्न मान के रूप में)।[21] पुल पारसर्स के उदाहरणों में डेटा एक्सएमएल इन पर्ल (प्रोग्रामिंग भाषा), जावा (प्रोग्रामिंग भाषा) प्रोग्रामिंग भाषा, स्मॉलटॉक में एक्सएमएल पुल पार्सर, पीएचपी में एक्सएमएल रीडर, पायथन (प्रोग्रामिंग भाषा) में एलिमेंटट्री.इटरपरसे, सिस्टम सम्मिलित हैं। .नेट फ्रेमवर्क में एक्सएमएल.एक्सएमएलरीडर, और डोम ट्रैवर्सल एपीआई (नोडइटरेटर और ट्रीवॉकर) है।

एक पुल पार्सर पुनरावर्तक बनाता है जो क्रमिक रूप से एक्सएमएल दस्तावेज़ में विभिन्न तत्वों, विशेषताओं और डेटा पर जाता है। इस पुनरावर्तक का उपयोग करने वाला कोड वर्तमान आइटम का परीक्षण कर सकता है (उदाहरण के लिए, यह बताने के लिए कि क्या यह स्टार्ट-टैग या एंड-टैग, या टेक्स्ट है), और इसकी विशेषताओं (स्थानीय नाम, एक्सएमएल नेमस्पेस, एक्सएमएल विशेषताओं के मूल्य, मूल्य) का निरीक्षण कर सकता है पाठ का, आदि), और पुनरावर्तक को अगले आइटम पर भी ले जा सकता है। कोड इस प्रकार दस्तावेज़ से जानकारी निकाल सकता है क्योंकि यह इसे पार करता है। पुनरावर्ती-अवरोही दृष्टिकोण डेटा को पार्सिंग करने वाले कोड में टाइप किए गए स्थानीय चर के रूप में डेटा रखने के लिए उधार देता है, जबकि सैक्स, उदाहरण के लिए, सामान्यतः पार्सर की आवश्यकता होती है जो तत्वों के ढेर के अन्दर मध्यवर्ती डेटा को मैन्युअल रूप से बनाए रखता है जो तत्व के मूल तत्व हैं विश्लेषित किया जा रहा है। सैक्स पार्सिंग कोड की तुलना में पुल-पार्सिंग कोड समझने और बनाए रखने के लिए अधिक सरल हो सकता है।

दस्तावेज़ ऑब्जेक्ट मॉडल

दस्तावेज़ ऑब्जेक्ट मॉडल (डीओएम) एपीआई है जो पूरे दस्तावेज़ के नेविगेशन की अनुमति देता है जैसे कि यह दस्तावेज़ की पदार्थ का प्रतिनिधित्व करने वाले नोड (कंप्यूटर विज्ञान) ऑब्जेक्ट (कंप्यूटर विज्ञान) का पेड़ था। डोम दस्तावेज़ पार्सर द्वारा बनाया जा सकता है, या उपयोगकर्ताओं द्वारा (सीमाओं के साथ) मैन्युअल रूप से उत्पन्न किया जा सकता है। डोम नोड्स में डेटा प्रकार सार हैं; इस प्रकार कार्यान्वयन अपनी स्वयं की प्रोग्रामिंग भाषा-विशिष्ट भाषा बाइंडिंग प्रदान करते हैं। डीओएम कार्यान्वयन मेमोरी गहन होते हैं, क्योंकि उन्हें सामान्यतः पूरे दस्तावेज़ को मेमोरी में लोड करने की आवश्यकता होती है और पहुंच की अनुमति देने से पहले ऑब्जेक्टओं के पेड़ के रूप में बनाया जाता है।

डेटा बाइंडिंग

एक्सएमएल डेटा बाइंडिंग, डोम पार्सर द्वारा बनाई गई सामान्य ऑब्जेक्टओं के विपरीत, कस्टम और दृढ़ता से टाइप की गई ऑब्जेक्टओं के पदानुक्रम के लिए एक्सएमएल दस्तावेज़ों का बंधन है। यह दृष्टिकोण कोड विकास को सरल करता है, और कई स्थितियों में रन-टाइम के अतिरिक्त संकलन समय पर समस्याओं की पहचान करने की अनुमति देता है। यह उन अनुप्रयोगों के लिए उपयुक्त है जहां दस्तावेज़ संरचना ज्ञात है और आवेदन लिखे जाने के समय तय की गई है। उदाहरण डेटा बाइंडिंग सिस्टम में एक्सएमएल बाइंडिंग (जेएक्सबी) के लिए जावा आर्किटेक्चर, .नेट फ्रेमवर्क में एक्सएमएल सीरियलाइज़ेशन सम्मिलित हैं।[22] और जीएसओएपी में एक्सएमएल सीरियलाइजेशन सम्मिलित है।

एक्सएमएल डेटा प्रकार के रूप में

एक्सएमएल अन्य भाषाओं में प्रथम श्रेणी के डेटा प्रकार के रूप में प्रकट हुआ है। ईसीएमएस्क्रिप्ट/जावास्क्रिप्ट भाषा के लिए ई4एक्स (ई4एक्स) विस्तार स्पष्ट रूप से जावास्क्रिप्ट के लिए दो विशिष्ट ऑब्जेक्टओं (एक्सएमएल और एक्सएमएललिस्ट) को परिभाषित करता है, जो एक्सएमएल दस्तावेज़ नोड्स और एक्सएमएल नोड सूचियों को अलग-अलग ऑब्जेक्टओं के रूप में समर्थन करते हैं और पैरेंट-चाइल्ड संबंधों को निर्दिष्ट करने वाले डॉट-नोटेशन का उपयोग करते हैं।[23] ई4एक्स मोज़िला 2.5+ ब्राउज़र (चूँकि अब हटा दिया गया है) और एडोब एक्शनस्क्रिप्ट द्वारा समर्थित है, किन्तु इसे अधिक सार्वभौमिक रूप से नहीं अपनाया गया है। माइक्रोसॉफ्ट .नेट 3.5 और इसके बाद के संस्करण के लिए माइक्रोसॉफ्ट के लिंक कार्यान्वयन में और स्काला (प्रोग्रामिंग भाषा) (जो जावा वीएम का उपयोग करता है) में इसी तरह के नोटेशन का उपयोग किया जाता है। ओपन-सोर्स एक्सएमएलएसएच एप्लिकेशन, जो एक्सएमएल हेरफेर के लिए विशेष सुविधाओं के साथ लिनक्स जैसा शेल प्रदान करता है, इसी तरह <[ ]> संकेतन का उपयोग करके एक्सएमएल को डेटा प्रकार के रूप में मानता है।[24] संसाधन विवरण फ्रेमवर्क डेटा प्रकार को परिभाषित करता है rdf:एक्सएमएलLiteral रैप्ड, कैनोनिकल एक्सएमएल को होल्ड करने के लिए।[25] फेसबुक ने पीएचपी और जावास्क्रिप्ट भाषाओं के लिए एक्सटेंशन का उत्पादन किया है जो एक्सएमएल को क्रमशः ई4एक्स, अर्थात् एक्सएचपी और रिएक्ट (जावास्क्रिप्ट लाइब्रेरी) या जेएसएक्स के समान फैशन में कोर सिंटैक्स में जोड़ता है।

इतिहास

एक्सएमएल एसजीएमएल (आईएसओ 8879) का एप्लिकेशन प्रोफाइल (इंजीनियरिंग) है।Cite error: Closing </ref> missing for <ref> tag 1990 के दशक के मध्य तक एसजीएमएल के कुछ चिकित्सकों ने उस समय के नए वर्ल्ड वाइड वेब के साथ अनुभव प्राप्त कर लिया था, और उनका मानना ​​था कि एसजीएमएल ने कुछ समस्याओं के समाधान की प्रस्तुत की थी जो वेब के बढ़ने की संभावना थी। डेन कोनोली (कंप्यूटर वैज्ञानिक) ने 1995 में कर्मचारियों में सम्मिलित होने पर डब्ल्यू3सी की गतिविधियों की सूची में एसजीएमएल को जोड़ा; काम 1996 के मध्य में प्रारंभ हुआ जब सन माइक्रोसिस्टम्स के इंजीनियर जॉन बोसाक ने चार्टर विकसित किया और सहयोगियों की भर्ती की थी। एसजीएमएल और वेब दोनों में अनुभव रखने वाले लोगों के छोटे समुदाय में बोसक अच्छी तरह से जुड़ा हुआ था।[26]

एक्सएमएल को ग्यारह सदस्यों के कार्यकारी समूह द्वारा संकलित किया गया था,[27] 150 सदस्यीय हित समूह द्वारा समर्थित या इंटरेस्ट समूह मेलिंग लिस्ट पर तकनीकी बहस हुई और कथनों को सामान्य सहमति से सुलझाया गया था, या जब वह विफल हो गया, तो वर्किंग समूह के बहुमत से 4 दिसंबर, 1997 को माइकल स्पर्बर्ग-मैकक्वीन द्वारा डिजाइन निर्णयों और उनके तर्कों का रिकॉर्ड संकलित किया गया था।[28] जेम्स क्लार्क (एक्सएमएल विशेषज्ञ) ने कार्यकारी समूह के तकनीकी नेतृत्व के रूप में कार्य किया था , विशेष रूप से खाली-तत्व में योगदान दिया <empty /> वाक्य रचना और नाम एक्सएमएल . जिन अन्य नामों पर विचार किया गया उनमें मैग्मा (सामान्यीकृत मार्कअप अनुप्रयोगों के लिए न्यूनतम वास्तुकला), एसएलआईएम (इंटरनेट मार्कअप के लिए संरचित भाषा) और एमजीएमएल (न्यूनतम सामान्यीकृत मार्कअप भाषा) सम्मिलित हैं। विनिर्देश के सह-संपादक मूल रूप से टिम ब्रे और माइकल स्पर्बर्ग-मैकक्वीन थे। प्रोजेक्ट के बीच में ही ब्रे ने नेटस्केप कम्युनिकेशंस कॉरपोरेशन के साथ कंसल्टिंग एंगेजमेंट स्वीकार कर लिया था , जिससे माइक्रोसॉफ्ट ने बलदार विरोध किया था । ब्रे को अस्थायी रूप से संपादक के पद से इस्तीफा देने के लिए कहा गया। इसके कारण वर्किंग समूह में तीव्र विवाद हुआ था , जिसे अंततः तीसरे सह-संपादक के रूप में माइक्रोसॉफ्ट के जीन पाओली की नियुक्ति से हल किया गया था ।

एक्सएमएल वर्किंग समूह कभी आमने-सामने नहीं मिला; डिजाइन ईमेल और साप्ताहिक टेलीकॉन्फ्रेंस के संयोजन का उपयोग करके पूरा किया गया था। प्रमुख डिजाइन निर्णय अगस्त और नवंबर 1996 के बीच गहन काम के छोटे विस्फोट में पहुंचे,[29] जब एक्सएमएल विनिर्देशन का पहला वर्किंग ड्राफ्ट प्रकाशित किया गया था।[30] आगे की डिजाइन का काम 1997 तक जारी रहा, और एक्सएमएल 1.0 फरवरी 10, 1998 को डब्ल्यू3सी पक्षसमर्थन बन गया था ।

स्रोत

एक्सएमएल आईएसओ मानक एसजीएमएल का प्रोफाइल है, और अधिकांश एक्सएमएल एसजीएमएल अपरिवर्तित से आता है। एसजीएमएल से तार्किक और भौतिक संरचनाओं (तत्वों और संस्थाओं) का पृथक्करण होता है, व्याकरण-आधारित सत्यापन (डीटीडी) की उपलब्धता, डेटा और मेटाडेटा (तत्वों और विशेषताओं) का पृथक्करण, मिश्रित पदार्थ, प्रतिनिधित्व (प्रसंस्करण) से प्रसंस्करण का पृथक्करण निर्देश), और डिफ़ॉल्ट कोण-ब्रैकेट सिंटैक्स। एसजीएमएल प्रकाशन को हटा दिया गया था; इस प्रकार एक्सएमएल का निश्चित सीमांकक सेट है और यूनिकोड को दस्तावेज़ वर्ण एन्कोडिंग के रूप में अपनाता है।

एक्सएमएल के लिए प्रौद्योगिकी के अन्य स्रोत टेक्स्ट एन्कोडिंग इनिशिएटिव (टेक्स्ट एन्कोडिंग इनिशिएटिव) थे, जो ट्रांसफर सिंटैक्स के रूप में उपयोग के लिए एसजीएमएल की प्रोफाइल को परिभाषित करते थे; और एचटीएमएल, जिसमें तत्व अपने संसाधन के साथ तुल्यकालिक थे, दस्तावेज़ वर्ण सेट संसाधन एन्कोडिंग से अलग थे, xml:lang विशेषता का आविष्कार किया गया था, और (एचटीटीपी की तरह) मेटाडेटा लिंक की प्रकाशन पर आवश्यक होने के अतिरिक्त संसाधन के साथ था। आईएसओ से संबंधित चीन/जापान/कोरिया दस्तावेज़ प्रसंस्करण विशेषज्ञ समूह की स्प्रेड (पूर्व एशियाई दस्तावेजों के संबंध में मानकीकरण परियोजना) की ईआरसीएस (विस्तारित संदर्भ कंक्रीट सिंटेक्स) परियोजना एक्सएमएल 1.0 के नामकरण नियमों का आधार थी; स्प्रेड ने हेक्साडेसिमल न्यूमेरिक कैरेक्टर रेफरेंस और सभी यूनिकोड कैरेक्टर उपलब्ध कराने के लिए रेफरेंस की अवधारणा को भी प्रस्तुत किया। ईआरसीएस, एक्सएमएल और एचटीएमएल को उत्तम समर्थन देने के लिए, एसजीएमएल मानक IS 8879 को 1996 और 1998 में वेबएसजीएमएल अनुकूलन के साथ संशोधित किया गया था। एक्सएमएल शीर्षलेख आईएसओ हाईटाइम का अनुसरण करता है।

विचार जो चर्चा के दौरान विकसित हुए जो एक्सएमएल में उपन्यास हैं, उनमें एन्कोडिंग पहचान और एन्कोडिंग हेडर, प्रसंस्करण निर्देश लक्ष्य, एक्सएमएल: स्पेस विशेषता, और खाली-तत्व टैग के लिए नया निकट डिलीमीटर सम्मिलित है। वैधता के विपरीत वेल-फॉर्मेडनेस की धारणा (जो स्कीमा के बिना पार्सिंग को सक्षम करती है) को पहले एक्सएमएल में औपचारिक रूप दिया गया था, चूँकि इसे इलेक्ट्रॉनिक बुक टेक्नोलॉजी डायनेटेक्स्ट सॉफ्टवेयर में सफलतापूर्वक प्रयुक्त किया गया था;[31] वाटरलू यूनिवर्सिटी न्यू ऑक्सफोर्ड इंग्लिश डिक्शनरी प्रोजेक्ट से सॉफ्टवेयर; यूनिस्कोप, टोक्यो में आरआईएसपी लिस्प एसजीएमएल टेक्स्ट प्रोसेसर; यूएस आर्मी मिसाइल कमांड आईएडीएस हाइपरटेक्स्ट सिस्टम; मेंटर ग्राफिक्स प्रसंग; इंटरलीफ और ज़ेरॉक्स पब्लिशिंग सिस्टम है।

संस्करण

1.0 और 1.1

पहले (एक्सएमएल 1.0) को प्रारंभ में 1998 में परिभाषित किया गया था। तब से इसमें मामूली संशोधन किया गया है, बिना कोई नया संस्करण संख्या दिए, और वर्तमान में यह अपने पांचवें संस्करण में है, जैसा कि 26 नवंबर, 2008 को प्रकाशित हुआ था। यह व्यापक रूप से प्रयुक्त है और अभी भी है सामान्य उपयोग के लिए अनुशंसित होता है।

दूसरा (एक्सएमएल 1.1) प्रारंभ में 4 फरवरी, 2004 को प्रकाशित हुआ था, उसी दिन एक्सएमएल 1.0 तीसरे संस्करण के रूप में,[32] और वर्तमान में इसके दूसरे संस्करण में है, जैसा कि 16 अगस्त, 2006 को प्रकाशित किया गया था। इसमें ऐसी विशेषताएं (कुछ विवादास्पद) सम्मिलित हैं, जिनका उद्देश्य कुछ स्थितियों में एक्सएमएल का उपयोग करना सरल बनाना है।[33] मुख्य परिवर्तन ईबीसीडीआईसी प्लेटफॉर्म पर उपयोग किए जाने वाले लाइन-एंडिंग वर्णों के उपयोग को सक्षम करने और यूनिकोड 3.2 से अनुपस्थित लिपियों और वर्णों के उपयोग को सक्षम करने के लिए हैं। एक्सएमएल 1.1 बहुत व्यापक रूप से प्रयुक्त नहीं किया गया है और केवल उन लोगों के लिए अनुशंसित है जिन्हें इसकी विशेष विशेषताओं की आवश्यकता है।[34]

अपने पांचवें संस्करण के रिलीज से पहले, एक्सएमएल 1.0 एक्सएमएल 1.1 से भिन्न था, जिसमें तत्व और विशेषता नामों और विशिष्ट पहचानकर्ताओं में उपयोग के लिए उपलब्ध वर्णों के लिए सख्त आवश्यकताएं थीं: एक्सएमएल 1.0 के पहले चार संस्करणों में वर्णों को विशेष रूप से विशिष्ट संस्करण का उपयोग करके गणना की गई थी। यूनिकोड मानक (यूनिकोड 2.0 से यूनिकोड 3.2 तक।) पांचवां संस्करण एक्सएमएल 1.1 के तंत्र को प्रतिस्थापित करता है, जो अधिक भविष्य-प्रमाण है किन्तु अतिरेक (सूचना सिद्धांत) को कम करता है। एक्सएमएल 1.0 के पांचवें संस्करण और एक्सएमएल 1.1 के सभी संस्करणों में अपनाया गया दृष्टिकोण यह है कि केवल कुछ वर्णों को नामों में वर्जित किया गया है, और अवशेष सभी को भविष्य के यूनिकोड संस्करणों में उपयुक्त नाम वर्णों को समायोजित करने की अनुमति है। पांचवें संस्करण में, एक्सएमएल नामों में यूनिकोड 3.2 के बाद से यूनिकोड में जोड़े गए कई अन्य लोगों के बीच बाली लिपि, चाम लिपि, या फोनीशियन वर्णमाला लिपियों में वर्ण सम्मिलित हो सकते हैं।[33]

लगभग किसी भी यूनिकोड कोड बिंदु का उपयोग एक्सएमएल 1.0 या 1.1 दस्तावेज़ के वर्ण डेटा और विशेषता मानों में किया जा सकता है, तथापि कोड बिंदु से संबंधित वर्ण यूनिकोड के वर्तमान संस्करण में परिभाषित नही होता है। कैरेक्‍टर डेटा और विशेषता मानों में, एक्सएमएल 1.1 एक्सएमएल 1.0 की तुलना में अधिक नियंत्रण वर्णों के उपयोग की अनुमति देता है, किन्तु, सशक्ती के लिए, एक्सएमएल 1.1 में प्रस्तुत किए गए अधिकांश नियंत्रण वर्णों को अंकीय वर्ण संदर्भों (और x7F से x9F तक) के रूप में व्यक्त किया जाना चाहिए, जो एक्सएमएल 1.0 में अनुमति दी गई थी, एक्सएमएल 1.1 में भी संख्यात्मक कैरेक्टर संदर्भों के रूप में व्यक्त करने की आवश्यकता है [35]). एक्सएमएल 1.1 में समर्थित नियंत्रण वर्णों में दो लाइन ब्रेक कोड हैं जिन्हें व्हाइटस्पेस वर्णों के रूप में माना जाना चाहिए, जो कि एकमात्र नियंत्रण कोड हैं जिन्हें सीधे लिखा जा सकता है।

2.0

एक्सएमएल 2.0 की चर्चा हुई है, चूँकि किसी भी संगठन ने इस तरह की परियोजना पर काम करने की योजना की प्रकाशन नहीं की है। एक्सएमएल-एसडब्लू (स्कंकवर्क्स प्रोजेक्ट के लिए एसडब्लू), जिसे एक्सएमएल के मूल डेवलपर्स में से ने लिखा है,[36] एक्सएमएल 2.0 कैसा दिख सकता है, इसके लिए कुछ प्रस्ताव सम्मिलित हैं, जिसमें सिंटैक्स से डीटीडी का उन्मूलन, साथ ही एक्सएमएल नामस्थानों का एकीकरण, एक्सएमएल बेस और एक्सएमएल सूचना सेट को आधार मानक में सम्मिलित किया गया है।

बाइनरी एक्सएमएल

वर्ल्ड वाइड वेब कंसोर्टियम में एक्सएमएल बाइनरी कैरेक्टराइजेशन वर्किंग समूह भी है जो एक्सएमएल सूचना सेट के बाइनरी एन्कोडिंग के लिए उपयोग के स्थितियों और गुणों में प्रारंभिक शोध कर रहा है। कार्य समूह को किसी भी आधिकारिक मानक का उत्पादन करने के लिए चार्टर्ड नहीं किया गया है। चूँकि एक्सएमएल परिभाषा के अनुसार टेक्स्ट-आधारित है, आईटीयू-टी और आईएसओ भ्रम से बचने के लिए अपने स्वयं के बाइनरी प्रारूप (आईटीयू-टी रेक. X.891 और आईएसओ/आईईसी 24824-1) के लिए स्थिर इन्फोसेट नाम का उपयोग कर रहे हैं।

आलोचना

शब्दशः, जटिलता और अतिरेक के लिए एक्सएमएल और इसके एक्सटेंशन की नियमित रूप से आलोचना की गई है।[37] प्रोग्रामिंग भाषाओं या डेटाबेस के टाइप सिस्टम के लिए एक्सएमएल के मूल ट्री मॉडल को मैप करना कठिन हो सकता है, जब एक्सएमएल का उपयोग अनुप्रयोगों के बीच अत्यधिक संरचित डेटा के आदान-प्रदान के लिए किया जाता है, जो कि इसका प्राथमिक डिजाइन लक्ष्य नहीं था। चूँकि, एक्सएमएल डेटा बाइंडिंग सिस्टम अनुप्रयोगों को एक्सएमएल डेटा को सीधे उपयोग की जाने वाली प्रोग्रामिंग भाषा में डेटा की डेटा संरचना का प्रतिनिधित्व करने वाली ऑब्जेक्टओं से एक्सेस करने की अनुमति देता है, जो डेटा को पुनः प्राप्त करने के लिए दस्तावेज़ ऑब्जेक्ट मॉडल या एक्सएमएल के लिए सरल एपीआई का उपयोग करने के अतिरिक्त प्रकार की सुरक्षा सुनिश्चित करता है। एक्सएमएल का प्रत्यक्ष प्रतिनिधित्व यह स्वचालित रूप से दस्तावेज़ के एक्सएमएल स्कीमा एक्सएसडी के तत्वों और मेमोरी में प्रदर्शित होने वाले वर्ग के सदस्यों के बीच मैपिंग बनाकर पूरा किया जाता है।

अन्य आलोचनाएँ इस प्रमाण का खंडन करने का प्रयास करती हैं कि एक्सएमएल स्व-वर्णन करने वाली भाषा है [38] (चूँकि एक्सएमएल विनिर्देश स्वयं ऐसा कोई प्रमाणित नहीं करता है)।

जेएसओएन, वाईएएमएल, और S-एक्सप्रेशन को अधिकांशतः सरल विकल्प के रूप में प्रस्तावित किया जाता है (डेटा क्रमांकन प्रारूपों की तुलना देखें) [39] जो दस्तावेजों के अतिरिक्त अत्यधिक संरचित डेटा का प्रतिनिधित्व करने पर ध्यान केंद्रित करता है, जिसमें अत्यधिक संरचित और अपेक्षाकृत असंरचित पदार्थ दोनों हो सकती हैं। चूँकि, डब्ल्यू3सी मानकीकृत एक्सएमएल स्कीमा विनिर्देश सरल क्रमांकन स्वरूपों की तुलना में संरचित एक्सएसडी डेटा प्रकारों की विस्तृत श्रृंखला प्रदान करते हैं और एक्सएमएल नामस्थानों के माध्यम से मॉड्यूलरिटी और पुन: उपयोग की प्रस्तुति करते हैं।

यह भी देखें

  • एक्सएमएल मार्कअप भाषाओं की सूची
  • एक्सएमएल स्कीमा की सूची
  • एक्स्टेंसिबल प्रोग्रामिंग
  • डेटा-सीरियलाइज़ेशन स्वरूपों की तुलना
  • बाइनरी एक्सएमएल
  • ईबीएमएल
  • डब्ल्यूबीएक्सएमएल
  • एक्सएमएल प्रोटोकॉल

टिप्पणियाँ

  1. i.e., embedded quote characters would be a problem
  2. A common example of this is CSS class or identifier names.

संदर्भ

  1. "XML Media Types, RFC 7303". Internet Engineering Task Force. July 2014.
  2. "एक्सएमएल 1.0 विशिष्टता". World Wide Web Consortium. Retrieved 22 August 2010.
  3. "एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.0". www.w3.org.
  4. "XML और सिमेंटिक वेब W3C मानक समयरेखा" (PDF). Dblab.ntua.gr. Archived from the original (PDF) on 24 April 2013. Retrieved 14 August 2016.
  5. "W3C दस्तावेज़ लाइसेंस". W3.org. Retrieved 24 July 2020.
  6. 6.0 6.1 "एक्सएमएल 1.0 उत्पत्ति और लक्ष्य". W3.org. Retrieved 14 August 2016.
  7. Fennell, Philip (June 2013). "एक्सएमएल की चरम सीमा". XML London 2013: 80–86. doi:10.14337/XMLLondon13.Fennell01. ISBN 978-0-9926471-0-0.
  8. 8.0 8.1 8.2 8.3 8.4 Dykes, Lucinda (2005). डमियों के लिए एक्सएमएल (4th ed.). Hoboken, N.J.: Wiley. ISBN 978-0-7645-8845-7.
  9. "एक्सएमएल अनुप्रयोग और पहल". Xml.coverages.org. Retrieved 16 November 2017.
  10. "एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.0 (पांचवां संस्करण)". World Wide Web Consortium. 2008-11-26. Retrieved 23 November 2012.
  11. "एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.1 (दूसरा संस्करण)". World Wide Web Consortium. Retrieved 22 August 2010.
  12. "वर्ण बनाम बाइट्स". Tbray.org. Retrieved 16 November 2017.
  13. "कैरेक्टर एनकोडिंग का ऑटोडिटेक्शन". W3.org. Retrieved 16 November 2017.
  14. "एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.0 (पांचवां संस्करण)". W3.org. Retrieved 16 November 2017.
  15. "W3C I18N अक्सर पूछे जाने वाले प्रश्न: HTML, XHTML, XML और नियंत्रण कोड". W3.org. Retrieved 16 November 2017.
  16. "एक्स्टेंसिबल मार्कअप लैंग्वेज (XML)". W3.org. Retrieved 16 November 2017. Section "Comments"
  17. Pilgrim, Mark (2004). "एक्सएमएल में ड्रैकोनियन एरर हैंडलिंग का इतिहास". Archived from the original on 2011-07-26. Retrieved 18 July 2013.
  18. "पोस्टेल के नियम का कोई अपवाद नहीं है [निशान में गोता लगाएँ]". DiveIntoMark.org. Archived from the original on 2011-05-14. Retrieved 22 April 2013.
  19. "एक्सएमएल नोटपैड". Xmlnotepad/codeplex.com. Archived from the original on 15 November 2017. Retrieved 16 November 2017.
  20. "एक्सएमएल नोटपैड 2007". Microsoft.com. Retrieved 16 November 2017.
  21. DuCharme, Bob. "धक्का, खींचो, अगला!". Xml.com. Retrieved 16 November 2017.
  22. ".NET फ्रेमवर्क में XML क्रमांकन". Msdn.microsoft.com. Retrieved 31 July 2009.
  23. "प्रसंस्करण XML E4X के साथ". Mozilla Developer Center. Mozilla Foundation. Archived from the original on 2011-05-01. Retrieved 2010-07-27.
  24. "एक्सएमएल शैल: कोर सिंटैक्स". Xmlsh.org. 2010-05-13. Retrieved 22 August 2010.
  25. "रिसोर्स डिस्क्रिप्शन फ्रेमवर्क (RDF): कॉन्सेप्ट्स एंड एब्सट्रैक्ट सिंटेक्स". W3.org. Retrieved 22 August 2010.
  26. Eliot Kimber (2006). "एक्सएमएल 10 है". Drmacros-xml-rants.blogspot.com. Retrieved 16 November 2017.
  27. The working group was originally called the "Editorial Review Board." The original members and seven who were added before the first edition was complete, are listed at the end of the first edition of the XML Recommendation, at http://www.w3.org/TR/1998/REC-xml-19980210.
  28. "W3C SGML ERB से SGML WG को और W3C XML ERB से XML SIG को रिपोर्ट". W3.org. Retrieved 31 July 2009.
  29. "जावा डेवलपर्स के लिए ओरेकल टेक्नोलॉजी नेटवर्क - ओरेकल टेक्नोलॉजी नेटवर्क - ओरेकल". Java.sun.com. Retrieved 16 November 2017.
  30. "एक्स्टेंसिबल मार्कअप लैंग्वेज (XML)". W3.org. 1996-11-14. Retrieved 31 July 2009.
  31. Jon Bosak; Sun Microsystems (2006-12-07). "क्लोजिंग कीनोट, एक्सएमएल 2006". 2006.xmlconference.org. Archived from the original on 2007-07-11. Retrieved 31 July 2009.
  32. "एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.0 (तीसरा संस्करण)". W3.org. Retrieved 22 August 2010.
  33. 33.0 33.1 "एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.1 (दूसरा संस्करण), XML 1.1 के लिए औचित्य और परिवर्तनों की सूची". W3.org. Retrieved 20 January 2012.
  34. Harold, Elliotte Rusty (2004). प्रभावी एक्सएमएल. Addison-Wesley. pp. 10–19. ISBN 0-321-15040-6.
  35. "एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) 1.1 (दूसरा संस्करण)". W3.org. Retrieved 22 August 2010.
  36. Bray, Tim (10 February 2002). "एक्स्टेंसिबल मार्कअप लैंग्वेज, SW (XML-SW)".
  37. "एक्सएमएल: द एंगल ब्रैकेट टैक्स". Codinghorror.com. 11 May 2008. Retrieved 16 November 2017.
  38. "स्व-वर्णन एक्सएमएल का मिथक" (PDF). Workflow.HealthBase.info. September 2003. Retrieved 16 November 2017.
  39. "आप XML सिंटैक्स के कौन से उपयोगी विकल्प जानते हैं?". StackOverflow.com. Retrieved 16 November 2017.


आगे की पढाई

इस पेज में लापता आंतरिक लिंक की सूची

बाहरी कड़ियाँ

श्रेणी:अनुप्रयोग परत प्रोटोकॉल श्रेणी: उदाहरण कोड वाले लेख श्रेणी: ग्रंथ सूची फ़ाइल प्रारूप श्रेणी:कंप्यूटर फ़ाइल स्वरूप श्रेणी:डेटा मॉडलिंग भाषाएं श्रेणी:डेटा क्रमांकन प्रारूप श्रेणी:मार्कअप भाषाएं श्रेणी:खुले प्रारूप श्रेणी:प्रस्तुति परत प्रोटोकॉल श्रेणी:तकनीकी संचार श्रेणी: वर्ल्ड वाइड वेब कंसोर्टियम मानक