目录
.xml文件在Android项目中扮演一个什么样的角色?它起到什么作用?
.xml文件在Android项目中是特别重要的,当你打开手机软件看到的画面离不开它的身影,甚至可以说它是整个项目的“地基”。
此文件在项目中起到不同的作用:
界面布局、资源定义、配置文件、数据存储、应用程序间的通讯。
接下来,我们应该学习了解编写此种文件所运用的语言-xml。
一、xml语言的简介及发展历程
xml全名可扩展标记语言,是用于描述数据的标记语言,也是一种通用、可扩展的语言。它被用于各种领域,例如Web开发、移动应用开发、数据交换等。
为什么会出现xml语言呢?那是因为在计算机发展历程中出现了各式各样的系统,这个时候就会出现一个问题,当我使用一种系统做出了一些数据,而我要验证这些数据需要在另外一个系统中进行,这个时候就要在不同的系统之间进行数据传输,为了解决这个问题于是提出了xml语言。它的设计目标是提供一种通用的、可扩展的标记语言,用于描述数据的结构和内容。
自从xml语言提出之后,它一直都在发展,历程如下:
-
1996年:XML的前身SGML(标准通用标记语言)在ISO(国际标准化组织)发布。SGML是一种用于定义文档结构和内容的标记语言,但它过于复杂和庞大,不适合在互联网上广泛使用。
-
1998年:W3C(万维网联盟)发布了XML 1.0规范。XML简化了SGML的语法和规则,使得它更易于使用和理解。XML的发布标志着一种新的、通用的、可扩展的标记语言的诞生。
-
2000年:W3C发布了XML Schema规范。XML Schema是一种用于定义XML文档结构和内容的模式语言,它提供了比DTD更强大和灵活的验证机制。
-
2004年:W3C发布了XPath和XSLT规范。XPath是一种用于在XML文档中定位和选择节点的语言,XSLT是一种用于将XML文档转换为其他格式(如HTML、XML或文本)的语言。
-
2006年:W3C发布了XQuery规范。XQuery是一种用于查询和检索XML数据的语言,类似于SQL用于关系数据库的查询。
-
2008年:W3C发布了XML Signature和XML Encryption规范。XML Signature用于对XML文档进行数字签名,XML Encryption用于对XML文档进行加密。
-
2012年:W3C发布了XMLHttpRequest Level 2规范。XMLHttpRequest是一种用于在Web浏览器中进行异步数据交换的API,它是实现AJAX(异步JavaScript和XML)的基础。
-
现在:XML仍然是一种广泛使用的数据交换和描述语言,在Web开发、移动应用开发、数据存储和数据传输等领域都有重要的应用。
二、xml语言在移动应用开发中的应用
在我们需要创建一个移动应用,我们首先应该写出界面,这里就牵涉到了画面中元素的布局,于是就运用到xml语言。
那么怎样写一个界面文件呢?
写出界面文件,必须遵循一定的规则,其如下:
1、标签闭合
xml语言要求每一个标签都需要有一个开始标签,一个结束标签。
例:
<TextView>
<text>Hello World</text>
</TextView>
这是一个很简单的一个标签,但是它不会在界面中显示,因为没有设定长度和宽度等一些信息。
当你添加一个.xml文件,你进入后会看到
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> </RelativeLayout>
这里就给我们反应了一个信息写一个.xml文件,必须要有一个开始标签,一个结束标签。
其中<?xml version="1.0" encoding="utf-8"?>是xml文件的声明,这里是告诉编码器使用的XML版本和字符编码。
<RelativeLayout>是根元素,这里定义了一个相对布局。
其中包含了三个空间属性:android、app、tools,分别定义了Android的基本属性、应用程序的特定属性和开发工具属性。
android:layout_width="match_parent"
android:layout_height="match_parent"
指定了宽度和高度与父容器匹配。
</RelativeLayout>是结束标签,表示该布局的定义结束。
根据上述描述可知,这里的定义了父容器,要想在画面中体现你想表达的内容,应在父容器里面书写代码。
2、属性值要引号
xml语言中你要给你的内容添加相应的属性你需要利用引号给括起来,可以用单引号或者双引号括起来,如下:
这里我写了一个 文本,让其显示在画面中。
我设置了其属性:
android:id="@+id/myTextView",这个属性是TextView控件的唯一标识符,你可以在其他的代码中引用它。
android:layout_width="wrap_content"和android:layout_height="wrap_content"设置了控件的宽度和高度,其中wrap_content表示控件根据其内容自动调整宽度和高度。
其中内容的显示是在android:text='Hello, World!'里面显示。
android:textSize="24sp"这个属性是控件的文本大小属性,已sp(缩放独立像素)为单位。如果你删去这个代码,其文本就会变小,可能是自动调整到默认大小,如下图所示:
android:layout_centerInParent="true"这个属性是在父布局中居中显示控件的内容。
注:在写完代码之后,发现左边没有出现预览画面,而且没有发现明显错误,很大可能是项目在有所损坏,重新建立项目就行了。
3、特殊字符转义
在xml中,有时候会用到一些特殊符号,为了使xml解析器能够正确认识,所以利用了转义。
例如,你要在文本中添加<符号,但是xml解析器会认为是标签的开始,这就会报错,所以你需要使用转义符号,让xml解析器能够正确解析并表示在预览画面中。如下图所示:
利用<符号的转义符号<能够正确识别,如下图所示:
4、xml命名规范
xml的命名规范主要包括元素、属性和命名空间的命名规则。
①、元素命名规则
必须要以字母、下划线或者冒号开头;
可以包含字母、数字、下划线、冒号、句号或者破折号;
不能以xml开头无论大小写;
不能包含空格或者特殊字符。
②、属性命名规则
与元素命名规则大致相同,多了一条是:
不能与元素名称相同。
③、命名空间命名规则
必须是一个有效的URL;
前缀是有效的xml名称。
例如:
<root xmlns:my_ns="http://example.com/mynamespace">
<my_ns:element attribute="value">Content</my_ns:element>
</root>
其中root是一个合法的元素名称,my_ns是合法的命名空间前缀,my_ns:element是合法元素名称,http://example.com/mynamespace提供了合法的URL。
5、xml声明
这个的作用就是指定xml文档的版本和所用字符的编码。
如下图所示:
图中代码显示,包含了两种重要的属性:
一是xml版本,二是指定了xml文档所用的字符编码。
其本质就是能够让解析器能够正确的处理文档。
6、命名空间
这个是用在xml文档中标识元素和属性名称的机制,允许同个文档中使用相同的名称元素和属性,而不会发生冲突。
如下图所示,就是一个正确的命名空间:
7、xml的格式化和缩进
这个是对xml文档进行结构化排版,能让我们更容易读取和理解xml文档。要完成xml文档的排版,就需要运用到格式化和缩进。
这个排版就是智者见智,仁者见仁了,按照个人喜好来排版。
三、总结
要完成xml文件的编写,一定要遵守以上的规则,在此基础上可以按照个人喜好来进行排版,就能够完成相应的xml文件的编写。总的来说,你想在xml文件中不想写太多的文本,你可以在values文件夹中的strings.xml文件进行编写,然后遵守相应规则进行调用,也能在预览画面中看到你写的文本内容。