web-dev-qa-db-ja.com

なぜこの行xmlns:Android = "http://schemas.Android.com/apk/res/Android"がレイアウトxmlファイルの最初でなければならないのですか?

XMLレイアウトファイルでこの行が必要なのはなぜですか?

xmlns:Android="http://schemas.Android.com/apk/res/Android" 
125

XMLでは、xmlnsは名前空間を宣言します。実際、次の場合:

<LinearLayout Android:id>
</LinearLayout>

Android:idを呼び出す代わりに、xmlは http://schemas.Android.com/apk/res/Android:id を使用して一意にします。通常、このページは存在しません(URLではなくURIです)が、使用される名前空間を説明するURLである場合があります。

名前空間の用途は、Javaアプリケーションのパッケージ名とほぼ同じです。

ここ は説明です。

Uniform Resource Identifier(URI)

URI(Uniform Resource Identifier)は、インターネットリソースを識別する文字列です。

最も一般的なURIは、インターネットドメインアドレスを識別するUniform Resource Locator(URL)です。別の、あまり一般的ではないタイプのURIは、Universal Resource Name(URN)です。

この例では、URLのみを使用します。

108
NitroG42

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>

Uniform Resource Indicator(URI)

  • コンピューティングでは、Uniform Resource Identifier(URI)はリソースの名前を識別するために使用される文字列です。
  • このような識別により、特定のプロトコルを使用して、ネットワーク(通常はWorld Wide Web)を介したリソースの表現との対話が可能になります。

Ex:http://schemas.Android.com/apk/res/Android:idはここのURIです


XML名前空間

  • XML名前空間は、XMLドキュメントで一意に名前が付けられた要素と属性を提供するために使用されます。 xmlns:AndroidはAndroid名前空間を記述します。
  • これは、コンパイル時にエラーを処理するためにGoogleが設計上選択したものであるため、このように使用されます。
  • また、Android textviewとは異なる機能を備えた独自のtextviewウィジェットを作成し、Android名前空間はカスタムtextviewウィジェットとAndroid textviewウィジェットを区別するのに役立つとします
25
Devrath

xmlnsは XML名前空間 を参照します

XMLでプレフィックスを使用する場合、プレフィックスのいわゆる名前空間を定義する必要があります。名前空間は、要素の開始タグのxmlns属性によって定義されます。名前空間宣言の構文は次のとおりです。 xmlns:prefix = "URI"。

:ネームスペースURIは、情報を検索するためにパーサーによって使用されません。

目的は、名前空間に一意の名前を付けることです。ただし、多くの場合、企業はネームスペースをネームスペース情報を含むWebページへのポインタとして使用します。

23
Martyn

xmlns:AndroidAndroid名前空間を定義します。この属性は常に「http://schemas.Android.com/apk/res/Android」に設定する必要があります。

refer http://developer.Android.com/guide/topics/manifest/manifest-element.html

5
dinesh sharma

これは単なるXML名前空間宣言です。下記の属性がAndroidに属することを指定するために、この名前空間を使用します。したがって、「Android:」で始まります

実際に独自のカスタム属性を作成できます。したがって、2つの属性に同じ名前が付けられ、動作が異なるという名前の競合を防ぐために、プレフィックス「Android:」を追加して、これらがAndroid属性であることを示します。

したがって、この名前空間宣言は、XMLファイルのルートビューの開始タグに含める必要があります。

4
Harsh Dani

XMLでは、要素名は開発者が定義します。これにより、異なるXMLアプリケーションからのXMLドキュメントを混在させようとすると、しばしば競合が発生します。ユーザーまたはXMLアプリケーションは、これらの違いを処理する方法を知りません。名前プレフィックスを使用すると、XMLでの名前の競合を簡単に回避できます。 XMLでプレフィックスを使用する場合、プレフィックスの名前空間を定義する必要があります。名前空間は、要素の開始タグのxmlns属性によって定義できます。名前空間宣言の構文は次のとおりです。 xmlns:prefix = "URI"。

2
student
  • Xmlnsはxml名前空間を意味します。
  • Xmlの名前の競合を避けるために作成されます。
  • 他の方法で名前の競合を避けるために、各要素にプレフィックスを付ける必要があります。
  • 各xmlタグでプレフィックスが繰り返し使用されるのを避けるために、xmlのルートでxmlnsを使用します。したがって、タグxmlns:Android =” http://schemas.Android.com/apk/res/Android
  • ここでAndroidは、単に名前空間「 http://schemas.Android.com/apk/res/Android =」に。
  • この名前空間はURLではなく、URIの代わりにめったに使用されないURN(universal resource name)としても知られるURIです。
  • このため、Androidは、Android:xxxxxxxなどであるxmlドキュメント内のAndroid関連要素を識別する責任があります。この名前空間がないと、Android:xxxxxxxは認識されません。

素人の言葉を入れるには:

xmlns:Android =” http://schemas.Android.com/apk/res/Android ”なしAndroid関連タグは、レイアウトのxmlドキュメントで認識されません。

2
Swapnil

xmlns:Androidこれは、AndroidでAndroid名前空間を定義するための開始タグです。これは、Android google開発者によって定義された標準の規則です。デフォルトまたはカスタムレイアウトを使用している場合は、このネームスペースを使用する必要があります。

Android名前空間を定義します。この属性は常に「 http://schemas.Android.com/apk/res/Android 」に設定する必要があります。

<manifes>要素のドキュメント から。

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

これはxmlns:Android = "@ +/id"の形式です。今それを参照するために、例えば

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

別のxmlnsは

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

これはxmlns:app = "@ +/id"の形式であり、その使用法は以下のとおりです。

 app:layout_constraintBottom_toBottomOf="parent"
 app:layout_constraintLeft_toLeftOf="parent"
1
saleem kalro

独自の属性を作成でき、ユーザーが指定した属性がAndroid属性と同じである場合、名前空間の競合を回避できるため、名前空間で明らかになると思います。

1
Jomcy Johny
xmlns:Android="http://schemas.Android.com/apk/res/Android" 

xmlns:xml名前空間およびURL: " http://schemas.Android.com/apk/res/Android "は

XSD[XMLスキーマ定義]:XMLファイルのルールを定義するために使用されます。

例:

<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> 

What Kind of Rules?を説明しましょう。

  1. 上記のXMLファイルでは、同じ属性を2度定義するとエラーが発生する場合、レイアウトのlayout_widthをすでに定義しています。
  2. EditTextはありますが、別のEditTextを追加する場合は問題ありません。

このような種類のルールはXML XSDで定義されています: " http://schemas.Android.com/apk/res/Android "

少し遅れましたが、これがあなたのお役に立てば幸いです。

1
Rashid Kalhoro

これは、減速されるビューグループ内の属性がAndroid関連であることを指定するためのXML名前空間宣言です。

0
jeff