如何使用android中的命名空间来解决命名歧义?

时间:2016-03-06 03:23:27

标签: java android xml

如何使用下面的名称空间来解析命名含糊不清的属性?

 <parent xmlns:android="http://schemas.android.com/apk/res/android">
   <child></child>
   <child></child>
 </parent>

如何区分两个子节点?

因为节点都继承父命名空间。

然后两者都必须具有以下名称http://schemas.android.com/apk/res/android:child

1 个答案:

答案 0 :(得分:0)

在这种情况下,您为前缀android定义名称空间,因此您实际上是正确的:您最终将使用格式为android:attribute的属性的子节点。

但是,可以包含一些其他命名空间。例如,

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

  <child></child>
  <child></child>

</parent>

在这种情况下,您还定义了app命名空间,其中将包含应用程序中专门定义的属性(例如,通过库,或通过您定义的自定义视图)。因此,对于未包含在android:attribute命名空间中的属性,您最终将使用app:attribute语法和android语法。

android中的命名空间不用于分隔子节点本身,而是用于定义这些子节点可以访问的属性范围。