दिलचस्प पोस्ट
आर में एक सशर्त (`if`) कथन के आधार पर एक डेटा फ्रेम में एक मान को बदलें क्या आपने सी ++ दुभाषियों (कंपाइलर नहीं) में से किसी का उपयोग किया है? अपाचे स्पर्क एसक्यूएलटेन्टेक्स बनाम हाइव कन्टेन्टेक्स में अंतर क्या है? स्ट्रींग से स्प्रिंग एमवीसी फॉर्म के लिए कस्टम ऑब्जेक्ट को परिवर्तित करना डेटा बाइंडिंग? निर्देशित आलेख में और रैखिक-समय के साथ, दो शिरोबिंदों के बीच के विभिन्न छोटे मार्गों की संख्या कैसे प्राप्त करें? एक्सएमएलएन = "…" प्राप्त किए बिना एक्सएमएल को किसी वस्तु को क्रमबद्ध कैसे करें? UISearchController द्वारा UISearchBar द्वारा प्रस्तुत किया गया तालिका मेजर दृश्य में बहुत दूर एनिमेटेड है जब सक्रिय मैं IntelliJ IDEA डिफ़ॉल्ट JDK कैसे बदल सकता हूँ? रुको जब तक फ़ाइल में अनलॉक नहीं किया जाता है। NET फ्लश () का उपयोग बंद होने से पहले () क्या मैं XmlSerializer को deserialization पर नामस्थान को अनदेखा कर सकता हूं? पुनरावर्ती कार्यों को समझना 2 डी मैट्रिक्स के लिए 3 डी मैट्रिक्स का नयी आकृति प्रदान करें मोंगॉज़ का उपयोग करते हुए मोजेडब में एक संग्रह के लिए समाप्ति का समय निर्धारित करना क्लिक करने पर WPF बदलें बटन पृष्ठभूमि छवि

XML अर्थ में "xmlns" क्या होता है?

मैंने एक XML फ़ाइल में निम्नलिखित पंक्ति देखी:

xmlns:android="http://schemas.android.com/apk/res/android" 

मैंने कई अन्य एक्सएमएल फाइलों में एक्सएमएलएनएन को भी देखा है, जो मैंने पूरे किए हैं

यह क्या है?

Solutions Collecting From Web of "XML अर्थ में "xmlns" क्या होता है?"

यह एक XML नामस्थान परिभाषित करता है

आपके उदाहरण में, नेमस्पेस उपसर्ग " एंड्रॉइड " है और नेमस्पेस यूआरआई " http://schemas.android.com/apk/res/android " है

दस्तावेज़ में, आप जैसे तत्व देखें: <android:foo />

नेमस्पेस उपसर्ग के बारे में सोचें कि वेरिएबल के रूप में पूर्ण नेमस्पेस यूआरआई के लिए संक्षिप्त नाम उपनाम के साथ। यह <http://schemas.android.com/apk/res/android:foo /> लिखने के बराबर है जिसका संबंध है "इसका मतलब है" जब एक XML पार्सर दस्तावेज़ को पढ़ता है

नोट: आप XML नाम दस्तावेज़ में नेमस्पेस उपसर्ग के बजाय वास्तव में पूर्ण नेमस्पेस यूआरआई का उपयोग नहीं कर सकते।

नामस्थानों पर इस ट्यूटोरियल को देखें : http://www.sitepoint.com/xml-namespaces-explained/

इसका मतलब XML नामस्थान है

असल में, एक्सएमएल में प्रत्येक तत्व (या विशेषता) नाम स्थान पर आधारित होता है, तत्व के नाम "योग्यता" का एक तरीका।

कल्पना करो कि आप और मैं दोनों अपने स्वयं के एक्सएमएल का आविष्कार करते हैं। आप लोगों का वर्णन करने के लिए XML का आविष्कार करते हैं, मैं शहरों का वर्णन करने के लिए मेरा आविष्कार करता हूं। हम दोनों में एक तत्व name । तुम्हारा व्यक्ति का नाम, और मेरा शहर-ओके को संदर्भित करता है, यह थोड़ा सा अनुचित है।

 <person> <name>Rob</name> <age>37</age> <homecity> <name>London</name> <lat>123.000</lat> <long>0.00</long> </homecity> </person> 

अगर हमारे दो एक्सएमएल एक ही दस्तावेज में जोड़ दिए जाते हैं, तो हम दोनों नामों को कैसे अलग बताएंगे? जैसा कि आप ऊपर देख सकते हैं, दो name तत्व हैं, लेकिन उनके दोनों अलग-अलग अर्थ हैं।

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

 <personxml:person xmlns:personxml="http://www.your.example.com/xml/person" xmlns:cityxml="http://www.my.example.com/xml/cities"> <personxml:name>Rob</personxml:name> <personxml:age>37</personxml:age> <cityxml:homecity> <cityxml:name>London</cityxml:name> <cityxml:lat>123.000</cityxml:lat> <cityxml:long>0.00</cityxml:long> </cityxml:homecity> </personxml:person> 

अब हम अपने एक्सएमएल को पूरी तरह से योग्य बना चुके हैं, इसमें प्रत्येक name तत्व का क्या मतलब है इस बारे में कोई अस्पष्टता नहीं है। personxml: से शुरू होने वाले सभी टैग personxml: आपके एक्सएमएल से जुड़े टैग हैं, जो कि शहर के साथ शुरू होते हैं cityxml: मेरा है

नोट करने के लिए कुछ बिंदु हैं:

  • यदि आप किसी भी नामस्थान घोषणाओं को बाहर करते हैं, तो चीजों को डिफ़ॉल्ट नेमस्पेस में माना जाता है।

  • यदि आप पहचानकर्ता के बिना एक नेमस्पेस घोषित करते हैं, तो, xmlns="http://somenamespace" के बजाय xmlns:rob="somenamespace" , यह दस्तावेज़ के लिए डिफ़ॉल्ट नेमस्पेस निर्दिष्ट करता है।

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

  • उपसर्ग या तो कोई परिणाम नहीं है। केवल एक चीज यह है कि उपनाम का नेमस्पेस के रूप में परिभाषित किया गया है। कई उपसर्गों के साथ शुरू हुए कई टैग, जो सभी समान नाम स्थान पर मैप को समान मानते हैं।

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

     <personxml:person xmlns:personxml="http://example.com/same/url" xmlns:mycityxml="http://example.com/same/url" /> 
  • गुण योग्य हो सकते हैं लेकिन आम तौर पर नहीं। तत्वों के विपरीत (नीचे देखें) वे उस तत्व से अपनी नाम स्थान का भी उत्तराधिकारी नहीं होते हैं।

इसके अलावा, तत्व नामस्थान मूल तत्व से विरासत में मिला है। दूसरे शब्दों में मैं ऊपर एक्सएमएल को समान रूप से लिखा हो सकता था

 <person xmlns="http://www.your.example.com/xml/person"> <name>Rob</name> <age>37</age> <homecity xmlns="http://www.my.example.com/xml/cities"> <name>London</name> <lat>123.000</lat> <long>0.00</long> </homecity> </person> 

xmlns – xml नाम स्थान यह तत्व नाम के संघर्षों से बचने के लिए सिर्फ एक तरीका है उदाहरण के लिए:

 <config xmlns:rnc="URI1" xmlns:bsc="URI2"> <rnc:node> <rnc:rncId>5</rnc:rncId> </rnc:node> <bsc:node> <bsc:cId>5</bsc:cId> </bsc:node> </config> 

एक XML फ़ाइल में दो अलग node तत्व नामस्थानों के बिना इस फ़ाइल को मान्य नहीं होगा।

मुझे लगता है कि सबसे बड़ा भ्रम यह है कि XML नामस्थान किसी भी प्रकार के यूआरएल की तरफ इशारा कर रहा है जिसमें कोई सूचना नहीं है लेकिन सच्चाई यह है कि वह व्यक्ति जो नाम स्थान के नीचे आविष्कार किया था:

 xmlns:android="http://schemas.android.com/apk/res/android" 

यह भी इस तरह से कह सकता है:

 xmlns:android="asjkl;fhgaslifujhaslkfjhliuqwhrqwjlrknqwljk.rho;il" 

यह सिर्फ एक अद्वितीय पहचानकर्ता है हालांकि यह स्थापित किया गया है कि आपको उस URL को रखा जाना चाहिए जो अद्वितीय है और संभवतः उस नामस्थान में उपयोग किए गए टैग / विशेषताओं के विनिर्देश को इंगित कर सकता है। यह यद्यपि आवश्यक नहीं है

यह अद्वितीय क्यों होना चाहिए? क्योंकि नामस्थान का उद्देश्य उन्हें अनूठा बनाना है, इसलिए आपके नामस्थान से पृष्ठभूमि नामक विशेषता को अन्य नाम स्थान से पृष्ठभूमि में अलग किया जा सकता है।

उस अद्वितीयता के कारण आपको चिंता करने की ज़रूरत नहीं है कि यदि आप अपना कस्टम विशेषता बनाते हैं तो आपको नाम टक्कर होनी चाहिए।

आपके पास नाम रिक्त स्थान है ताकि आप दुनिया भर में अद्वितीय तत्व हो सकें। हालांकि, 99% समय यह वास्तव में कोई फर्क नहीं पड़ता, लेकिन जब आप इसे सिमेंटिक वेब के परिप्रेक्ष्य में रखते हैं, तो यह महत्वपूर्ण बनना शुरू हो जाता है।

उदाहरण के लिए, आप उचित xmlns का उपयोग करके विभिन्न योजनाओं के एक XML मैश-अप बना सकते हैं। उदाहरण के लिए, vCard , आदि के साथ किसी दोस्त के दोस्त को मैश करें।

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

एक्सएमएल में नाम का विरोध आसानी से एक नाम उपसर्ग का उपयोग करके बचा जा सकता है। एक्सएमएल में उपसर्ग का उपयोग करते समय, उपसर्ग के लिए एक नेमस्पेस परिभाषित किया जाना चाहिए

नाम स्थान को एक तत्व के प्रारंभ टैग में एक xmlns विशेषता से परिभाषित किया जा सकता है। नामस्थान घोषणा में निम्न वाक्य रचना है xmlns: उपसर्ग = "यूआरआई"