2011-05-02 24 views
23

जब हम एंड्रॉयड में एक एक्सएमएल आधारित लेआउट बारे में हम स्ट्रिंग "xmlns: एंड्रॉयड =" का उपयोग http://schemas.android.com/apk/res/android "हम एंड्रॉइड एक्सएमएल फ़ाइल में नेमस्पेस क्यों निर्दिष्ट करते हैं?

किताबें मैंने पढ़ा है से यह कहा गया है कि। यह एक नाम स्थान है, लेकिन हम यह क्यों प्रयोग करते हैं लिंक भी मौजूद नहीं है तो यह के उपयोग developer.android.com

xmlns से

उत्तर

18

क्या है?।? एंड्रॉयड

परिभाषित करता है एंड्रॉइड नेमस्पेस। यह विशेषता हमेशा "http://schemas.android.com/apk/res/android" पर सेट की जानी चाहिए।

xmlns: एंड्रॉइड पहचान के लिए है कि यह xml एंड्रॉइड के लिए उपयोग किया जाता है, अन्य फ़ंक्शन के लिए नहीं।

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

आप आगे उल्लेख कर सकते हैं http://en.wikipedia.org/wiki/XML_namespace

+0

मेरा मतलब है, यह नेमस्पेस क्या है * यह * परिभाषा * है, लेकिन यह * क्यों * पर स्पर्श नहीं करता है। इसे इस तरह रखो, अगर मैं नामस्थान को रिक्त स्थान पर रखता हूं, तो कुछ भी काम नहीं करता है। क्यूं कर? – bharal

1

यह सच है कि लिंक स्ट्रिंग हम प्रयोग कर रहे हैं है नामस्थान ... एक्सएमएल में घोषित करने के लिए, नामस्थान संघर्ष नामकरण से बचने के लिए उपयोग किया जाता है exists..But नहीं करता है । आप और अधिक स्पष्टीकरण http://www.w3schools.com/XML/xml_namespaces.asp

15

आप एक्सएमएल कुछ सामान्य पढ़ने के लिए चाहते हो सकता है के लिए इस लिंक का उल्लेख कर सकते। w3.org's XML documentation आपका सबसे अच्छा सर्वश्रेष्ठ हो सकता है।

सामान्य रूप से, नामस्थान का उपयोग किया जाता है ताकि आपके पास तत्व नामों के बीच टकराव न हो।

उदाहरण के लिए, अगर मैं एक XML स्कीमा उस तत्व <person> परिभाषित बनाया है और मेरे दोस्त एक अलग XML स्कीमा कि एक बिल्कुल अलग तत्व भी है कि <person> नाम दिया हुआ परिभाषित बनाया है, हम एक टकराव हो सकता था। अगर मैंने किसी XML फ़ाइल में दोनों तत्वों को संदर्भित करने का प्रयास किया है, तो यह बताने का कोई तरीका नहीं होगा कि कौन सा था। यदि हम नेमस्पेस का उपयोग करते हैं, हालांकि, मेरा नामस्थान: व्यक्ति मेरे मित्र नामस्थान से स्पष्ट रूप से अलग है: व्यक्ति।

नामस्थान को परिभाषित करने के लिए मानक एक यूआरआई का उपयोग करना है, यही कारण है कि आप एंड्रॉइड परिभाषा में देखते हैं। इसका मतलब यह नहीं है कि उस स्थान पर स्कीमा मौजूद है, इसका मतलब है कि उस नामस्थान के लिए यूआरआई अद्वितीय नाम है।

+0

मेरा मतलब है, यह नामस्थान क्या करता है इसकी परिभाषा है, लेकिन यह क्यों नहीं छूती है। इसे इस तरह रखो, अगर मैं नामस्थान को रिक्त स्थान पर रखता हूं, तो कुछ भी काम नहीं करता है। क्यूं कर? – bharal

1

जैसा कि आप अपने एक्सएमएल में एंड्रॉइड परिभाषित कुंजी का उल्लेख करने जा रहे हैं। इसलिए, संसाधनों नाम स्थान है यही कारण है कि हम हर एंड्रॉयड एक्सएमएल फ़ाइल में नाम स्थान को परिभाषित के साथ कुंजी की पहचान करेगा जैसे: - "xmlns:android="http://schemas.android.com/apk/res/android".

एक्सएमएल में

अब आप की तरह एंड्रॉयड टैग का उपयोग कर कुंजी उल्लेख कर सकते हैं: -

<FrameLayout 
     android:id="@+id/id" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/color"> 

एंड्रॉइड नेमस्पेस का उपयोग करके आप आईडी, layout_width और layout_height कुंजी ढूंढने में सक्षम हैं।

अधिक जानकारी के लिए कृपया here देखें।

संबंधित मुद्दे