এই লাইনটি xMLns কেন: অ্যান্ড্রয়েড = "http://schemas.android.com/apk/res/android" অবশ্যই XML ফাইলের বিন্যাসে প্রথম হওয়া উচিত?


উত্তর:


118

এক্সএমএলে, xMLns একটি নেমস্পেস ঘোষণা করে। আসলে, আপনি যখন করবেন:

<LinearLayout android:id>
</LinearLayout>

কল করার পরিবর্তে android:id, এক্সএমএলটি অনন্য হতে http://schemas.android.com/apk/res/android:id ব্যবহার করবে । সাধারণত এই পৃষ্ঠাটির অস্তিত্ব নেই (এটি একটি ইউআরআই, কোনও ইউআরএল নয়) তবে কখনও কখনও এটি ইউআরএল থাকে যা ব্যবহৃত নেমস্পেসটি ব্যাখ্যা করে।

নেমস্পেসটি জাভা অ্যাপ্লিকেশনটিতে প্যাকেজের নামের মতো ব্যবহার করে।

এখানে একটি ব্যাখ্যা।

ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (ইউআরআই)

একটি ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (ইউআরআই) এমন একটি অক্ষরের স্ট্রিং যা কোনও ইন্টারনেট রিসোর্স সনাক্ত করে।

সর্বাধিক সাধারণ ইউআরআই হ'ল ইউনিফর্ম রিসোর্স লোকেটার (ইউআরএল) যা কোনও ইন্টারনেট ডোমেন ঠিকানা সনাক্ত করে। আর একটি, ইউআরআই এর মতো সাধারণ ধরণের নয় ইউনিভার্সাল রিসোর্স নেম (ইউআরএন)।

আমাদের উদাহরণগুলিতে আমরা কেবল ইউআরএল ব্যবহার করব।


13
তারপরে আমরা ন্যায়বিচারের android:layout_widthপরিবর্তে কেন করব layout_width?
শাশ্বত

4
তাহলে কীভাবে আমরা "অ্যান্ড্রয়েড: লিনিয়ারলআউট" এর পরিবর্তে "লিনিয়ারলআউট" ব্যবহার করব?
অ্যান্ড্রয়েড বিকাশকারী

সম্ভবত কারণ লিনিয়ারলাইআউটটি মূল নেমস্পেসের একটি অংশ এবং অ্যান্ড্রয়েড: এক্সএক্সএক্স অ্যাট্রিবিউটস একটি সাব-স্পেসের অংশ (" স্কিমাস.অ্যান্ড্রয়েড. com/apk/res/android/android/ id" )
নাইট্রো জি 42

4
অবশ্যই এটি এই ইউআরএলটি
এনেছে

1
ড্যানিয়েলিমসিলার / স্টুডি / ইউআর_ভিএস_উরি থেকে : "একটি ইউআরএল হ'ল এক প্রকারের ইউআরআই So সুতরাং যদি কেউ আপনাকে বলে যে কোনও ইউআরএল ইউআরআই নয়, তবে সে ভুল But উড়ে যাওয়া সমস্ত কিছুই প্রজাপতি নয় a যে অংশটি একটি ইউআরআইকে ইউআরএল করে তোলে তা হ'ল "অ্যাক্সেস মেকানিজম" বা "নেটওয়ার্ক অবস্থান", যেমন http: /, ftp: //, ldap: //, টেলনেট: / /, ইত্যাদি
yonivav

37

xmlns:android=“http://schemas.android.com/apk/res/android”XML ফাইলের বিন্যাসে কেন প্রথম হতে হবে তা বোঝার জন্য আমরা উদাহরণ ব্যবহার করে উপাদানগুলি বুঝতে পারি

Sample::

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/container" >    
</FrameLayout>

ইউনিফর্ম রিসোর্স ইন্ডিকেটর (ইউআরআই) :

  • কম্পিউটিংয়ে, ইউনিফর্ম রিসোর্স আইডেন্টিফায়ার (ইউআরআই) হ'ল একটি উত্সের নাম সনাক্ত করতে ব্যবহৃত অক্ষরের একটি স্ট্রিং।
  • এই জাতীয় পরিচয় নির্দিষ্ট নির্দিষ্ট প্রোটোকল ব্যবহার করে কোনও নেটওয়ার্কের উপর বিশেষত ওয়ার্ল্ড ওয়াইড ওয়েবের মাধ্যমে উত্সের উপস্থাপনের সাথে মিথস্ক্রিয়াকে সক্ষম করে।

প্রাক্তন: http://schemas.android.com/apk/res/android:idএখানে ইউআরআই


এক্সএমএল নামস্থান :

  • এক্সএমএল নেমস্পেসগুলি এক্সএমএল ডকুমেন্টে স্বতন্ত্র নামযুক্ত উপাদান এবং বৈশিষ্ট্য সরবরাহ করার জন্য ব্যবহৃত হয়। xmlns:androidঅ্যান্ড্রয়েড নেমস্পেস বর্ণনা করে।
  • এটি এর মতো ব্যবহৃত হয় কারণ এটি সংকলন সময়ে ত্রুটিগুলি পরিচালনা করতে গুগলের একটি নকশা পছন্দ।
  • এছাড়াও ধরুন যে আমরা textviewঅ্যান্ড্রয়েডের তুলনায় আলাদা আলাদা বৈশিষ্ট্য সহ আমাদের নিজস্ব উইজেটটি লিখি textview, অ্যান্ড্রয়েড নেমস্পেস আমাদের কাস্টম textviewউইজেট এবং অ্যান্ড্রয়েড textviewউইজেটের মধ্যে পার্থক্য করতে সহায়তা করে

8
উপরের উত্তরগুলির তুলনায় এই উত্তরটি পড়ার পক্ষে সত্য যা "কেন?"
eRaisedToX

আপনি বলছিলেন, "এই জাতীয় পরিচয় নির্দিষ্ট কোনও প্রোটোকল ব্যবহার করে কোনও নেটওয়ার্কের মাধ্যমে উত্সের উপস্থাপনা, সাধারণত ওয়ার্ল্ড ওয়াইড ওয়েবের সাথে ইন্টারঅ্যাকশন সক্ষম করে Ex উদা: স্কিমাস.অ্যান্ড্রয়েড . com / apk / res / android : id এখানে ইউআরআই" - তবে যদি আমার কাছে ইন্টারনেট সংযোগ না থাকে তবে এই অ্যান্ড্রয়েড নামের স্থানটি কোনও নেটওয়ার্কের সংস্থানগুলির সাথে কীভাবে যোগাযোগ করবে?
কাভি

29

xMLns এক্সএমএল নেমস্পেসকে বোঝায়

এক্সএমএলে উপসর্গগুলি ব্যবহার করার সময়, উপসর্গের জন্য একটি তথাকথিত নেমস্পেস অবশ্যই সংজ্ঞায়িত করা উচিত। নেমস্পেসটি কোনও উপাদানের প্রারম্ভিক ট্যাগের xMLns বৈশিষ্ট্য দ্বারা সংজ্ঞায়িত করা হয়। নেমস্পেসের ঘোষণায় নিম্নলিখিত বাক্য গঠন রয়েছে। xmlns: উপসর্গ = "কোনো URI"।

দ্রষ্টব্য : নাম সন্ধানের জন্য ইউআরআই তথ্য অনুসন্ধানের জন্য পার্সার ব্যবহার করে না।

উদ্দেশ্য স্থানটি একটি অনন্য নাম দেওয়া। যাইহোক, প্রায়শই সংস্থাগুলি একটি ওয়েব পৃষ্ঠার নামস্পেসের তথ্য সম্বলিত পয়েন্টার হিসাবে নেমস্পেস ব্যবহার করে।


7

এটি কেবল এক্সএমএল নাম স্থানের ঘোষণা। নীচে তালিকাভুক্ত বৈশিষ্ট্যগুলি অ্যান্ড্রয়েডের অন্তর্গত যে নির্দিষ্ট করতে আমরা এই নাম স্থানটি ব্যবহার করি। সুতরাং তারা " অ্যান্ড্রয়েড: " দিয়ে শুরু করে

আপনি আসলে আপনার নিজস্ব কাস্টম বৈশিষ্ট্য তৈরি করতে পারেন। সুতরাং নামের দ্বন্দ্বগুলি রোধ করতে যেখানে 2 টি বৈশিষ্ট্য একই জিনিসকে দেওয়া হয়েছিল, তবে ভিন্নভাবে আচরণ করে আমরা এন্ড্রয়েড বৈশিষ্ট্যগুলি বোঝাতে এটি " অ্যান্ড্রয়েড: " উপসর্গ যুক্ত করি ।

সুতরাং, এই নামের স্থান ঘোষণাকে অবশ্যই আপনার এক্সএমএল ফাইলের মূল ভিউয়ের প্রারম্ভিক ট্যাগের মধ্যে অন্তর্ভুক্ত করা উচিত।


সহজ এবং পরিষ্কার। আমি অন্যান্য উত্তর সম্পর্কে জানি না তবে আপনার উত্তরটি আমার বিভ্রান্তির জন্য চৌম্বকের মতো কাজ করে এবং আমার ধারণাটি এখন পরিষ্কার।
স্ট্যাক ওভারফ্লো


3
  • এক্সএমএনএলএস অর্থ এক্সএমএল নেমস্পেস।
  • এটি এক্সএমএল এর নামকরণ বিরোধগুলি এড়ানোর জন্য তৈরি করা হয়েছে।
  • অন্য কোনও উপায়ে সংঘাত নামকরণ এড়াতে আমাদের প্রতিটি উপাদানকে একটি উপসর্গ সরবরাহ করতে হবে।
  • প্রতিটি এক্সএমএল ট্যাগে উপসর্গের পুনরাবৃত্তিমূলক ব্যবহার এড়াতে আমরা এক্সএমএল এর মূলটিতে xmlns ব্যবহার করি। অতএব আমাদের কাছে xmlns ট্যাগ রয়েছে: অ্যান্ড্রয়েড = " http://schemas.android.com/apk/res/android "
  • এখন অ্যান্ড্রয়েডের সহজ অর্থ হল আমরা এর কাছে " http://schemas.android.com/apk/res/android " নাম স্থানটি অর্পণ করছি।
  • এই নেমস্পেসটি কোনও ইউআরএল নয় বরং ইউআরআই হিসাবে পরিচিত ইউআরআই (সর্বজনীন সংস্থান নাম) যা ইউআরআইয়ের জায়গায় খুব কমই ব্যবহৃত হয়।
  • এই অ্যান্ড্রয়েডের কারণে এক্সএমএল ডকুমেন্টে অ্যান্ড্রয়েড সম্পর্কিত উপাদানগুলি সনাক্ত করতে দায়বদ্ধ যা অ্যান্ড্রয়েড হবে: এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্সএই নাম ছাড়া এই অ্যান্ড্রয়েড: এক্সএক্সএক্সএক্সএক্সএক্সএক্সএক্স

সাধারণ ব্যক্তির পদটি রাখার জন্য:

এক্সএমএলএনএস ছাড়াই: অ্যান্ড্রয়েড = " http://schemas.android.com/apk/res/android " অ্যান্ড্রয়েড সম্পর্কিত ট্যাগগুলি আমাদের লেআউটের এক্সএমএল ডকুমেন্টে স্বীকৃত হবে না।


2

এক্সএমএলে, উপাদানগুলির নামগুলি বিকাশকারী দ্বারা সংজ্ঞায়িত করা হয়। এটি বিভিন্ন এক্সএমএল অ্যাপ্লিকেশন থেকে এক্সএমএল নথিগুলিকে মেশানোর চেষ্টা করার সময় প্রায়শই দ্বন্দ্বের কারণ হয়। কোনও ব্যবহারকারী বা এক্সএমএল অ্যাপ্লিকেশন কীভাবে এই পার্থক্যগুলি পরিচালনা করতে পারে তা জানবে না। এক্সএমএলে নামের দ্বন্দ্ব সহজেই নামের উপসর্গ ব্যবহার করা এড়ানো যায়। এক্সএমএলে উপসর্গগুলি ব্যবহার করার সময়, উপসর্গের জন্য একটি নেমস্পেসটি অবশ্যই সংজ্ঞায়িত করা উচিত name নেমস্পেসটি কোনও এলিমেন্টের প্রারম্ভিক ট্যাগের একটি xMLns অ্যাট্রিবিউট দ্বারা সংজ্ঞায়িত করা যায় name নেমস্পেসের ঘোষণায় নিম্নলিখিত বাক্য গঠন রয়েছে। xmlns: উপসর্গ = "কোনো URI"।


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

এটি xMLns এর রূপ: অ্যান্ড্রয়েড = "@ + / আইডি" id এখন এটি উল্লেখ করার জন্য আমরা উদাহরণস্বরূপ ব্যবহার করি

android:layout_width="wrap_content"
android:text="Hello World!"

আরেকটি এক্সএমএলএনএস হ'ল

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

যা xMLns আকারে: অ্যাপ = "@ + / আইডি" এবং এর ব্যবহার নীচে দেওয়া হয়েছে

 app:layout_constraintBottom_toBottomOf="parent"
 app:layout_constraintLeft_toLeftOf="parent"

2

আমি মনে করি এটি নেমস্পেসের সাথে স্পষ্ট করে দিয়েছে, যেহেতু আমরা আমাদের নিজস্ব বৈশিষ্ট্য তৈরি করতে পারি এবং যদি ব্যবহারকারী নির্দিষ্ট করা বৈশিষ্ট্যটি অ্যান্ড্রয়েডের মতো হয় তবে এটি নামের জায়গার দ্বন্দ্ব এড়ায়।


2

xMLns: অ্যান্ড্রয়েড এটি অ্যান্ড্রয়েডে অ্যান্ড্রয়েড নেমস্পেসের সংজ্ঞা দেওয়ার জন্য ট্যাগ স্টার্ট। এটি অ্যান্ড্রয়েড গুগল বিকাশকারী দ্বারা সংজ্ঞায়িত স্ট্যান্ডার্ড কনভেনশন। আপনি যখন ডিফল্ট বা গ্রাহক এবং লেআউট ব্যবহার করছেন তখন অবশ্যই এই নেমস্পেসটি ব্যবহার করতে হবে।

অ্যান্ড্রয়েড নেমস্পেস সংজ্ঞা দেয়। এই বৈশিষ্ট্যটি সর্বদা " http://schemas.android.com/apk/res/android " এ সেট করা উচিত ।

থেকে <manifes>উপাদান ডকুমেন্টেশন


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

xmlns : হল এক্সএমএল নামের স্থান এবং URL: " http://schemas.android.com/apk/res/android " কিছুই নয়

এক্সএসডি যা [এক্সএমএল স্কিমা সংজ্ঞা]: যা এক্সএমএল ফাইলের জন্য নিয়ম সংজ্ঞায়িত করা হয়।

উদাহরণ:

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" 
android:layout_width="match_parent"
android:layout_height="match_parent">

<EditText
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_marginBottom="4dp"
   android:hint="User Name"
  />
</LinearLayout> 

আমাকে কী ধরনের বিধি সম্পর্কে ব্যাখ্যা করতে হবে ?

  1. উপরের এক্সএমএল ফাইলে আমরা ইতিমধ্যে আমাদের লেআউটটির জন্য লেআউট_উইথথকে এখনই সংজ্ঞায়িত করেছি যদি আপনি একই বৈশিষ্ট্যটি দ্বিতীয়বার সংজ্ঞায়িত করেন তবে আপনি ত্রুটি পাবেন।
  2. এডিট টেক্সট আছে তবে আপনি যদি অন্য এডিট টেক্সট যুক্ত করতে চান তবে কোনও সমস্যা নেই।

XML XSD এ জাতীয় ধরণের বিধিগুলি সংজ্ঞায়িত করা হয়: " http://schemas.android.com/apk/res/android "

কিছুটা দেরি হলেও আমি আশা করি এটি আপনাকে সহায়তা করবে।


0

ভিউ গ্রুপের মধ্যে যে বৈশিষ্ট্যগুলি এর মধ্যে হ্রাস পেয়েছে তা অ্যান্ড্রয়েড সম্পর্কিত কিনা তা নির্দিষ্ট করার জন্য এটি একটি এক্সএমএল নাম স্থান ঘোষণা।


দয়া করে এটি আরও ব্যাখ্যা করুন
প্রমোদ এস নিকম
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.