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

परिचय

नमस्कार, मेरे लेख के प्रिय पाठकों। मैं तुरंत कहना चाहता हूं कि यह मेरे तीन लेखों की शृंखला का पहला लेख है। पूरी शृंखला का मुख्य लक्ष्य प्रत्येक पाठक को XML में आरंभ करना और यदि पूर्ण स्पष्टीकरण और समझ नहीं है, तो कम से कम मुख्य बिंदुओं और चीजों को समझाते हुए इस ओर एक अच्छा धक्का देना है। पूरा चक्र एक नामांकन के लिए होगा - "विस्तार पर ध्यान दें", और पदों में वर्ण सीमा को फिट करने और विभाजित करने के लिए 3 लेखों में विभाजन किया गया था बड़ी संख्याबेहतर समझ के लिए सामग्री को छोटे भागों में बाँटें। पहला लेख XML के बारे में ही समर्पित होगा और यह क्या है, साथ ही XML फ़ाइलों के लिए एक स्कीमा बनाने के तरीकों में से एक - DTD। आरंभ करने के लिए, मैं उन लोगों के लिए एक छोटी सी प्रस्तावना बनाना चाहूँगा जो अभी तक XML से परिचित नहीं हैं: डरने की कोई आवश्यकता नहीं है। XML बहुत जटिल नहीं है और इसे किसी भी प्रोग्रामर को समझना चाहिए, क्योंकि यह विभिन्न प्रकार की जानकारी संग्रहीत करने के लिए आज एक बहुत ही लचीला, कुशल और लोकप्रिय फ़ाइल स्वरूप है जो आप चाहते हैं। XML का उपयोग एंट, मेवेन, स्प्रिंग में किया जाता है। किसी भी प्रोग्रामर को XML का ज्ञान आवश्यक है। अब जब आपने शक्ति और प्रेरणा एकत्र कर ली है, तो आइए अध्ययन शुरू करें। मैं सभी सामग्रियों को यथासंभव सरलता से प्रस्तुत करने का प्रयास करूंगा, केवल सबसे महत्वपूर्ण सामग्री एकत्र करूंगा और व्यर्थ बातों में नहीं जाऊंगा।

एक्सएमएल

स्पष्ट स्पष्टीकरण के लिए, XML को एक उदाहरण के साथ देखना बेहतर होगा।< ? xml version= "1.0" encoding= "UTF-8" ? > < company> < name> आईटी स्वर्ग< / name> < offices> < office floor= "1" room= "1" > < employees> < employee> < name> कहावत< / name> < job> मध्य सॉफ्टवेयर डेवलपर< / job> < / employee> < employee> < name> इवान< / name> < job> जूनियर सॉफ्टवेयर डेवलपर< / job> < / employee> < employee> < name> फ्रेंकलिन< / name> < job> जूनियर सॉफ्टवेयर डेवलपर< / job> < / employee> < / employees> < / office> < office floor= "1" room= "2" > < employees> < employee> < name> सूचना देना< / name> < job> मध्य सॉफ्टवेयर डेवलपर< / job> < / employee> < employee> < name> एडम< / name> < job> मध्य सॉफ्टवेयर डेवलपर< / job> < / employee> < employee> < name> LEROY< / name> < job> जूनियर सॉफ्टवेयर डेवलपर< / job> < / employee> < / employees> < / office> < / offices> < / company>HTML और XML वाक्यविन्यास में समान हैं क्योंकि उनका एक सामान्य अभिभावक है - SGML। हालाँकि, HTML में केवल एक विशिष्ट मानक के निश्चित टैग होते हैं, जबकि XML में आप अपने स्वयं के टैग, विशेषताएँ बना सकते हैं और सामान्य तौर पर, जो भी आप डेटा को अपने अनुकूल तरीके से संग्रहीत करना चाहते हैं वह कर सकते हैं। मूलतः, XML फ़ाइलें कोई भी जानकार व्यक्ति पढ़ सकता है अंग्रेजी भाषा. इस उदाहरण को एक पेड़ का उपयोग करके दर्शाया जा सकता है। पेड़ की जड़- कंपनी। यह मूल (जड़) तत्व भी है जिससे अन्य सभी तत्व आते हैं। प्रत्येक XML फ़ाइल में केवल एक मूल तत्व हो सकता है।इसके बाद इसकी घोषणा की जानी चाहिए xml फ़ाइल घोषणा(उदाहरण में पहली पंक्ति) और इसमें अन्य सभी तत्व शामिल हैं। घोषणा के बारे में थोड़ा: यह अनिवार्यऔर दस्तावेज़ को XML के रूप में पहचानने के लिए आवश्यक है। इसमें तीन छद्म विशेषताएँ (विशेष पूर्वनिर्धारित विशेषताएँ) हैं: संस्करण (1.0 मानक के अनुसार), एन्कोडिंग (एन्कोडिंग) और स्टैंडअलोन (स्वायत्तता: यदि हाँ और बाहरी योजनाएँ दस्तावेज़ से जुड़ी हैं, तो एक त्रुटि होगी, डिफ़ॉल्ट कोई नहीं है)। तत्वोंऐसी इकाइयाँ हैं जो अन्य तत्वों और विशेषताओं का उपयोग करके डेटा संग्रहीत करती हैं। गुण- यह तत्व के बारे में अतिरिक्त जानकारी है, जो तत्व जोड़ते समय निर्दिष्ट की जाती है। यदि हम स्पष्टीकरण को ओओपी फ़ील्ड में अनुवादित करते हैं, तो हम निम्नलिखित उदाहरण दे सकते हैं: हमारे पास एक कार है, प्रत्येक कार में विशेषताएं (रंग, क्षमता, ब्रांड इत्यादि) हैं - ये विशेषताएं हैं, और ऐसी इकाइयां हैं जो कार के अंदर हैं : दरवाजे, खिड़कियां, इंजन, स्टीयरिंग व्हील अन्य तत्व हैं। आप जैसे गुणों को संग्रहीत कर सकते हैं अलग तत्व, और गुण आपकी इच्छा पर निर्भर करते हैं। आख़िरकार, किसी भी चीज़ के बारे में जानकारी संग्रहीत करने के लिए XML एक अत्यंत लचीला प्रारूप है। स्पष्टीकरण के बाद, हमें सब कुछ सही जगह पर लाने के लिए बस ऊपर दिए गए उदाहरण को देखना होगा। उदाहरण में, हमने एक सरल कंपनी संरचना का वर्णन किया है: एक कंपनी है जिसका एक नाम और कार्यालय हैं, और कार्यालयों में कर्मचारी हैं। कर्मचारी और कार्यालय तत्व रैपर तत्व हैं - वे एक ही प्रकार के तत्वों को इकट्ठा करने का काम करते हैं, प्रसंस्करण में आसानी के लिए अनिवार्य रूप से उन्हें एक सेट में जोड़ते हैं। फर्श और कमरा विशेष ध्यान देने योग्य हैं। ये कार्यालय की विशेषताएँ (तल और संख्या) हैं, दूसरे शब्दों में, इसकी संपत्तियाँ। यदि हमारे पास "छवि" तत्व होता, तो हम उसके आयामों को स्थानांतरित कर सकते थे। आप देख सकते हैं कि कंपनी के पास नाम विशेषता नहीं है, लेकिन नाम तत्व है। आप संरचनाओं का अपनी इच्छानुसार वर्णन कर सकते हैं। कोई भी आपको तत्वों के सभी गुणों को केवल विशेषताओं में लिखने के लिए बाध्य नहीं करता है; आप केवल तत्वों का उपयोग कर सकते हैं और उनके अंदर कुछ डेटा लिख ​​सकते हैं। उदाहरण के लिए, हम अपने कर्मचारियों के नाम और स्थिति को विशेषताओं के रूप में रिकॉर्ड कर सकते हैं:< ? xml version= "1.0" encoding= "UTF-8" ? > < company> < name> आईटी स्वर्ग< / name> < offices> < office floor= "1" room= "1" > < employees> < employee name= "Maksim" job= "Middle Software Developer" > < / employee> < employee name= "Ivan" job= "Junior Software Developer" > < / employee> < employee name= "Franklin" job= "Junior Software Developer" > < / employee> < / employees> < / office> < office floor= "1" room= "2" > < employees> < employee name= "Herald" job= "Middle Software Developer" > < / employee> < employee name= "Adam" job= "Middle Software Developer" > < / employee> < employee name= "Leroy" job= "Junior Software Developer" > < / employee> < / employees> < / office> < / offices> < / company>जैसा कि आप देख सकते हैं, अब प्रत्येक कर्मचारी का नाम और पद उसकी विशेषताएँ हैं। और आप देख सकते हैं कि कर्मचारी इकाई (टैग) के अंदर कुछ भी नहीं है, सभी कर्मचारी तत्व खाली हैं। फिर आप कर्मचारी को एक खाली तत्व बना सकते हैं - विशेषताओं की घोषणा के तुरंत बाद इसे बंद कर दें। यह काफी सरलता से किया जाता है, बस एक स्लैश जोड़ें:< ? xml version= "1.0" encoding= "UTF-8" ? > < company> < name> आईटी स्वर्ग< / name> < offices> < office floor= "1" room= "1" > < employees> < employee name= "Maksim" job= "Middle Software Developer" / > < employee name= "Ivan" job= "Junior Software Developer" / > < employee name= "Franklin" job= "Junior Software Developer" / > < / employees> < / office> < office floor= "1" room= "2" > < employees> < employee name= "Herald" job= "Middle Software Developer" / > < employee name= "Adam" job= "Middle Software Developer" / > < employee name= "Leroy" job= "Junior Software Developer" / > < / employees> < / office> < / offices> < / company>जैसा कि आप देख सकते हैं, खाली तत्वों को बंद करके, हमने जानकारी की संपूर्ण अखंडता को संरक्षित किया और रिकॉर्ड को बहुत छोटा कर दिया, जिससे जानकारी अधिक संक्षिप्त और पठनीय हो गई। जमा करना टिप्पणी(पाठ जो फ़ाइल को पार्स करते समय छोड़ दिया जाएगा) XML में, निम्नलिखित सिंटैक्स है:< ! -- Иван недавно уволился, только неделю отработать должен. Не забудьте потом удалить его из списка. -- >और आखिरी डिज़ाइन है सीडीएटीए , का अर्थ है "चरित्र डेटा"। इस डिज़ाइन के लिए धन्यवाद, ऐसा पाठ लिखना संभव है जिसे XML मार्कअप के रूप में व्याख्या नहीं किया जाएगा। यह उपयोगी है यदि आपके पास XML फ़ाइल के अंदर एक इकाई है जो जानकारी में XML मार्कअप संग्रहीत करती है। उदाहरण:< ? xml version= "1.0" encoding= "UTF-8" ? > < bean> < information> < ! [ CDATA[ < name> इवान< / name> < age> 26 < / age> ] ] > < / information> < / bean>XML के बारे में बात यह है कि आप इसे अपनी इच्छानुसार विस्तारित कर सकते हैं: अपने स्वयं के तत्वों, अपनी विशेषताओं का उपयोग करें, और अपनी इच्छानुसार इसकी संरचना करें। आप डेटा संग्रहीत करने के लिए विशेषताओं और तत्वों दोनों का उपयोग कर सकते हैं (जैसा कि पहले उदाहरण में दिखाया गया था)। हालाँकि, आपको यह समझने की आवश्यकता है कि आप तुरंत अपने तत्वों और विशेषताओं के साथ आ सकते हैं और जैसा आप चाहते हैं, लेकिन क्या होगा यदि आप एक ऐसे प्रोजेक्ट पर काम करते हैं जहां कोई अन्य प्रोग्रामर नाम तत्व को विशेषताओं और आपके संपूर्ण प्रोग्राम तर्क में स्थानांतरित करना चाहता है इसलिए लिखा गया है कि नाम एक तत्व था? आप अपने स्वयं के नियम कैसे बना सकते हैं कि कौन से तत्व होने चाहिए, उनमें क्या विशेषताएँ होनी चाहिए और अन्य चीज़ें, ताकि आप XML फ़ाइलों को मान्य कर सकें और सुनिश्चित कर सकें कि नियम आपके प्रोजेक्ट में मानक बन जाएंगे और कोई भी उनका उल्लंघन नहीं करेगा? आपके अपने XML मार्कअप के सभी नियम लिखने के लिए, विशेष उपकरण हैं। सबसे प्रसिद्ध: DTD और XML स्कीमा। यह लेख केवल पहले के बारे में बात करेगा.

डीटीडी

DTD दस्तावेज़ों के प्रकारों का वर्णन करने के लिए बनाया गया है। DTD पहले से ही अप्रचलित हो रहा है और अब इसे XML में सक्रिय रूप से छोड़ा जा रहा है, लेकिन अभी भी कई XML फ़ाइलें हैं जो DTD का उपयोग करती हैं और सामान्य तौर पर, इसे समझना उपयोगी है। DTD XML दस्तावेज़ों को मान्य करने की एक तकनीक है. एक DTD दस्तावेज़ प्रकार के लिए विशिष्ट नियमों की घोषणा करता है: इसके तत्व, तत्व के अंदर कौन से तत्व हो सकते हैं, विशेषताएँ, क्या उनकी आवश्यकता है या नहीं, उनकी पुनरावृत्ति की संख्या, साथ ही इकाइयाँ। एक्सएमएल के समान, स्पष्ट स्पष्टीकरण के लिए एक डीटीडी को एक उदाहरण के साथ देखा जा सकता है।< ! -- Объявление возможных элементов -- > < ! ELEMENT employee EMPTY> < ! ELEMENT employees (employee+ ) > < ! ELEMENT office (employees) > < ! ELEMENT offices (office+ ) > < ! ELEMENT name (#PCDATA) > < ! ELEMENT company (name, offices) > < ! -- Добавление атрибутов для элементов employee и office -- > < ! ATTLIST employee name CDATA #REQUIRED job CDATA #REQUIRED > < ! ATTLIST office floor CDATA #REQUIRED room CDATA #REQUIRED > < ! -- Добавление сущностей -- > < ! ENTITY M "Maksim" > < ! ENTITY I "Ivan" > < ! ENTITY F "Franklin" >यहां हमारे पास ऐसा एक सरल उदाहरण है. में इस उदाहरण में, हमने उदाहरण XML से अपना संपूर्ण पदानुक्रम घोषित किया: कर्मचारी, कर्मचारी, कार्यालय, कार्यालय, नाम, कंपनी। DTD फ़ाइलें बनाने के लिए, किसी भी XML फ़ाइल का वर्णन करने के लिए 3 मुख्य निर्माणों का उपयोग किया जाता है: ELEMENT (तत्वों का वर्णन करने के लिए), ATTLIST (तत्वों की विशेषताओं का वर्णन करने के लिए) और ENTITY (संक्षिप्त रूपों के साथ पाठ को प्रतिस्थापित करने के लिए)। तत्वतत्व का वर्णन करने के लिए उपयोग किया जाता है। वर्णित तत्व के भीतर जिन तत्वों का उपयोग किया जा सकता है, उन्हें सूची के रूप में कोष्ठक में सूचीबद्ध किया गया है। आप मात्रा को इंगित करने के लिए क्वांटिफायर का उपयोग कर सकते हैं (वे नियमित अभिव्यक्तियों के क्वांटिफायर के समान हैं): + का मतलब 1+ * का मतलब 0+ है? मतलब 0 या 1 यदि कोई परिमाणक नहीं जोड़ा गया, तो यह माना जाता है कि केवल 1 तत्व होना चाहिए।यदि हमें तत्वों के समूह में से किसी एक की आवश्यकता है, तो हम इसे इस तरह लिख सकते हैं:< ! ELEMENT company ((name | offices) ) >फिर तत्वों में से एक का चयन किया जाएगा: नाम या कार्यालय, लेकिन अगर कंपनी के अंदर उनमें से दो थे, तो सत्यापन पास नहीं होगा। आप यह भी देख सकते हैं कि कर्मचारी में EMPTY शब्द है - इसका मतलब है कि तत्व खाली होना चाहिए। कोई भी - कोई तत्व भी है। #PCDATA - टेक्स्ट डेटा। ATTLISTतत्वों में विशेषताएँ जोड़ने के लिए उपयोग किया जाता है। ATTLIST के बाद वांछित तत्व का नाम आता है, और उसके बाद "विशेषता नाम - विशेषता प्रकार" फॉर्म का एक शब्दकोश होता है, और अंत में आप #IMPLIED (वैकल्पिक) या #REQUIRED (आवश्यक) जोड़ सकते हैं। सीडीएटीए - टेक्स्ट डेटा। अन्य प्रकार भी हैं, लेकिन वे सभी लोअरकेस हैं। इकाई ENTITY का उपयोग संक्षिप्ताक्षरों और उन पर रखे जाने वाले पाठ को घोषित करने के लिए किया जाता है। वास्तव में, हम XML में पूर्ण पाठ के बजाय, केवल इकाई का नाम और के पहले & चिह्न के साथ उपयोग कर सकते हैं; बाद में। उदाहरण के लिए: HTML मार्कअप और केवल वर्णों के बीच अंतर करने के लिए, बाएं कोण ब्रैकेट को अक्सर lt से हटा दिया जाता है; , आपको बस lt से पहले & लगाना होगा। तब हम मार्कअप का उपयोग नहीं करेंगे, बल्कि केवल एक प्रतीक का उपयोग करेंगे< . Как вы можете видеть, все довольно просто: объявляете элементы, объясняете, какие элементы объявленные элементы способны содержать, добавление атрибутов этим элементам и, по желанию, можете добавить сущности, чтобы сокращать какие-то записи. И тут вы должны были бы спросить: а как использовать наши правила в нашем XML файле? Ведь мы просто объявили правила, но мы не использовали их в XML. XML में इनका उपयोग करने के दो तरीके हैं: 1. कार्यान्वयन - XML ​​फ़ाइल के अंदर ही DTD नियम लिखना, बस DOCTYPE कीवर्ड के बाद मूल तत्व लिखें और हमारी DTD फ़ाइल को वर्गाकार कोष्ठक के अंदर संलग्न करें। < ? xml version= "1.0" encoding= "UTF-8" ? > < ! DOCTYPE company [ < ! -- Объявление возможных элементов -- > < ! ELEMENT employee EMPTY> < ! ELEMENT employees (employee+ ) > < ! ELEMENT office (employees) > < ! ELEMENT offices (office+ ) > < ! ELEMENT name (#PCDATA) > < ! ELEMENT company (name, offices) > < ! -- Добавление атрибутов для элементов employee и office -- > < ! ATTLIST employee name CDATA #REQUIRED job CDATA #REQUIRED > < ! ATTLIST office floor CDATA #REQUIRED room CDATA #REQUIRED > < ! -- Добавление сущностей -- > < ! ENTITY M "Maksim" > < ! ENTITY I "Ivan" > < ! ENTITY F "Franklin" > ] > < company> < name> आईटी स्वर्ग< / name> < ! -- Иван недавно уволился, только неделю отработать должен. Не забудьте потом удалить его из списка. -- > < offices> < office floor= "1" room= "1" > < employees> < employee name= "&M;" job= "Middle Software Developer" / > < employee name= "&I;" job= "Junior Software Developer" / > < employee name= "&F;" job= "Junior Software Developer" / > < / employees> < / office> < office floor= "1" room= "2" > < employees> < employee name= "Herald" job= "Middle Software Developer" / > < employee name= "Adam" job= "Middle Software Developer" / > < employee name= "Leroy" job= "Junior Software Developer" / > < / employees> < / office> < / offices> < / company> 2. आयात - हम अपने सभी नियमों को एक अलग DTD फ़ाइल में लिखते हैं, जिसके बाद XML फ़ाइल में हम पहली विधि से DOCTYPE निर्माण का उपयोग करते हैं, केवल वर्गाकार कोष्ठक के बजाय आपको SYSTEM लिखने और एक निरपेक्ष या सापेक्ष पथ निर्दिष्ट करने की आवश्यकता होती है फ़ाइल का वर्तमान स्थान. < ? xml version= "1.0" encoding= "UTF-8" ? > < ! DOCTYPE company SYSTEM "dtd_example1.dtd" > < company> < name> आईटी स्वर्ग< / name> < ! -- Иван недавно уволился, только неделю отработать должен. Не забудьте потом удалить его из списка. -- > < offices> < office floor= "1" room= "1" > < employees> < employee name= "&M;" job= "Middle Software Developer" / > < employee name= "&I;" job= "Junior Software Developer" / > < employee name= "&F;" job= "Junior Software Developer" / > < / employees> < / office> < office floor= "1" room= "2" > < employees> < employee name= "Herald" job= "Middle Software Developer" / > < employee name= "Adam" job= "Middle Software Developer" / > < employee name= "Leroy" job= "Junior Software Developer" / > < / employees> < / office> < / offices> < / company>आप भी प्रयोग कर सकते हैं कीवर्डसिस्टम के बजाय सार्वजनिक, लेकिन आपको इसकी आवश्यकता होने की संभावना नहीं है। यदि आप रुचि रखते हैं, तो आप इसके बारे में (और सिस्टम के बारे में भी) यहां विस्तार से पढ़ सकते हैं: लिंक। अब हम डीटीडी में घोषित किए बिना अन्य तत्वों का उपयोग नहीं कर सकते हैं, और सभी एक्सएमएल हमारे नियमों के अधीन हैं। आप इस कोड को IntelliJ IDEA में लिखने का प्रयास कर सकते हैं अलग फ़ाइल.xml एक्सटेंशन के साथ और कुछ नए तत्व जोड़ने या हमारे DTD से एक तत्व हटाने का प्रयास करें और ध्यान दें कि IDE आपको कैसे एक त्रुटि का संकेत देगा। हालाँकि, DTD के अपने नुकसान हैं:
  • इसका अपना सिंटैक्स है, जो xml सिंटैक्स से अलग है।
  • DTD में कोई डेटा प्रकार की जाँच नहीं होती है और इसमें केवल स्ट्रिंग्स हो सकती हैं।
  • DTD में कोई नामस्थान नहीं है.
आपके अपने सिंटैक्स की समस्या के बारे में: आपको एक साथ दो सिंटैक्स को समझना होगा: XML और DTD सिंटैक्स। वे अलग-अलग हैं और यह आपको भ्रमित कर सकता है। इसके अलावा, इस वजह से, समान DTD स्कीमा के संयोजन में विशाल XML फ़ाइलों में त्रुटियों को ट्रैक करना अधिक कठिन है। यदि कुछ आपके लिए काम नहीं करता है, तो आपको जांचना होगा विशाल राशिविभिन्न वाक्यविन्यासों का पाठ। यह एक ही समय में दो किताबें पढ़ने जैसा है: रूसी और अंग्रेजी में। और यदि किसी एक भाषा का आपका ज्ञान बदतर है, तो पाठ को समझना उतना ही कठिन होगा। डेटा प्रकार जाँच समस्या के बारे में: DTDs में विशेषताएँ वास्तव में होती हैं अलग - अलग प्रकार, लेकिन वे सभी अनिवार्य रूप से किसी चीज़, सूचियों या लिंक का स्ट्रिंग प्रतिनिधित्व हैं। हालाँकि, आप केवल संख्याओं की मांग नहीं कर सकते, विशेषकर सकारात्मक या नकारात्मक संख्याओं की नहीं। और आप ऑब्जेक्ट प्रकारों के बारे में पूरी तरह से भूल सकते हैं। आखिरी समस्या पर अगले लेख में चर्चा की जाएगी, जो नेमस्पेस और एक्सएमएल स्कीमा के लिए समर्पित होगी, क्योंकि यहां इस पर चर्चा करना व्यर्थ है। आपका ध्यान देने के लिए आप सभी को धन्यवाद, मैंने लेखों की पूरी श्रृंखला को समय पर समाप्त करने के लिए बहुत काम किया है और इसे करना जारी रखूंगा। मूल रूप से, मुझे बस XML स्कीमाओं का पता लगाना है और दूसरे लेख को समाप्त करने के लिए स्पष्ट शब्दों में उनका स्पष्टीकरण देना है। इसका आधा काम पहले ही हो चुका है, इसलिए आप जल्द ही इसकी उम्मीद कर सकते हैं। अंतिम लेख पूरी तरह से जावा का उपयोग करके XML फ़ाइलों के साथ काम करने के लिए समर्पित होगा। सभी को शुभकामनाएँ और प्रोग्रामिंग में सफलता :) अगला लेख:

आपने शायद XML के बारे में सुना होगा और कई कारण जानते होंगे कि इसका उपयोग आपके संगठन में क्यों किया जाना चाहिए। लेकिन वास्तव में XML क्या है? यह आलेख बताता है कि XML क्या है और यह कैसे काम करता है।

इस आलेख में

मार्कअप, मार्कअप और टैग

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

इस दुनिया में सूचान प्रौद्योगिकी"मार्किंग" शब्द "मार्किंग" शब्द बन गया है। मार्कअप संरचना, दृश्य उपस्थिति और - XML ​​के मामले में - डेटा के अर्थ को परिभाषित करने के लिए टैग (या कभी-कभी टोकन) नामक कोड का उपयोग करता है।

इस आलेख का HTML पाठ कंप्यूटर मार्कअप के उपयोग का एक अच्छा उदाहरण है। यदि माइक्रोसॉफ्ट में इंटरनेट एक्सप्लोररइस पेज पर क्लिक करें दाएँ क्लिक करेंमाउस और कमांड चुनें HTML कोड देखें, आपको पढ़ने योग्य टेक्स्ट और HTML टैग जैसे दिखाई देंगे

और

. HTML और XML दस्तावेज़ों में, टैग को पहचानना आसान होता है क्योंकि वे कोण कोष्ठक में संलग्न होते हैं। इस आलेख के स्रोत पाठ में, HTML टैग कई कार्य करते हैं, जैसे प्रत्येक पैराग्राफ की शुरुआत और अंत को परिभाषित करना (

...

) और चित्रों का स्थान।

एक्सएमएल की विशेषताएं

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

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

काम करते समय कृपया निम्नलिखित बातों का ध्यान रखें:

    XML के स्थान पर HTML का उपयोग नहीं किया जा सकता. हालाँकि, XML डेटा को HTML टैग में संलग्न किया जा सकता है और वेब पेजों पर प्रदर्शित किया जा सकता है।

    HTML क्षमताएं टैग के पूर्वनिर्धारित सेट तक सीमित हैं जो सभी उपयोगकर्ताओं के लिए सामान्य हैं।

    XML नियम आपको डेटा और उसकी संरचना का वर्णन करने के लिए आवश्यक कोई भी टैग बनाने की अनुमति देते हैं। मान लीजिए कि आपको पालतू जानवरों के बारे में जानकारी संग्रहीत और साझा करने की आवश्यकता है। ऐसा करने के लिए, आप निम्नलिखित XML कोड बना सकते हैं:

    इज़ी स्याम देश की भाषा 6 हाँ नहीं Izz138bod कॉलिन विलकॉक्स

जैसा कि आप देख सकते हैं, XML टैग यह स्पष्ट करते हैं कि आप कौन सा डेटा देख रहे हैं। उदाहरण के लिए, यह स्पष्ट है कि डेटा एक बिल्ली के बारे में है, और आप उसका नाम, उम्र आदि आसानी से निर्धारित कर सकते हैं। क्योंकि आप ऐसे टैग बना सकते हैं जो लगभग किसी भी डेटा संरचना को परिभाषित करते हैं, XML एक्स्टेंसिबल है।

लेकिन इस उदाहरण के टैग को HTML फ़ाइल के टैग के साथ भ्रमित न करें। उदाहरण के लिए, यदि उपरोक्त XML टेक्स्ट को HTML फ़ाइल में चिपकाया जाता है और ब्राउज़र में खोला जाता है, तो परिणाम इस तरह दिखेंगे:

इज़ी सियामीज़ 6 हां नहीं इज़्ज़138बॉड कॉलिन विलकॉक्स

वेब ब्राउज़र XML टैग को अनदेखा कर देगा और केवल डेटा प्रदर्शित करेगा।

अच्छी तरह से तैयार किया गया डेटा

आपने संभवतः आईटी में किसी को "सुगठित" XML फ़ाइल के बारे में बात करते हुए सुना होगा। एक अच्छी तरह से बनाई गई XML फ़ाइल को बहुत सख्त नियमों का पालन करना चाहिए। यदि यह इन नियमों का पालन नहीं करता है, तो XML काम नहीं करता है। उदाहरण के लिए, पिछले उदाहरण में, प्रत्येक शुरुआती टैग में एक संबंधित समापन टैग होता है, इसलिए यह उदाहरण एक अच्छी तरह से बनाई गई XML फ़ाइल के नियमों में से एक का पालन करता है। यदि आप किसी फ़ाइल से कोई टैग हटाते हैं और उसे किसी Office प्रोग्राम में खोलने का प्रयास करते हैं, तो एक त्रुटि संदेश दिखाई देगा और ऐसी फ़ाइल का उपयोग करना असंभव होगा।

आपको एक अच्छी तरह से बनाई गई XML फ़ाइल बनाने के नियमों को जानने की ज़रूरत नहीं है (हालाँकि उन्हें समझना मुश्किल नहीं है), लेकिन याद रखें कि केवल अच्छी तरह से बनाई गई XML डेटा का उपयोग अन्य अनुप्रयोगों और प्रणालियों में किया जा सकता है। यदि XML फ़ाइल नहीं खुलती है, तो संभवतः यह विकृत है।

XML प्लेटफ़ॉर्म स्वतंत्र है, जिसका अर्थ है कि XML का उपयोग करने के लिए डिज़ाइन किया गया कोई भी प्रोग्राम हार्डवेयर या ऑपरेटिंग सिस्टम की परवाह किए बिना XML डेटा को पढ़ और संसाधित कर सकता है। उदाहरण के लिए, यदि आप सही XML टैग लागू करते हैं, तो आप मेनफ़्रेम से प्राप्त डेटा को खोलने और संसाधित करने के लिए डेस्कटॉप प्रोग्राम का उपयोग कर सकते हैं। और, भले ही XML डेटा किसने बनाया हो, डेटा को विभिन्न Office अनुप्रयोगों में हेरफेर किया जा सकता है। अपनी अनुकूलता के कारण, XML डेटाबेस और उपयोगकर्ता कंप्यूटर के बीच डेटा के आदान-प्रदान के लिए सबसे लोकप्रिय तकनीकों में से एक बन गया है।

अच्छी तरह से निर्मित टैग किए गए डेटा के अलावा, XML सिस्टम आमतौर पर दो अतिरिक्त घटकों का उपयोग करते हैं: स्कीमा और ट्रांसफ़ॉर्मेशन। निम्नलिखित अनुभाग बताते हैं कि वे कैसे काम करते हैं।

योजनाओं

"योजना" शब्द से भयभीत न हों। स्कीमा बस एक XML फ़ाइल है जिसमें XML डेटा फ़ाइल की सामग्री के लिए नियम शामिल हैं। स्कीमा फ़ाइलों में आमतौर पर एक्सटेंशन XSD होता है, जबकि XML डेटा फ़ाइलें XML एक्सटेंशन का उपयोग करती हैं।

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

सर्किट जटिल हो सकते हैं, और यह लेख यह नहीं समझा सकता कि उन्हें कैसे बनाया जाए। (इसके अलावा, आपके संगठन में संभवतः ऐसे आईटी लोग हैं जो यह करना जानते हैं।) हालांकि, यह जानना उपयोगी है कि आरेख कैसा दिखते हैं। निम्नलिखित आरेख टैग के एक सेट के लिए नियमों को परिभाषित करता है ... :

यदि उदाहरण स्पष्ट नहीं है तो चिंता न करें। बस निम्नलिखित पर ध्यान दें:

    उदाहरण स्कीमा में स्ट्रिंग तत्वों को घोषणाएँ कहा जाता है। यदि जानवर के बारे में अतिरिक्त जानकारी की आवश्यकता होती है, जैसे कि उसका रंग या विशेष विशेषताएं, तो आईटी विभाग आरेख में उचित घोषणाएं जोड़ देगा। व्यावसायिक आवश्यकताओं के अनुसार XML प्रणाली को संशोधित किया जा सकता है।

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

    यदि XML फ़ाइल में डेटा स्कीमा के नियमों का पालन करता है, तो डेटा को वैध कहा जाता है। यह सत्यापित करने की प्रक्रिया कि कोई XML डेटा फ़ाइल स्कीमा नियमों के अनुरूप है, सत्यापन कहलाती है। स्कीमा का उपयोग करने का बड़ा लाभ यह है कि वे डेटा भ्रष्टाचार को रोक सकते हैं। स्कीमा दूषित डेटा को ढूंढना भी आसान बनाती है क्योंकि कोई समस्या होने पर XML फ़ाइल प्रोसेसिंग बंद हो जाती है।

परिवर्तनों

जैसा कि ऊपर चर्चा की गई है, XML डेटा के कुशल उपयोग और पुन: उपयोग की भी अनुमति देता है। डेटा का पुन: उपयोग करने के तंत्र को XSLT परिवर्तन (या बस परिवर्तन) कहा जाता है।

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

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

निम्नलिखित उदाहरण एक परिवर्तन दिखाता है जो डेटा लोड करता है एक वेब पेज पर एक तालिका में। उदाहरण का उद्देश्य यह बताना नहीं है कि परिवर्तन कैसे करें, बल्कि उन रूपों में से एक को दिखाना है जिन्हें वे अपना सकते हैं।

नाम नस्ल आयु बदल घोषित लाइसेंस मालिक

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

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

माइक्रोसॉफ्ट ऑफिस सिस्टम में एक्सएमएल

Office के व्यावसायिक संस्करण उन्नत XML समर्थन प्रदान करते हैं। 2007 के माइक्रोसॉफ्ट ऑफिस सिस्टम से शुरुआत करते हुए, माइक्रोसॉफ्ट ऑफिस XML-आधारित फ़ाइल स्वरूपों जैसे DOCX, XLSX और PPTX का उपयोग करता है। क्योंकि XML मालिकाना बाइनरी प्रारूप के बजाय टेक्स्ट प्रारूप में डेटा संग्रहीत करता है, ग्राहक अपने स्वयं के स्कीमा को परिभाषित कर सकते हैं और रॉयल्टी का भुगतान किए बिना विभिन्न तरीकों से आपके डेटा का उपयोग कर सकते हैं। नए प्रारूपों के बारे में अधिक जानकारी के लिए, XML प्रारूप और फ़ाइल नाम एक्सटेंशन खोलें देखें। नीचे अन्य लाभ दिए गए हैं.

यह सब बढ़िया है, लेकिन क्या होगा यदि आपके पास बिना स्कीमा के XML डेटा है? यह किस पर निर्भर करता है कार्यालय कार्यक्रमआप उपयोग करते हैं। उदाहरण के लिए, जब आप Excel में स्कीमा के बिना XML फ़ाइल खोलते हैं, तो यह मान लिया जाता है कि स्कीमा मौजूद है और आपको डेटा को XML तालिका में लोड करने की अनुमति देता है। आप डेटा को सॉर्ट करने, फ़िल्टर करने और गणना करने के लिए XML सूचियों और तालिकाओं का उपयोग कर सकते हैं।

Office में XML सुविधाएँ सक्षम करें

डिफ़ॉल्ट रूप से, डेवलपर टैब दिखाई नहीं देता है. Office में XML कमांड का उपयोग करने के लिए इसे रिबन में जोड़ा जाना चाहिए।

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

हम हमेशा की तरह, सिद्धांत से शुरुआत करेंगे, आइए देखें कि यह किस प्रकार की भाषा है, यह अच्छी क्यों है, इसका उपयोग कैसे करना है और इसका उपयोग कहां किया जाता है।

एक्सएमएल भाषा परिभाषा

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

जैसा कि आप जानते हैं, बहुत सारी मार्कअप भाषाएँ हैं, उदाहरण के लिए, HTML भाषा, लेकिन वे सभी, किसी न किसी तरह, प्रोसेसर पर निर्भर करती हैं, उदाहरण के लिए, वही HTML, जिसका कोड ब्राउज़र पार्स करता है, मानकीकृत है और एक्स्टेंसिबल नहीं है, वहां स्पष्ट टैग हैं, सिंटैक्स का उल्लंघन नहीं किया जा सकता है, और एक्सएमएल में आप अपने स्वयं के टैग बना सकते हैं, यानी। आपका मार्कअप. HTML और XML के बीच मुख्य अंतर यह है कि html केवल डेटा प्रदर्शित करने के लिए मार्कअप का वर्णन करता है, और xml एक अमूर्त डेटा संरचना है जिसे आपकी इच्छानुसार और कहीं भी संसाधित और प्रदर्शित किया जा सकता है, और इसलिए इन भाषाओं की तुलना करने की कोई आवश्यकता नहीं है, उनके पास है बिल्कुल अलग उद्देश्य.

जैसा कि ऊपर उल्लेख किया गया है, एक्सएमएल एक बहुत ही सामान्य और सार्वभौमिक भाषा है, जिसके माध्यम से लगभग सभी एप्लिकेशन, दोनों वेब और सिर्फ कंप्यूटर के लिए, सूचनाओं के आदान-प्रदान के रूप में इसका उपयोग करते हैं, क्योंकि इसकी मदद से आप एप्लिकेशन के बीच डेटा का आदान-प्रदान बहुत आसानी से कर सकते हैं या सेवाएँ जो विभिन्न भाषाओं में भी लिखी गई हैं। इस संबंध में, प्रत्येक नौसिखिए प्रोग्रामर जो किसी भी प्रोग्रामिंग में शामिल है, उसे XML की समझ होनी चाहिए। यदि आप एक वेब मास्टर बनना चाहते हैं, तो आपको बस XML आना चाहिए, और हम पहले ही चर्चा कर चुके हैं कि WEB मास्टर कैसे बनें और इसके लिए आपको क्या जानने की आवश्यकता है।

उदाहरण के लिए, मुझे एक बार एक निश्चित सेवा लिखने का काम सौंपा गया था, जिसे अनुरोध पर एक्सएमएल फॉर्म में डेटा वापस करना चाहिए, यानी। एप्लिकेशन के सर्वर भाग का एक प्रकार का विकास, और मुझे नहीं पता था कि इस डेटा को संसाधित करने वाले क्लाइंट को क्या लिखा गया था, और मैंने एक सेवा लिखी जो डेटा को xml फॉर्म में लौटाती थी और बस, एप्लिकेशन ने पूरी तरह से काम किया . और यह सिर्फ एक उदाहरण है जिससे मुझे निपटना था, लेकिन अब कल्पना करें कि कितने अलग-अलग संगठन सहयोग करते हैं और ईमानदारी से सॉफ्टवेयर विकसित करते हैं और डेटा का आदान-प्रदान करते हैं, और मुझे आश्चर्य नहीं होगा कि यह डेटा एक्सएमएल फॉर्म में होगा।

उदाहरण के लिए, मुझे एक बार एक निश्चित सेवा लिखने का कार्य सौंपा गया था, जिसे अनुरोध पर एक्सएमएल फॉर्म में डेटा वापस करना चाहिए, यानी। एप्लिकेशन के सर्वर भाग का एक प्रकार का विकास, और मुझे नहीं पता था कि इस डेटा को संसाधित करने वाले क्लाइंट ने क्या लिखा था, और मैंने एक सेवा लिखी जो डेटा को xml फॉर्म में लौटाती थी और बस, एप्लिकेशन ने पूरी तरह से काम किया . और यह सिर्फ एक उदाहरण है जिससे मुझे निपटना था, लेकिन अब कल्पना करें कि कितने अलग-अलग संगठन सहयोग करते हैं और ईमानदारी से सॉफ्टवेयर विकसित करते हैं और डेटा का आदान-प्रदान करते हैं, और मुझे आश्चर्य नहीं होगा कि यह डेटा एक्सएमएल फॉर्म में होगा।

साथ ही, इस डेटा को बेहतर ढंग से प्रस्तुत करने और सर्वर और एप्लिकेशन के क्लाइंट भाग के बीच इसका आदान-प्रदान करने के लिए मुझे एक बार MS SQL 2008 डेटाबेस में xml डेटा संग्रहीत करना पड़ा था, हमने लेख में इस पर चर्चा की - Transact-sql - xml के साथ काम करना .

XML भाषा अपने आप में बहुत सरल है, और इसमें भ्रमित होना असंभव है, सभी जटिलताएँ XML के अन्य अनुप्रयोगों, प्रौद्योगिकियों के साथ प्रसंस्करण और इंटरैक्शन में उत्पन्न होती हैं; xml को घेरने वाली हर चीज़, जहाँ आप आसानी से भ्रमित हो सकते हैं।

आज हम केवल XML की मूल बातें के बारे में बात कर रहे हैं, और हम इस भाषा के साथ प्रसंस्करण और बातचीत के लिए प्रौद्योगिकियों पर ध्यान केंद्रित नहीं करेंगे, क्योंकि यह सच है, बहुत बड़ी सामग्री है, लेकिन मुझे लगता है कि भविष्य में हम संबंधित प्रौद्योगिकियों से परिचित होते रहेंगे .

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

एक्सएमएल टैग

XML भाषा टैग का उपयोग करती है ( टैग केस संवेदी होते हैं), लेकिन HTML के समान टैग नहीं, बल्कि वे टैग जो आप स्वयं लेकर आते हैं, लेकिन xml दस्तावेज़ में भी एक स्पष्ट संरचना होती है, अर्थात। एक उद्घाटन टैग और एक समापन टैग है, नेस्टेड टैग हैं और निश्चित रूप से, ऐसे मान हैं जो इन टैग में स्थित हैं। दूसरे शब्दों में, बुनियादी एक्सएमएल ज्ञान के लिए आपको बस इन नियमों का पालन करना होगा। साथ में, उद्घाटन, समापन टैग और मान को एक तत्व कहा जाता है, और संपूर्ण xml दस्तावेज़ में सटीक रूप से ऐसे तत्व होते हैं जो एक साथ मिलकर एक डेटा संरचना बनाते हैं। एक xml दस्तावेज़ में केवल एक मूल तत्व हो सकता है, इसे याद रखें, क्योंकि यदि आप दो मूल तत्व लिखते हैं, तो यह एक त्रुटि होगी।

और अब xml मार्कअप का उदाहरण देने का समय आ गया है, और अभी पहला उदाहरण सिंटैक्स के लिए है:

<Начало элемента> <Начало вложенного элемента>नेस्टेड तत्व मान

जैसा कि आप देख सकते हैं, सब कुछ काफी सरल है, और ऐसे बहुत से तत्व एक-दूसरे के भीतर निहित हो सकते हैं।

आइए अब एक वास्तविक xml दस्तावेज़ का उदाहरण दें:

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

पुस्तक 1 इवान बस 1 बुक करें पुस्तक 2 सेर्गेई बस 2 बुक करें पुस्तक 3 उपन्यास बस 3 बुक करें

जहां पहली पंक्ति यह घोषणा है कि यह एक XML दस्तावेज़ है और इसे UTF-8 एन्कोडिंग में पढ़ा जाना चाहिए।

प्रसंस्करण के बिना, यह डेटा, उदाहरण के लिए, ब्राउज़र में दिखेगा ( मोज़िला फ़ायरफ़ॉक्स) निम्नलिखित नुसार:

मुझे आशा है कि आप समझ गए होंगे कि यहां कैटलॉग मूल तत्व है, जिसमें पुस्तक तत्व शामिल हैं, जिसमें बदले में नाम, लेखक और टिप्पणी तत्व शामिल हैं, और उदाहरण के लिए, मैंने कैटलॉग तत्व और पुस्तक तत्व के लिए कई विशेषताएं भी निर्धारित की हैं .

बुनियादी बातों के लिए, मुझे लगता है कि यह पर्याप्त है, क्योंकि अगर हम XML और इस भाषा से जुड़ी सभी तकनीकों में गहराई से उतरें, तो यह लेख कभी खत्म नहीं होगा। तो आज के लिए बस इतना ही. अलविदा!

XML को डेटा का वर्णन करने के लिए इस दृष्टि से बनाया गया था कि डेटा क्या दर्शाता है।

HTML को डेटा प्रदर्शित करने के लिए बनाया गया था, यह ध्यान में रखते हुए कि प्रदर्शित किया जा रहा डेटा कैसा दिखता है।

एक्सएमएल क्या है?

  • XML का मतलब है एक्स्टेंसिबल मार्कअप लैंग्वेज
  • एक्सएमएल है पाठ के प्रस्तुतिकरण के लिए प्रयुक्त भाषा, HTML के समान
  • XML के लिए बनाया गया था डेटा विवरण
  • XML टैग पूर्वनिर्धारित नहीं हैं. तुम कर सकते हो अपने टैग का उपयोग करें
  • एक्सएमएल का उपयोग करता है दस्तावेज़ प्रकार परिभाषा (डीटीडी)या एक्सएमएल स्कीमाडेटा का वर्णन करने के लिए
  • एक्सएमएल W3C द्वारा अनुशंसित

XML और HTML के बीच मुख्य अंतर

XML को डेटा ट्रांसफर के लिए डिज़ाइन किया गया था।

XML HTML का प्रतिस्थापन नहीं है.

XML और HTML को विभिन्न उद्देश्यों के लिए विकसित किया गया था:

  • XML डेटा का वर्णन करने के लिए बनाया गया था और यह इस बात पर केंद्रित है कि कौन सा डेटा स्थानांतरित किया जा रहा है
  • HTML को डेटा डिस्प्ले पर ध्यान केंद्रित करते हुए डेटा डिस्प्ले के लिए डिज़ाइन किया गया था
  • इस प्रकार, HTML जानकारी प्रदर्शित करने से अधिक चिंतित है, जबकि XML जानकारी का वर्णन करने से अधिक चिंतित है।

एक्सएमएल कुछ नहीं करता

XML को कुछ भी करने के लिए डिज़ाइन नहीं किया गया था।

इसे समझना आसान नहीं होगा, लेकिन XML कुछ नहीं करता. यह मार्कअप भाषा सूचना की संरचना, भंडारण और संचारण के लिए बनाई गई थी। निम्नलिखित उदाहरण एंटोन इरे का एक नोट है, जिसे XML में दर्शाया गया है:

ईरा

एंटोन

अनुस्मारक

इस सप्ताह की बैठक के बारे में मत भूलना!

जैसा कि आप देख सकते हैं, XML बहुत संक्षिप्त है।

टिप्पणी ( ) में एक हेडर होता है ( ) और सामग्री ( ) पत्र. यह प्रेषक (टैग) को इंगित करता है - "किससे पत्र") और प्राप्तकर्ता (टैग)। - "किसके लिए")। लेकिन यह पत्र कुछ नहीं करता. यह टैग में लिपटी शुद्ध जानकारी है। इस जानकारी को भेजने, प्राप्त करने और प्रदर्शित करने के लिए, किसी को एक प्रोग्राम लिखना होगा।

XML एक निःशुल्क एक्स्टेंसिबल मार्कअप भाषा है

XML टैग पूर्वनिर्धारित नहीं हैं. आप अपने स्वयं के टैग दर्ज कर सकते हैं.

HTML में टैग और दस्तावेज़ संरचना पूर्वनिर्धारित हैं। HTML दस्तावेज़ का निर्माता केवल मानकों द्वारा परिभाषित टैग का उपयोग कर सकता है।

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

XML HTML का पूरक है

XML HTML का प्रतिस्थापन नहीं है.

यह समझना महत्वपूर्ण है कि XML HTML का प्रतिस्थापन नहीं है। भविष्य में, वेब डेवलपर डेटा का वर्णन करने के लिए XML का उपयोग करेंगे, जबकि HTML का उपयोग उस डेटा को प्रारूपित करने और प्रदर्शित करने के लिए किया जाएगा।

XML की मेरी सर्वोत्तम परिभाषा यह है: XML एक क्रॉस-प्लेटफ़ॉर्म, सॉफ़्टवेयर- और हार्डवेयर-स्वतंत्र सूचना स्थानांतरण उपकरण है।

टिप्पणी:क्रॉस-प्लेटफ़ॉर्म - किसी भी ऑपरेटिंग सिस्टम और किसी भी हार्डवेयर के लिए उपयुक्त।

यदि आप जानते हैं तो अलग-अलग हैं ऑपरेटिंग सिस्टम, परिचित विंडोज़ को छोड़कर। ये लिनक्स ओएस, मैक और अन्य हैं।

जहां तक ​​हार्डवेयर का सवाल है, हम निम्नलिखित कह सकते हैं: ये नियमित पीसी, लैपटॉप, पीडीए आदि हो सकते हैं।

वेब विकास के भविष्य में XML

XML का उपयोग हर जगह किया जाएगा.

हमने XML की शुरुआत से ही उसका विकास देखा है। यह देखना आश्चर्यजनक था कि XML मानक कितनी तेजी से विकसित हुआ और कितनी तेजी से बड़ी संख्या में विक्रेता विकसित हुए सॉफ़्टवेयरइस मानक को स्वीकार किया। हमारा दृढ़ विश्वास है कि एक्सएमएल भविष्य के इंटरनेट का उतना ही महत्वपूर्ण घटक होगा जितना एचटीएमएल, जो इंटरनेट की नींव है, और एक्सएमएल सभी डेटा हेरफेर और संचार के लिए सबसे आम उपकरण होगा।

लुसिंडा डाइक्स, एड टिटेल

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

वैध बनाम अच्छी तरह से तैयार किया गया XML दस्तावेज़

XML में, एक वैध दस्तावेज़ को अपने DTD (दस्तावेज़ प्रकार की परिभाषा) या स्कीमा में नियमों का पालन करना चाहिए, जो परिभाषित करता है कि दस्तावेज़ में कौन से तत्व दिखाई दे सकते हैं और तत्व एक दूसरे के भीतर कैसे फिट हो सकते हैं। यदि कोई दस्तावेज़ ठीक से नहीं बना है, तो वह XML दुनिया में बहुत दूर तक नहीं पहुँच पाता है, इसलिए XML दस्तावेज़ बनाते समय आपको कुछ बहुत ही सरल नियमों का पालन करना होगा। ए अच्छी तरह से तैयार किया गया दस्तावेज़निम्नलिखित घटक होने चाहिए:

    सभी आरंभ और अंत टैग समान हैं. दूसरे शब्दों में, एक ही स्थिति में खुलने और बंद होने वाले हिस्सों में हमेशा एक ही नाम होना चाहिए: ... या ..., लेकिन नहीं ....

    उदाहरण के लिए, खाली तत्व विशेष XML सिंटैक्स का पालन करते हैं .

    सभी विशेषता मान एकल या दोहरे उद्धरण चिह्नों के भीतर होते हैं: आईडी='मान'>या .

दस्तावेज़ प्रकार परिभाषा या DTD, तत्व बनाने के नियम

मूल रूप से, आप संरचना और तर्क जोड़ने के लिए दस्तावेज़ प्रकार परिभाषा (डीटीडी) तैयार करते हैं और उसका उपयोग करते हैं, जिससे यह सुनिश्चित करना आसान हो जाता है कि आपके XML दस्तावेज़ में सभी आवश्यक कार्यक्षमताएं - सही क्रम में मौजूद हैं। आप DTD में कई नियम विकसित कर सकते हैं जो नियंत्रित करते हैं कि XML दस्तावेज़ में तत्वों का उपयोग कैसे किया जा सकता है।

प्रतीकअर्थउदाहरण
#पीसीडेटापार्स किया गया वर्ण डेटा या पाठ शामिल है
#PCDATA, तत्व-नामपाठ और अन्य तत्व शामिल हैं; #PCDATA हमेशा नियम में सबसे पहले आता हैबच्चा)*>
, (अल्पविराम)इसी क्रम में प्रयोग करना चाहिएबच्चा3)>
| (पाइप पैनल)दिए गए विकल्पों में से केवल एक तत्व का उपयोग करेंबच्चा3)>
तत्व-नाम (स्वयं)केवल एक ही नाम का प्रयोग करें
तत्व-नाम? बच्चा3?)>
तत्व-नाम +एक या अधिक बार प्रयोग करेंबच्चा3)>
तत्व-नाम*एक बार प्रयोग करें, कई बार या बिल्कुल भी प्रयोग न करेंबच्चा3)>
() समूहों को इंगित करता है; नेस्ट किया जा सकता हैया
बच्चा4)>

बुनियादी XML स्कीमा घोषणाएँ

एक XML स्कीमा दस्तावेज़ घोषणाओं की एक श्रृंखला से बनाया गया है जो बहुत कुछ प्रदान करता है विस्तार में जानकारीऔर सुनिश्चित करें कि XML दस्तावेज़ में मौजूद जानकारी सही रूप में है।

घोषणाउद्देश्यसिंटेक्स
योजनास्कीमा द्वारा उपयोग की जाने वाली भाषा निर्दिष्ट करती हैxmlns:xsd='//www.w3.org/2001/XMLSchema'>
तत्वएक तत्व को परिभाषित करता है
गुणएक विशेषता को परिभाषित करता हैप्रकार='प्रकार'>
जटिल प्रकारएक तत्व को परिभाषित करता है जिसमें अन्य तत्व होते हैं, विशेषताएँ होती हैं
या इसमें मिश्रित सामग्री (तत्व और पाठ) शामिल है
सरल प्रकारकिसी तत्व या विशेषता के लिए एक प्रतिबंधित डेटा प्रकार बनाता है
अर्थ
सीरियल लिंकरइंगित करता है कि गुण या तत्व एक जटिल प्रकार में हैं
क्रम में सूचीबद्ध होना चाहिए
चॉइस कंपोजिटरइंगित करता है कि जटिल प्रकार के किसी भी गुण या तत्व का उपयोग किया जा सकता है
सभी संगीतकारइंगित करता है कि जटिल प्रकार में किसी या सभी विशेषताओं या तत्वों का उपयोग किया जा सकता है
टिप्पणीइसमें दस्तावेज़ीकरण और/या ऐपइन्फो तत्व शामिल हैं जो प्रदान करते हैं
अतिरिक्त जानकारीऔर स्कीमा दस्तावेज़ पर टिप्पणियाँ
प्रलेखनएनोटेशन में पठनीय जानकारी प्रदान करता है
आवेदन की जानकारीभीतर मशीन-पठनीय जानकारी प्रदान करता है
अमूर्त

XML में सामान्य आरक्षित वर्ण

कुछ ऑब्जेक्ट XML में आंतरिक उपयोग के लिए आरक्षित हैं और उन्हें आपकी सामग्री में प्रतीकात्मक लिंक द्वारा प्रतिस्थापित किया जाना चाहिए। आमतौर पर उपयोग की जाने वाली ये पांच आंतरिक वस्तुएं पहले से ही XML के भाग के रूप में परिभाषित हैं और उपयोग के लिए तैयार हैं:

सीएसएस1?

एक्सएसएलटी 1.0?हाँहाँनहींनहीं
इंटरनेट एक्सप्लोरर 6.0 हाँ हाँ हाँ हाँ
मोज़िला 1.7.5 हाँ हाँ हाँ हाँ
मोज़िला फ़ायरफ़ॉक्स 1.0 हाँ हाँ हाँ हाँ
नेटस्केप नेविगेटर 7 हाँ हाँ हाँ हाँ
ओपेरा 7 हाँ हाँ हाँ नहीं