今天说说XML这个可扩展标记语言,对于我们不同的平台有他自己的数据格式,但是不同平台之间如果相互想传递数据,那么就应该用同一种数据格式,这样大家都能读懂。就像加入WTO组织的各个国家一样。每个国家都有自己的语言和货币,但是如果大家都用自己的东西就很难沟通和衡量。那么我们就使用统一的方式,使用英语作为交流语言,使用美元作为货币标准。
那么什么是XML呢?
XML全称:eXtensible Markup Language (可扩展标记语言)。由W3C组织发布,目前推荐遵守的是W3C组织于2000年发布的XML1.0规范。XML 是一种标记语言,很类似 HTML。 XML 的设计宗旨是传输数据,而非显示数据。XML的使命,就是以一个统一的格式,组织有关系的数据。为不同平台下的应用程序服务,独立于软件和硬件的信息传输工具。
!--下面是 John 写给 George 的便签,存储为 XML: --notetoGeorge/tofromJohn/fromheadingReminder/headingbodyDon't forget the meeting!/body/note
既然跟HTML同为标记语言,那么比较一下XML与HTML:
1、 XML 和 HTML 为不同的目的而设计:HTML 旨在显示信息,而 XML 旨在传输信息
①传统中,XML 被设计为传输和存储数据,其焦点是数据的内容。
②HTML 被设计用来显示数据,其焦点是数据的外观。
2、关于内部标签:XML没有任何预定义标签,均为自定义标签。
HTML 文档只使用在 HTML 标准中定义过的标签。
3、树形结构:
XML 文档形成一种树形结构,这点上与HTML是相同的。
4、 语法要求:
①XML相较于HTML,语法更加严格。
②HTML不区分大小写,XML严格区分大小写。
接下来看一下XML用途,为什么要学
1.配置文件
- JavaWeb中的web.xml,以及后面涉及到的框架都会有很多的配置文件
- C3P0中的c3p0-config.xml
- JDK安装后的目录文件
2. 数据交换格式
- Ajax
- WebService

3. 数据存储
保存关系型数据
举例1:
?xml version="1.0" encoding="utf-8"?中国北京海淀/海淀丰台/丰台/北京湖南长沙/长沙岳阳/岳阳/湖南湖北武汉/武汉荆州/荆州/湖北/中国举例2:
:为什么我们要使用xml保存数据呢?比如c3p0的配置文件。因为有些数据是不会经常变化的数据,我们需要固定的保存起来,然而这些数据又是有某些关系的。我们希望也把他们直接的关系用简明易懂的格式保存起来,方便后来查看这些数据的时候一下就能看懂他们直接的关系。
4. 移动端android页面
如下是android某应用的登录界面代码:【activity_login.xml】
?xml version="1.0" encoding="utf-8"?LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" include layout="@layout/common_title"/ RelativeLayout android:id="@+id/rl_login" android:layout_width="match_parent" android:layout_height="44dp" android:background="@color/white" android:paddingLeft="17dp" android:paddingRight="17dp" TextView android:id="@+id/tv_login_number" android:layout_width="95dp" android:layout_height="wrap_content" android:layout_centerVertical="true" android:text="手机号:" android:textColor="#333333" android:textSize="14sp"/ EditText android:id="@+id/et_login_number" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_toRightOf="@id/tv_login_number" android:background="@null" android:gravity="center_vertical" android:hint="请输入手机号" android:inputType="phone" android:maxLines="1" android:singleLine="true" android:textColor="#5c5c5c" android:textSize="14sp"/ /RelativeLayout View android:layout_width="match_parent" android:layout_height="1dp" android:background="?android:listDivider"/ RelativeLayout android:layout_width="match_parent" android:layout_height="44dp" android:background="@color/white" android:paddingLeft="17dp" android:paddingRight="17dp" TextView android:id="@+id/tv_login_pwd" android:layout_width="95dp" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:text="密码:" android:textColor="#333333" android:textSize="14sp"/ EditText android:id="@+id/et_login_pwd" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_toRightOf="@id/tv_login_pwd" android:hint="请输入密码" android:background="@null" android:inputType="textPassword" android:maxLines="1" android:singleLine="true" android:textColor="#5c5c5c" android:textSize="14sp"/ /RelativeLayout View android:layout_width="match_parent" android:layout_height="1dp" android:background="?android:listDivider"/ Button android:id="@+id/btn_login" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:layout_marginTop="15dp" android:background="@drawable/btn_01" android:text="登 录" android:textColor="#ffffff" android:textSize="18sp"//LinearLayout
知道了为什么要学XML来看一下XML基本语法:
1. XML文档结构
XML的文档结构见下图,具体的一一细说:
① XML文档声明
- version属性指定XML版本,固定值是1.0。
- 必须在文件的第一行书写文档声明。
- 最简单的声明语法:?xml version=“1.0” ?
- encoding指定的字符集,是告诉解析器使用什么字符集进行解码,而编码是由文本编辑器决定的
- 通常的写法:?xml version=“1.0” encoding=“utf-8” ?
- 这样就要求保存文件时,必须用utf-8编码保存。此时要求XML文档的作者确认当前编辑器保存文档的编码方式。
- eclipse会自动按照解码字符集进行编码保存。记事本需要另存为指定的字符集。
- xml文档声明如果声明,必须严格遵循语法。当然,也可以不声明。
② CDATA区
当XML文档中需要写一些程序代码、SQL语句或其他不希望XML解析器进行解析的内容时,就可以写在CDATA区中
XML解析器会将CDATA区中的内容原封不动的输出
CDATA区的定义格式:![CDATA[…]]
例如:

③ 注 释
XML文件中的注释采用:
④ 处理指令
① 处理指令,简称PI (processing instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。
② 处理指令必须以 ? 作为开头,以 ? 作为结尾,XML声明语句就是最常见的一种处理指令。
例如,在XML文档中可以使用xml-stylesheet指令,通知XML解析引擎,应用xsl文件显示xml文档内容。
?xml-stylesheet type="text/css" href="p.xsl"?③ XSL对于XML来说就相当于CSS对HTML一样,XSL是XML的文件样式。
XSL 指扩展样式表语言(EXtensible Stylesheet Language)。
| 文件 | 样式文件 |
|---|---|
| XML | XSL |
| HTML | CSS |
2. 语法规则
① XML声明要么不写,要写就写在第一行,并且前面没有任何其他字符。
② 只能有一个根标签,所有的其他标签都必须声明在根标签内部。
③ 标签必须正确结束,不能交叉嵌套。
⑤ 严格区分大小写。
⑥ 开始标签中,可以自定义添加属性。但,如果有属性就必须有值,且必须加引号。
⑦ 标签不能以数字开头。
⑧ 注释不能嵌套。
⑨ XML中可以使用HTML中的转义字符。
举例:
3. 转义字符
| 特殊字符 | 替代符号 |
|---|---|
| < | |
| > | |
| & | amp; |
| " | " |
| ‘ | &aops; |
XML实体中不允许出现"&","","“等特殊字符,否则XML语法检查时将出错,如果编写的XML文件必须包含这些字符,则必须分别写成”&","","“再写入文件中。例如,如果在XML文档中使用类似”" 的字符, 那么解析器将会出现错误,因为解析器会认为这是一个新元素的开始。所以不应该像下面那样书写代码:
age age 30 /age !--这种写法会解析出现错误,因为,等等都是关键字符,除过标签以外,不允许占用的。--age age < 30 /age













