Nit*_*G42 114

在XML中,xmlns声明了一个命名空间.事实上,当你这样做时:

<LinearLayout android:id>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

而不是调用android:id,xml将使用http://schemas.android.com/apk/res/android:id是唯一的.通常,此页面不存在(它是URI,而不是URL),但有时它是解释使用的命名空间的URL.

命名空间与Java应用程序中的包名几乎相同.

是一个解释.

统一资源标识符(URI)

统一资源标识符(URI)是标识Internet资源的字符串.

最常见的URI是标识Internet域地址的统一资源定位符(URL).另一种不常见的URI类型是通用资源名称(URN).

在我们的示例中,我们将仅使用URL.

  • 那为什么我们有`android:layout_width`而不仅仅是`layout_width`? (12认同)
  • 那我们怎么用"LinearLayout"代替"android:LinearLayout"呢? (4认同)
  • 当然它不会获取此URL,它是一个URI:http://www.w3schools.com/xml/xml_namespaces.asp (4认同)
  • 那么为什么`http://`开头呢?(如果没有进行httping ......) (3认同)

Dev*_*ath 34

要理解为什么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>
Run Code Online (Sandbox Code Playgroud)

统一资源指标(URI):

  • 在计算中,统一资源标识符(URI)是用于标识资源名称的字符串.
  • 这种识别使得能够使用特定协议通过网络(通常是万维网)与资源的表示进行交互.

例如:http://schemas.android.com/apk/res/android:id这里是URI


XML命名空间:

  • XML名称空间用于在XML文档中提供唯一命名的元素和属性.xmlns:android描述了android命名空间.
  • 它是这样使用的,因为这是谷歌在编译时处理错误的设计选择.
  • 另外假设我们编写了自己的textview小部件,与android相比具有不同的功能textview,android命名空间有助于区分我们的自定义textview小部件和android textview小部件

  • 与上面那些没有明确解释"为什么?"的答案相比,这个答案真的值得一读. (7认同)

Mar*_*tyn 27

xmlns指的是XML命名空间

在XML中使用前缀时,必须定义前缀的所谓命名空间.命名空间由元素的开始标记中的xmlns属性定义.名称空间声明具有以下语法.的xmlns:前缀= "URI".

注意:解析器不使用命名空间URI来查找信息.

目的是为命名空间赋予唯一的名称.但是,公司通常使用命名空间作为指向包含命名空间信息的网页的指针.


din*_*rma 6

xmlns:android 定义Android命名空间.此属性应始终设置为"http://schemas.android.com/apk/res/android".

请参阅http://developer.android.com/guide/topics/manifest/manifest-element.html


小智 6

这只是XML名称空间声明。我们使用此名称空间来指定下面列出的属性属于Android。因此,它们以“ android: ” 开头

您实际上可以创建自己的自定义属性。因此,为了防止在两个属性被命名为相同事物但行为不同的情况下发生名称冲突,我们添加前缀“ android: ”以表示这些是Android属性。

因此,此名称空间声明必须包含在XML文件的根视图的开始标记中。


Swa*_*nil 5

  • 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(通用资源名称),很少用来代替 URI。
  • 由于这个 android 将负责识别 xml 文档中与 android 相关的元素,即 android:xxxxxxx 等。没有这个命名空间 android:xxxxxxx 将无法识别。

用外行的话来说:

如果没有 xmlns:android=" http://schemas.android.com/apk/res/android " android 相关标签将不会在我们布局的 xml 文档中被识别。