एक्सएमएल में "xmlns" का क्या अर्थ है?




xml-namespaces (4)

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

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

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

यह क्या है?


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>

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


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

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


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

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

इसे इस तरह भी बुला सकता है:

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

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

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

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


यह एक एक्सएमएल नेमस्पेस परिभाषित करता है।

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

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

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

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

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





xml-namespaces