2016-09-11 20 views
8

एंड्रॉइड स्टूडियो AndroidManifest.xml और किसी भी गतिविधि xml को कैसे मान्य करता है? मैंने this पोस्ट और this पढ़ा है और पता है कि एंड्रॉइड मेनिफेस्ट के लिए वास्तविक स्कीमा नहीं है। लेकिन एंड्रॉइड स्टूडियो या किसी भी उपकरण जो AndroidManifest.xml को मान्य करता है जानता है, कौन से टैग और तत्व कानूनी हैं?AndroidManifest.xml एंड्रॉइड स्टूडियो में मान्य कैसे है?

+0

रिकर्सिवली प्रत्येक टैग की जांच, मैं कल्पना। https://developer.android.com/guide/topics/manifest/manifest-element.html –

+0

@ cricket_007 मैं समझता हूं कि यह सुनिश्चित करने के लिए कि टैग या तत्व सही है, उसे कुछ के खिलाफ जांच करनी है। दूसरे शब्दों में, यदि मैं <श्रेणी एंड्रॉइड: नाम ....><श्रेणी एंड्रॉइड: namesss ....> में बदलता हूं, तो यह कैसे पता चलता है कि यह गलत है – Kode

+0

मुझे लगता है कि मुझे एक बार XML स्रोत मिला (शायद नहीं, हालांकि)। श्रेणी टैग के लिए, केवल 'नाम' विशेषता मान्य है। https://developer.android.com/guide/topics/manifest/category-element.html –

उत्तर

2

सब कुछ https://android.googlesource.com पर पाया जा सकता है।

मेनिफेस्ट मॉडल .xsd फ़ाइल के रूप में नहीं लिखा गया है। इसके बजाय यह वस्तुओं के समूह के रूप में लिखा जाता है। पेड़ here

पाया जा सकता है आप Manifest से शुरू करते हैं तो आप देख सकते हैं, कि यह, Application, List<UsesPermission> के लिए संदर्भ है आदि Applicationandroid:name और android:label और List<Activity> और इतने पर करने के लिए संदर्भ होते हैं।

Activity वस्तु से एक नमूना:

@Attribute("name") 
@Required 
@Convert(PackageClassConverter.class) 
@ExtendClass("android.app.Activity") 
AndroidAttributeValue<PsiClass> getActivityClass(); 

आप देख सकते हैं इस तरह से है, एंड्रॉयड स्टूडियो जानता है कि, कि प्रकट अंदर activity टैग को एक नाम होना आवश्यक है। दो एनोटेशन उपयोग किया जाता है:

@Attribute("name") 
@Required 

उनमें से एक .xml टैग विशेषता का नाम है, और दूसरा एक को सूचित, कि यह विशेषता आवश्यक है।

टैग के नाम, कि प्रकट अंदर इस्तेमाल किया जा सकता पाया जा सकता है here

एक सहायक एंड्रॉयड स्टूडियो द्वारा इस्तेमाल किया प्रकट गुण प्राप्त करने के वर्ग पाया जा सकता है here

+0

यह वही है जो मैं ढूंढ रहा था। अनेक अनेक धन्यवाद – Kode

2

वहाँ एंड्रॉयड प्रकट

के लिए एक वास्तविक स्कीमा मुझे नहीं लगता कि यह सही है नहीं है। this answer के अनुसार:

स्कीमा xml फ़ाइल के रूप में मौजूद नहीं है। स्कीमा आपके कार्यक्रम का उपयोग करने वाले यूआई कक्षाओं पर निर्भर हैं।

हालांकि एक एक्सएमएल फ़ाइल में सीधे परिभाषित स्कीमा नहीं है, वैध टैग और विशेषताओं को कहीं और परिभाषित किया जा सकता है, जैसे जावा कोड जो एक एक्सएमएल लेआउट को पार करता है और फुलाता है।

+0

तो क्या आपका मतलब है कि एंड्रॉइड स्टूडियो कक्षाओं में दिखता है और तत्वों को निर्धारित करता है? – Kode

+0

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

+0

मैं देख रहा हूं कि आप क्या कह रहे हैं लेकिन क्या आप इसके बारे में निश्चित हैं या यह एक शिक्षित अनुमान है? – Kode

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