"ये कैसा चल रहा है?"

"शानदार। शिकायत नहीं कर सकता। आज बिलाबो ने मुझे जावास्क्रिप्ट के बारे में बताया। सब कुछ नहीं, बेशक, लेकिन थोड़ा बहुत। बेशक, मैंने अभी भी जेएस में कुछ भी नहीं लिखा है, लेकिन मुझे नहीं लगता कि यह होगा कठिन।"

"और ऐली ने मुझे JSON क्रमांकन के बारे में बताया। और आपने जैक्सन ढांचे के बारे में बताया और एनोटेशन का उपयोग करके 'पॉलीमॉर्फिक डीरियलाइज़ेशन' कैसे स्थापित किया जाए।"

"कोई रास्ता नहीं! तुम अब स्मार्ट हो, अमीगो! एक असली स्टड!"

"और फिर कुछ!"

"ठीक है। चलो काम पर लग जाते हैं। आज हमारे पास एक नया, दिलचस्प विषय है: एक्सएमएल। "

XML, XML में क्रमांकन - 1

"XML डेटा का प्रतिनिधित्व करने के लिए एक मानक है जिसे मनुष्यों द्वारा आसानी से पढ़ा जा सकता है - और कार्यक्रमों द्वारा और भी आसानी से। यहाँ एक उदाहरण XML फ़ाइल है:"

एक्सएमएल
<data>
<owner first="Adam" last="Shelton">
<address>London</address>
</owner>
<cat name="Missy" age="15"/>
</data>

"XML की नींव टैग है। एक टैग कोण ब्रैकेट (अधिक से अधिक और संकेतों से कम) में एक शब्द है। उद्घाटन और समापन टैग हैं। प्रत्येक उद्घाटन टैग में बिल्कुल एक संबंधित समापन टैग होता है। उद्घाटन टैग में विशेषताएँ हो सकती हैं। "

"टैग को एक टैग के अंदर नेस्ट किया जा सकता है, जिससे एक एलीमेंट ट्री बनाया जा सकता है। शीर्ष-स्तरीय टैग को रूट कहा जाता है: इसमें चाइल्ड टैग होते हैं, जिनके अपने चाइल्ड टैग होते हैं।"

"यहां कुछ उदाहरण दिए गए हैं:"

उपनाम विवरण
< डेटा > डेटा टैग खोलना
</ डेटा > डेटा टैग बंद करना
<बिल्ली का  नाम = " मिस्सी " उम्र = " 15 "> विशेषताओं के साथ एक टैग। विशेषता मान उद्धरणों में लिपटे हुए हैं
<डेटा>
<मालिक>
<बिल्ली का नाम = "मिस्सी" /> <
/मालिक> </
डेटा>
नेस्टेड टैग।
< बिल्ली का नाम = "मिस्सी" उम्र = "15"  /> एक स्व-समापन टैग।
ऐसे टैग्स को क्लोजिंग टैग्स की आवश्यकता नहीं होती है।
और उनके पास चाइल्ड टैग नहीं हो सकते।
<जानकारी>
किसी भी तरह की जानकारी यहां जा सकती है
</ info>
एक टैग में टेक्स्ट डेटा हो सकता है
<जानकारी>
किसी भी प्रकार की
<डेटा xxx = "yyy"> <
/डेटा>
जानकारी
<डेटा 2xxx = "yyy"/>
यहां जा सकते हैं
</ जानकारी>
एक टैग में अन्य टैग के साथ बीच-बीच में पाठ डेटा हो सकता है।

"यह आसान लग रहा है। किस प्रकार के टैग हैं?"

"किसी भी तरह का। कोई आरक्षित टैग नहीं है। एक्सएमएल किसी भी डेटा का वर्णन करने के लिए एक भाषा है। लोग टैग के साथ आते हैं जो उनकी जरूरतों को पूरा करते हैं और उनका उपयोग करने के तरीके पर सहमत होते हैं।"

"अनिवार्य रूप से, एक्सएमएल डेटा को एक तत्व पेड़ के रूप में लिखने का एक तरीका है जिसे कंप्यूटर समझ सकता है।"

"मुझे लगता है कि मैं अब समझ गया। वैसे, मेरा एक सवाल है।"

"JSON का उपयोग किसी ब्राउज़र से सर्वर पर डेटा भेजने के लिए किया जाता है, लेकिन XML का उपयोग कहाँ किया जाता है?"

"उसी स्थान पर जहाँ JSON का उपयोग किया जाता है: डेटा संग्रहीत करने और भेजने के लिए।"

"ठीक है, चलो जारी रखें।"

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

"यह सुनिश्चित करने के लिए कि टैग अद्वितीय हैं, उपसर्गों का आविष्कार किया गया था। वे इस तरह दिखते हैं:"

टैग विवरण
< पशु :बिल्ली> पशु उपसर्ग के साथ एक बिल्ली टैग
< जानवर : बिल्ली>
</ जानवर: बिल्ली>
< चिड़ियाघर : बिल्ली>
</ चिड़ियाघर : बिल्ली>
विभिन्न उपसर्गों के साथ दो कैट टैग।
< जानवर : बिल्ली  चिड़ियाघर : नाम = "एमएक्स"> पशु उपसर्ग के साथ एक बिल्ली टैग । चिड़ियाघर उपसर्ग के साथ एक नाम विशेषता ।

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

"वैसे, क्या आपको याद है कि जावा में प्रत्येक वर्ग का एक छोटा नाम और एक लंबा अनूठा नाम होता है जिसमें पैकेज का नाम शामिल होता है, जिसे पैकेज आयात करते समय भी निर्दिष्ट किया जाता है?"

"हां।"

"ठीक है, उपसर्गों का एक अनूठा लंबा नाम भी होता है, और यह आयात किए जाने पर भी निर्दिष्ट होता है: "

उदाहरण
< डेटा  xmlns: साबुन = "http://cxf.apache.org/bindings/soap" >
 < साबुन : आइटम> 
< साबुन : जानकारी /> 
</ साबुन : आइटम> 
</ डेटा >

"' एक्सएमएल एनएस : साबुन' का अर्थ है ' एक्सएमएल - एन एमे एस पेस सोप'"

"आप उन टैग्स का अद्वितीय नाम भी सेट कर सकते हैं जिनमें कोई उपसर्ग नहीं है: "

उदाहरण
<डेटा xmlns = "http://www.springframework.org/schema/beans" 
xmlns: साबुन = "http://cxf.apache.org/bindings/soap" 
xmlns: कार्य = "http://www.springframework .org/schema/task" > 
< साबुन :आइटम> 
< साबुन :जानकारी/> 
< कार्य :जानकारी/> 
</ साबुन :आइटम> < 
/डेटा >

"'xmlns=…' खाली उपसर्ग के लिए नामस्थान सेट करता है। दूसरे शब्दों में, यह बिना किसी उपसर्ग के टैग के लिए नामस्थान सेट करता है, जैसे उपरोक्त उदाहरण में डेटा।"

"आप एक दस्तावेज़ में जितने चाहें उतने नामस्थान रख सकते हैं, लेकिन प्रत्येक का एक अद्वितीय नाम होना चाहिए।"

"मैं समझ गया। इन नामस्थानों में ऐसे अजीब अनोखे नाम क्यों हैं?"

"वे आम तौर पर एक यूआरएल का संकेत देते हैं जो एक दस्तावेज़ को इंगित करता है जो नामस्थान और/या उसके एक्सएमएल टैग का वर्णन करता है।"

"आपने आज मुझ पर बहुत सारी जानकारी फेंक दी। और क्या है?"

"अभी भी थोड़ा और है।"

"सबसे पहले, एक्सएमएल में हेडर है। यह एक विशेष पंक्ति है जो एक्सएमएल संस्करण और फ़ाइल एन्कोडिंग का वर्णन करती है। "यह आमतौर पर ऐसा दिखता है:"

"यह आमतौर पर ऐसा दिखता है:"

उदाहरण
<?xml  संस्करण = "1.0"  एन्कोडिंग = "UTF-8"?>
<डेटा xmlns: साबुन = "http://cxf.apache.org/bindings/soap">
<साबुन: आइटम>
<साबुन:जानकारी/>
</साबुन:आइटम>
</डेटा>

"आप XML में टिप्पणियां भी जोड़ सकते हैं। टिप्पणी शुरू करने के लिए, '<!--' का उपयोग करें। इसे समाप्त करने के लिए, '-->' का उपयोग करें।"

उदाहरण
<?xml version = "1.0" encoding = "UTF-8"?>
<data xmlns:soap = "http://cxf.apache.org/bindings/soap">
<soap:item>
<!-- <soap:info/> -->
</soap:item>
<!-- This is also a comment  -->
</data>

"मैं अब तक समझता हूँ।"

"कुछ प्रतीकों (< > "&) का एक्सएमएल में विशेष अर्थ है, इसलिए उन्हें कहीं और इस्तेमाल नहीं किया जा सकता है। हम इस प्रतिबंध को बचने के अनुक्रम के साथ प्राप्त कर सकते हैं- वर्णों का एक सेट जो अन्य वर्णों/प्रतीकों का प्रतिनिधित्व करने के लिए उपयोग किया जाता है। उनमें से कुछ यहां हैं:"

बचने का क्रम प्रतीक जो इसे प्रतिस्थापित करता है
& और
" «
< <
> >
' '

"और यहाँ XML में एम्बेडेड कोड का एक उदाहरण है:"

जावा कोड एक्सएमएल में जावा कोड
if (a < b)
System.out.println("a is minimum");
<कोड>
अगर (ए  & लेफ्टिनेंट;  बी)
 System.out.println( " a न्यूनतम है " );
</कोड>

"उह... यह सुंदर नहीं लग रहा है।"

"आपको याद होगा कि जावा में कुछ वर्ण भी बच गए हैं? उदाहरण के लिए, "\"। और यह कि स्ट्रिंग को लिखते समय यह क्रम भी दो बार लिखा जाना चाहिए? तो यह एक सामान्य घटना है।

"ठीक है।"

"मेरे पास आज के लिए बस इतना ही है।"

"हुर्रे। मैं आखिरकार एक ब्रेक ले सकता हूं।"