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"
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.
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.
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 à androidtextview
, espace de noms android aide à faites la distinction entre notre widgettextview
personnalisé et androidtextview
widget
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
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.
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
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".
- 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.
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"
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.
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.