为什么我们在android xml文件中指定命名空间?

Vin*_*oth 33 xml schema android xml-namespaces

当我们在Android中编写基于xml的布局时,我们使用字符串"xmlns:android ="http://schemas.android.com/apk/res/android".

从我读过的书中可以看出这是一个命名空间,但为什么我们使用它?该链接甚至不存在.那有什么用?

Kar*_*iya 24

来自developer.android.com

的xmlns:机器人

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

xmlns:android用于识别此xml用于android,而不是用于其他功能.

命名空间唯一标识代码/库.如果我写一个使用所有相同名称的API,例如android api,区分我的api和android api的唯一方法是使用android命名空间,或者我的.

您可以进一步参考http://en.wikipedia.org/wiki/XML_namespace

  • 我的意思是,这是命名空间的*定义*,但它没有触及*为什么*。像这样说,如果我将名称空间设置为空白,则没有任何作用。为什么? (2认同)

tsc*_*ble 20

您可能想要对XML进行一些常规阅读. w3.org的XML文档可能是您最好的.

通常,使用名称空间,以便您不会在元素名称之间发生冲突.

例如,如果我创建了一个定义了该元素的XML模式,<person>并且我的朋友创建了一个单独的XML模式,该模式定义了一个也恰好被命名的完全不同的元素<person>,那么我们可能会发生冲突.如果我试图在XML文件中引用这两个元素,那么就无法分辨哪个是哪个元素.但是,如果我们使用名称空间,myNamespace:person明显不同于myFriendsNamespace:person.

定义命名空间的标准是使用URI,这就是您在Android定义中看到的原因.它并不一定意味着该位置存在模式,这意味着URI是该命名空间的唯一名称.