¿Por qué esta línea xmlns: android = "http://schemas.android.com/apk/res/android" debe ser la primera en el archivo xml de diseño?

¿Por qué se necesita esta línea en el archivo de diseño xml?

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

    En XML, xmlns declara un espacio de nombres. De hecho, cuando lo haces:

     <LinearLayout android:id> </LinearLayout> 

    En lugar de llamar a android:id , el xml utilizará http://schemas.android.com/apk/res/android:id para ser único. Generalmente esta página no existe (es un URI, no una URL), pero a veces es una URL que explica el espacio de nombres utilizado.

    El espacio de nombres tiene prácticamente los mismos usos que el nombre del paquete en una aplicación Java.

    Aquí hay una explicación.

    Uniform Resource Identifier (URI)

    Un Uniform Resource Identifier (URI) es una cadena de caracteres que identifica un Recurso de Internet.

    El URI más común es el Uniform Resource Locator (URL) que identifica una dirección de dominio de Internet. Otro, no tan común tipo de URI es el Universal Resource Name (URN).

    En nuestros ejemplos sólo usaremos URL.

    Xmlns se refiere al espacio de nombres XML

    Cuando se utilizan prefijos en XML, se debe definir un espacio de nombres llamado para el prefijo. El espacio de nombres está definido por el atributo xmlns en la etiqueta de inicio de un elemento. La declaración de espacio de nombres tiene la siguiente sintaxis. Xmlns: prefix = "URI".

    Nota : el analizador no utiliza el URI de espacio de nombres para buscar información.

    El propósito es dar al espacio de nombres un nombre único. Sin embargo, a menudo las empresas utilizan el espacio de nombres como un puntero a una página web que contiene información de espacio de nombres.

    Para entender por qué xmlns:android=“http://schemas.android.com/apk/res/android” debe ser el primero en el archivo xml de diseño Vamos a entender los componentes usando un ejemplo

    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> 

    Indicador Uniforme de Recursos (URI) :

    • En computación, un identificador de recurso uniforme (URI) es una cadena de caracteres utilizados para identificar un nombre de un recurso.
    • Tal identificación permite la interacción con las representaciones del recurso sobre una red, típicamente la World Wide Web, usando protocolos específicos.

    Ejemplo: http://schemas.android.com/apk/res/android:id es el URI aquí


    Espacio de nombres XML :

    • Los espacios de nombres XML se utilizan para proporcionar elementos y atributos con nombre único en un documento XML. xmlns:android describe el espacio de nombres android.
    • Su usado como este porque es una opción de diseño de google para manejar los errores en tiempo de compilación.
    • También supongamos que escribimos nuestro propio widget textview con diferentes características en comparación con android textview , android namespace ayuda a distinguir entre nuestro widget de textview personalizado y widget textview android

    Xmlns: android Define el espacio de nombres de Android. Este atributo siempre debe establecerse en "http://schemas.android.com/apk/res/android&quot;.

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

    Esto es sólo la declaración del espacio de nombres XML. Utilizamos este espacio de nombres para especificar que los atributos enumerados a continuación pertenecen a Android. Así comienza con " android: "

    En realidad, puede crear sus propios atributos personalizados. Por lo tanto, para evitar que los conflictos de nombres donde dos atributos se denominan la misma cosa, pero se comportan de manera diferente, agregamos el prefijo " android: " para indicar que se trata de atributos de Android.

    Por lo tanto, esta declaración de espacio de nombres debe incluirse en la etiqueta de apertura de la vista raíz de su archivo XML.

    Xmlns: android Esta es la etiqueta de inicio para definir el espacio de nombres android en Android. Esta es la convención standerd definir por Android desarrollador de google. Cuando se utiliza y el diseño por defecto o custome, entonces debe utilizar este espacio de nombres.

    Define el espacio de nombres de Android. Este atributo siempre debe establecerse en " http://schemas.android.com/apk/res/android ".

    Debe leer: http://developer.android.com/guide/topics/manifest/manifest-element.html

    En XML, los nombres de elementos son definidos por el desarrollador. Esto a menudo resulta en un conflicto al intentar mezclar documentos XML de diferentes aplicaciones XML. Un usuario o una aplicación XML no sabrá cómo manejar estas diferencias. Los conflictos de nombres en XML pueden evitarse fácilmente utilizando un prefijo de nombre. Cuando se utilizan prefijos en XML, debe definirse un espacio de nombres para el prefijo. El espacio de nombres puede definirse mediante un atributo xmlns en la etiqueta de inicio de un elemento. La declaración de espacio de nombres tiene la siguiente sintaxis. Xmlns: prefix = "URI".

    • Xmlns significa espacio de nombres xml.
    • Se crea para evitar conflictos de denominación en los xml.
    • Para evitar conflictos de nomenclatura de cualquier otra forma, necesitamos proporcionar un prefijo a cada elemento.
    • Para evitar el uso repetitivo del prefijo en cada etiqueta xml usamos xmlns en la raíz del xml. Por lo tanto, tenemos la etiqueta xmlns: android = " http://schemas.android.com/apk/res/android "
    • Ahora android aquí simplemente significa que estamos asignando el espacio de nombres " http://schemas.android.com/apk/res/android ".
    • Este espacio de nombres no es una URL sino un URI también conocido como URN (nombre de recurso universal) que rara vez se utiliza en lugar de URI.
    • Debido a este android será responsable de identificar los elementos relacionados con Android en el documento xml que sería android: xxxxxxx etc Sin este espacio de nombres android: xxxxxxx no será reconocido.

    Para poner en término de laico:

    Sin xmlns: android = " http://schemas.android.com/apk/res/android " etiquetas relacionadas con android no será reconocido en el documento xml de nuestro diseño.

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

    Esta es la forma de xmlns: android = "@ + / id". Ahora para refernce lo usamos por ejemplo

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

    Otro xmlns es

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

    Que está en forma de xmlns: app = "@ + / id" y su uso se da a continuación

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

    Es una declaración de espacio de nombre XML para especificar que los atributos que están dentro del grupo de vistas en los que se ha desacelerado están relacionados con android.

    Creo que lo hace claro con el espacio de nombres, ya que podemos crear nuestros propios atributos y si el atributo especificado por el usuario es el mismo que el de Android evita el conflicto del espacio de nombres.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.