Pourquoi cette ligne xmlns: android="http://schemas.android.com/apk/res/android" doit être le premier dans le 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" 
113
demandé sur ROMANIA_engineer 2011-08-19 13:08:46

11 réponses

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 {[6] } pour être unique. Généralement, cette page n'existe pas (C'est un URI, pas une URL), mais parfois c'est une URL qui explique l'espace de noms utilisé.

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

Voici une explication.

Ressource Uniforme Identifiant (URI)

Un URI (Uniform Resource Identifier) est une chaîne de caractères identifie une ressource Internet.

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

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

102
répondu NitroG42 2014-06-21 00:46:50

Xmlns fait référence à l'espace de noms XML

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

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

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

21
répondu Martyn 2011-08-19 09:15:28

Pour comprendre pourquoi xmlns:android=“http://schemas.android.com/apk/res/android” doit être le premier dans le fichier xml de mise en page, nous allons comprendre les composants en utilisant 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 uniforme des ressources (URI):

  • en informatique, un URI (uniform resource identifier) est une chaîne de caractères utilisés pour identifier le nom d'une ressource.
  • une telle identification permet une interaction avec les représentations du ressource sur un réseau, généralement le World Wide Web, en utilisant des protocole.

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 attributs dans un document XML. xmlns:android décrit l'androïde espace de noms.
  • son utilisé comme ceci parce que c'est un choix de conception par google pour traiter les erreurs au moment de la compilation.
  • supposons également que nous écrivons notre propre textview widget avec différents caractéristiques par rapport à android textview, espace de noms android aide à faites la distinction entre notre widget textview personnalisé et android textview widget
20
répondu Devrath 2014-09-10 05:55:10

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

Référer http://developer.android.com/guide/topics/manifest/manifest-element.html

5
répondu dinesh sharma 2012-03-22 06:42:02

Ceci est juste la déclaration D'espace de nom XML. Nous utilisons cet espace de nom afin de spécifier que les attributs énumérés ci-dessous, appartient à Android. Ainsi, ils commencent par " android:"

Vous pouvez réellement créer vos propres attributs. Donc, pour éviter les conflits de noms où 2 attributs sont nommés de la même chose, mais se comportent différemment, nous ajoutons le préfixe "android:" pour signifier que ce sont des attributs Android.

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

4
répondu Harsh Dani 2016-08-10 02:33:57

Xmlns: android Ceci est la balise de démarrage pour définir l'espace de noms android dans Android. C'est la convention de standerd définie par le développeur android google. lorsque vous utilisez et Layout default ou custome, vous devez 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".

Doit lire : http://developer.android.com/guide/topics/manifest/manifest-element.html

2
répondu vikseln 2014-09-07 08:38:32

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. Lorsque vous utilisez des préfixes en XML, un espace de noms pour le préfixe doit être défini.L'espace de noms peut être défini par un attribut xmlns dans la balise start d'un élément.La déclaration d'espace de noms a les caractéristiques suivantes syntaxe. xmlns:préfixe="URI".

2
répondu student 2016-08-10 15:19:18
  • Xmlns signifie espace de noms xml.
  • Il est créé pour éviter les conflits de noms dans les fichiers xml.
  • afin d'éviter les conflits de nommage d'une autre manière, nous devons fournir à chaque élément un préfixe.
  • pour éviter l'utilisation répétitive du préfixe dans chaque balise xml, nous utilisons xmlns à la racine du xml. Par conséquent, nous avons la balise xmlns: android= " http://schemas.android.com/apk/res/android "
  • Maintenant android ici signifie simplement que nous attribuons le espace de noms " http://schemas.android.com/apk/res/android " à elle.
  • Cet espace de noms n'est pas une URL mais un URI également connu sous le nom URN(universal resource name) qui est rarement utilisé à la place de L'URI.
  • en raison de cette android sera responsable d'identifier les éléments liés à android dans le document xml qui serait android: xxxxxxx etc. Sans cet espace de noms android: xxxxxxx ne sera pas reconnu.

Pour mettre en profane du terme :

Sans xmlns: android= " http://schemas.android.com/apk/res/android " Android tags associés ne seront pas reconnus dans le document xml de notre mise en page.

1
répondu Swapnil 2016-10-13 10:31:24
xmlns:android="http://schemas.android.com/apk/res/android"

C'est la forme de xmlns: android = "@+ / id". Maintenant, pour le référencer, 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"
1
répondu saleem kalro 2017-03-17 02:19:42

Je pense qu'il est clair avec l'espace de noms, car nous pouvons créer nos propres attributs et si l'attribut spécifié par l'utilisateur est le même que celui D'Android, il évite le conflit de l'espace de noms.

1
répondu Jomcy Johny 2017-05-06 23:19:14

Il s'agit d'une déclaration D'espace de nom XML afin de spécifier que les attributs qui se trouvent dans le groupe de vues dans lequel il est décéléré sont liés à android.

-1
répondu jeff 2017-01-20 06:28:36