导航:首页 > 操作系统 > androidxml命名

androidxml命名

发布时间:2025-01-08 10:10:53

㈠ 如何理解android中的xmlns

首先,我们先来看下到底什么是xmlns,它是 XML 文档中的一个概念:英文叫做 XML namespace,中文翻译为 XML 命名空间。一讲到命名空间,我想很多人会联想到C++中的namespace和Java中的 packagename,而这两者的作用都是为了解决命名上的冲突(例如类名,接口名等)。类似的,XML namespace也是为了解决 XML 中元素和属性命名冲突,因为 XML 中的标签并不是预定义的,这一点与 HTML 是有区别的,HTML 中的标签是预定义的,所以我们会遇到命名冲突的问题。

XML 命名空间定义语法为xmlns:namespace-prefix="namespaceURI",一共分为三个部分:

xmlns:声明命名空间的保留字,其实就是XML中元素的一个属性;

namespace-prefix:命名空间的前缀,这个前缀与某个命名空间相关联;

namespaceURI:命名空间的唯一标识符,一般就是一个URI引用。

通过上面的内容的讲解,我们对命名空间有了一定的了解,下面我们通过一个例子引用来说明一下xmlns属性是如何解决命名冲突的:

命名冲突
在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突。这个 XML 文档携带着某个表格中的信息:

<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>

这个 XML 文档携带有关桌子的信息:

<table>
<name>African Coffee Table</name>
<width>80</width>
<length>120</length>
</table>

假如这两个 XML 文档被一起使用,由于两个文档都包含带有不同内容和定义的 <table> 元素,就会发生命名冲突。XML 解析器无法确定如何处理这类冲突。

使用命名空间(Namespace)
这个XML文档携带着某个表格中的信息:

<h:table xmlns:h="http://www.w3.org/TR/html4/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>

此XML文档携带着有关一件家具的信息:

<f:table xmlns:f="http://www.w3school.com.cn/furniture">
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>

我们为<table>标签添加了一个xmlns属性,并在每个标签前面都添加了相应的前缀,这个前缀是一个与某个命名空间相关联的限定名称,这个前缀就代表后面那个 URI 引用,或者说一个缩写。

关于xmlns就先简单讲到这里,大家如果要深入了解的话,可以点击本文中的跳转链接,下一节我们来看下 Android 中的那些xmlns。

Android中的xmlns

在Android中,目前我们碰到的xmlns一共有三种:

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

android

命名空间android用于 Android 系统定义的一些属性。

app

命名空间app用于我们应用自定义的一些属性,这个与 Android 自定义属性和系统控件扩展应该有关系,大家可以再继续研究一下。

tools

根据官方定义,tools命名空间用于在 XML 文档记录一些,当应用打包的时候,会把这部分信息给过滤掉,不会增加应用的 size,说直白点,这些属性是为IDE提供相关信息

㈡ 如何在AndroidStudio中新建xml文件夹

如下图所示,在res文件夹处右键单击,选择“new”,再选择“Androidresource directory ” :弹出对话框命名即可。

㈢ android中xml中有些控件的属性里面有 "app:.." ,此处的app:是什么意思和一般的android:有什么区别

xmlns:Android=”http://schemas.android.com/apk/res/android”

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

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

android 和 app 都是xml 里面的命名空间,android 是系统默认的,app是自定义的,你改成其它名字也可以,常用于自定义控件的自定义属性,res-auto会自动查找项目下的自定义属性,也可以在后面跟上包名

--------------------
<?xmlversion="1.0"encoding="utf-8"?>
<resources>
<!--这里的name跟xmlns里面的app没关系,只是在自定义view里面通过这个取自定义属性-->
<declare-styleablename="CustomText">
<attrname="tsize"format="dimension"/>
<attrname="tcolor"format="color"/>
</declare-styleable>
</resources>
---------------------
xmlns:app=”http://schemas.android.com/apk/res-auto”

<com.example.customview.CustomTextView
app:tsize="5dp"
android:text="123"
>
</com.example.customview.CustomTextView>
阅读全文

与androidxml命名相关的资料

热点内容
程序员那么可爱31集上中下完整版 浏览:817
有什么动漫app是可以免费看的 浏览:140
程序员语言有多少种 浏览:195
linux系统对硬盘分区 浏览:264
php7性能优化总结 浏览:818
pdf文本格式转换器 浏览:116
androidmap排序 浏览:448
php类型自动 浏览:213
一键apk反编译提取视频文件 浏览:981
linuxshell释放缓存命令 浏览:72
路由器服务器主机名怎么设置 浏览:992
PB9编译后的取值和之前不一样 浏览:347
怎么将安卓机空间变回原来 浏览:310
惠普电脑如何加密文件夹 浏览:499
程序员有关的节目 浏览:767
程序员淘宝5块钱能买什么 浏览:501
程序员评四星 浏览:111
linux6步编译内核 浏览:397
什么app有爱豆的声音 浏览:876
hadoop2命令 浏览:627