web-dev-qa-db-fra.com

Pourquoi cette ligne xmlns: Android = "http://schemas.Android.com/apk/res/Android" doit-elle être la première du fichier XML de mise en page?

Pourquoi cette ligne est-elle nécessaire dans le fichier de mise en page XML?

xmlns:Android="http://schemas.Android.com/apk/res/Android" 
131
Hitesh Dhamshaniya

En XML, xmlns déclare un espace de noms. En fait, quand vous faites:

<LinearLayout Android:id>
</LinearLayout>

Au lieu d'appeler Android:id, le XML utilisera http://schemas.Android.com/apk/res/Android:id pour être unique. Généralement, cette page n’existe pas (c’est un URI, pas une URL), mais c’est parfois une URL qui explique l’espace de nom utilisé.

L'espace de noms utilise à peu près les mêmes utilisations que le nom du package dans une application Java.

Ici est une explication.

Identifiant de ressource uniforme (URI)

Un identifiant de ressource uniforme (URI) est une chaîne de caractères identifiant une ressource Internet.

L'URI le plus courant est l'URL (Uniform Resource Locator) qui identifie une adresse de domaine Internet. Un autre type d'URI, moins commun, est le nom de ressource universel (URN).

Dans nos exemples, nous n'utiliserons que des URL.

111
NitroG42

Pour comprendre pourquoi xmlns:Android=“http://schemas.Android.com/apk/res/Android” doit être le premier du fichier XML de mise en page. Nous allons comprendre les composants à l'aide d'un exemple.

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>

Indicateur de ressource uniforme (URI) :

  • En informatique, un identifiant de ressource uniforme (URI) est une chaîne de caractères utilisée pour identifier le nom d'une ressource.
  • Cette identification permet une interaction avec les représentations de la ressource sur un réseau, généralement le World Wide Web, à l'aide de protocoles spécifiques.

Ex: http://schemas.Android.com/apk/res/Android:id est l'URI ici


Espace de noms XML :

  • Les espaces de noms XML sont utilisés pour fournir des éléments et des attributs portant un nom unique dans un document XML. xmlns:Android décrit l'espace de noms Android.
  • Son utilisé comme ceci parce que c'est un choix de conception par Google pour gérer les erreurs au moment de la compilation.
  • Supposons également que nous écrivions notre propre widget textview avec des fonctionnalités différentes de celles de Android textview, Android et permet de faire la distinction entre notre widget personnalisé textview et le widget Android textview
29
Devrath

xmlns fait référence à espace de noms XML

Lorsque vous utilisez des préfixes en XML, vous devez définir un espace de nom pour le préfixe. L'espace de nom est défini par l'attribut xmlns dans la balise de début d'un élément. La déclaration d'espace de noms a la syntaxe suivante. xmlns: prefix = "URI".

Remarque : l'URI de l'espace de noms n'est pas utilisé par l'analyseur pour rechercher des informations.

Le but est de donner un nom unique à l'espace de noms. Cependant, les entreprises utilisent souvent l’espace de noms comme pointeur sur une page Web contenant des informations sur les espaces de noms.

26
Martyn

Ceci est juste la déclaration de l'espace de noms XML. Nous utilisons cet espace de noms afin de spécifier que les attributs répertoriés ci-dessous appartiennent à Android. Ainsi, ils commencent par "Android:"

Vous pouvez réellement créer vos propres attributs personnalisés. Donc, pour éviter les conflits de nom où 2 attributs sont nommés de la même manière, mais nous nous comportons différemment, nous ajoutons le préfixe "Android:" pour indiquer qu'il s'agit d'attributs Android.

Ainsi, cette déclaration d'espace de nom doit être incluse dans la balise d'ouverture de la vue racine de votre fichier XML.

6
Harsh Dani

xmlns: Android Définit l'espace de noms Android. Cet attribut doit toujours être défini sur "http://schemas.Android.com/apk/res/Android".

se référer http://developer.Android.com/guide/topics/manifest/manifest-element.html

6
dinesh sharma
  • Xmlns signifie espace de noms xml.
  • Il est créé pour éviter les conflits de noms dans les fichiers XML.
  • Afin d'éviter tout conflit de nom, nous devons attribuer un préfixe à chaque élément.
  • pour éviter une utilisation répétitive du préfixe dans chaque balise XML, nous utilisons XMLNS à la racine du XML. Nous avons donc la balise xmlns: Android = ” http://schemas.Android.com/apk/res/Android
  • Maintenant Android signifie simplement que nous attribuons l’espace de nom “ http://schemas.Android.com/apk/res/Android = "À elle.
  • Cet espace de noms n'est pas une URL, mais un URI, également appelé URN (nom de ressource universelle), qui est rarement utilisé à la place de l'URI.
  • En raison de cela, Android sera chargé d'identifier les éléments associés à Android dans le document XML qui seraient Android: xxxxxxx, etc. Sans cet espace de nom, Android: xxxxxxx ne sera pas reconnu.

Pour reprendre un terme profane:

sans xmlns: Android = ” http://schemas.Android.com/apk/res/Android ” Android les balises associées ne seront pas reconnues dans le document XML de notre mise en page.

3
Swapnil

En XML, les noms d'éléments sont définis par le développeur. Cela entraîne souvent un conflit lorsque vous essayez de mélanger des documents XML à partir de différentes applications XML. Un utilisateur ou une application XML ne saura pas comment gérer ces différences. Les conflits de noms en XML peuvent facilement être évités en utilisant un préfixe de nom. Lors de l'utilisation de préfixes en XML, un espace de nom pour le préfixe doit être défini. L'espace de nom peut être défini par un attribut xmlns dans la balise de début d'un élément. La déclaration d'espace de nom a la syntaxe suivante. xmlns: prefix = "URI".

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

C'est la forme de xmlns: Android = "@ +/id". Maintenant, pour nous en rappeler, nous utilisons par exemple

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

Un autre xmlns est

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

qui est sous la forme de xmlns: app = "@ +/id" et son utilisation est donnée ci-dessous

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

Je pense que cela est clair avec l’espace de nommage, car nous pouvons créer nos propres attributs. Si l’attribut spécifié par l’utilisateur est identique à celui de Android, il évite le conflit de l’espace de nommage.

2
Jomcy Johny

xmlns: Android Ceci est la balise de démarrage pour définir Android espace de nom dans Android. C’est la convention standard définie par Android développeur Google. lorsque vous utilisez et layout par défaut ou custome, vous devez alors utiliser cet espace de noms.

Définit l'espace de noms Android. Cet attribut doit toujours être défini sur " http://schemas.Android.com/apk/res/Android ".

À partir de la <manifes> documentation de l'élément .

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

xmlns : est un espace de noms xml et l'URL : " http://schemas.Android.com/apk/res/Android "n'est rien mais

XSD qui est [Définition du schéma XML]: qui est utilisé pour définir les règles du fichier XML.

Exemple :

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

Laissez-moi vous expliquer Quel type de règles? .

  1. Dans le fichier XML ci-dessus, nous définissons déjà layout_width pour notre présentation maintenant SI vous définissez le même attribut une seconde fois, vous obtiendrez une erreur.
  2. EditText est là, mais si vous voulez ajouter un autre EditText, aucun problème.

Ce type de règles est défini dans XML XSD: " http://schemas.Android.com/apk/res/Android "

un peu en retard mais j'espère que cela vous aide.

1
Rashid Kalhoro

Il s'agit d'une déclaration d'espace de nom XML afin de spécifier que les attributs du groupe de vues dans lequel il est décéléré sont associés à Android.

0
jeff