XML:可扩展标记语言(eXtensible Markup Language),是格式严谨的HTML!
诞生背景
在现实生活中大量存在有关系的数据,如图所示。这样的数据如何交给计算机处理呢?
于是,出现了XML语言,XML出现的根本目标在于描述上图那种,在现实生活中经常出现的有关系的数据。
在XML中,它允许用户自定义标签
。一个标签用于描述一段数据;一个标签可分为开始标签和结束标签,在开始标签和结束标签之间,又可以使用其它标签描述其它数据,以此来实现数据关系的描述。
常见应用:
- XML技术除用于保存有关系的数据之外,它还经常用作软件配置文件,以描述程序模块之间的关系。
- 在一个软件系统中,为提高系统的灵活性,它所启动的模块通常由其配置文件决定
例如:一个软件在启动时,它需要启动A、B两个模块,而A、B这两个模块在启动时,又分别需要A1、A2和B1、B2模块的支持,为了准确描述这种关系,此时使用XML文件最为合适不过。
第一个XML程序
<html>
<head>
<title>this is title</title>
</head>
<body>
<p>html标签</p>
<P>html标签</P>
<abc>abc标签</abc> 自定义标签
</body>
</html>
什么是XML
XML技术是w3c组织发布的,目前推荐遵循的是W3C组织于2000发布的XML1.0规范。
HTML
- 名称:HyperText Markup Languae(超文本标记语言)
- 标签:标签是w3c组成指定,固定的,约100来个
- 作用:负责网页的结构
XML
- 名称:Extend Markup Languge(可扩展标签语言)
- 标签:由开发者自己制定的(要按照一定的语法定义)
- 作用:
1)描述带关系的数据(作为软件的配置文件):描述包含与被包含的关系
properties文件:
key-value
name=eric
password=123456
XML描述为:
<user>
<name>eric</name>
<password>123456</password>
</user>
2)作为数据的载体(存储数据,小型的“数据库”)
XML的初衷是替换掉语法松散的HTML,但是现在看来并没有实现;所以XML转移阵地,走向作为配置文件,而不再作为页面结构了!
如何写一个漂亮的XML
一个XML文件分为如下几部分内容:
- 文档声明
- 标签
- 属性
- 注释
- 转义字符
- CDATA区
- 处理指令(processing instruction)
核心特性:
- xml文件以xml后缀名结尾。
- xml文件需要使用xml解析器去解析。浏览器内置了xml解析器。
- 语法由w3c组织规定的;
文档声明
语法格式:
<?xml version="1.0" encoding="utf-8"?>
语法解析:
version: XML的版本号,注意是w3c发布的XML版本号,不是你的软件的版本号!
encoding:说明XML文件的字符编码类型
standalone:说明文档是否独立。
注意:
- 如果在Eclipse工具中开发xml文件,保存xml文件时自动按照文档声明的encoding来保存文件。
- 如果用Windows记事本工具修改xml文件,注意保存xml文件按照文档声明的encoding的码表来保存,因为Windows会智障地按照自己的编码方式,从而导致整个xml失效。
- 结论:第一是关注文件本身编码和声明的编码是否一致;第二是禁止使用notepad编辑代码!
标签
语法格式:
<student> 内容 </student> :开始标签 标签体内容 结束标签
标签的特性:
- xml标签名称区分大小写。
- xml标签一定要正确配对。允许自闭标签:
- xml标签名中间不能使用空格
- xml标签名不能以数字开头,不能包含空格,名称中间不能包含冒号和Java的命名规范一样;
- 注意: 在一个xml文档中,有且仅有一个根标签,即就像一个HTML文件不能有两个
<html></html>
如下图: - 正确的XML文件成功的运行
属性
语法格式:
<Student name="eric">student</Student>
属性约束:
属性值必须以引号包含,不能省略,但不能单双引号混用,即要么同时用双引号、同时用单引号!!!
一个标签内可以有多个属性,但不能出现重复的属性名!!!
属性只能出现在开始标签中。
属性名不能使用空格、冒号的特殊字符,且必须以字母开头。
注释
语法格式:
<!-- xml注释 -->
转义字符
定义:
- 在xml中内置了一些特殊字符,这些特殊字符不能直接被浏览器原样输出。
- 如果希望把这些特殊字符按照原样输出到浏览器,对这些特殊字符进行转义。
- 转义之后的字符就叫转义字节。
- XML中的转义字符与HTML中的一样。
CDATA区
**作用:**可以让一些需要进行包含特殊字符的内容统一进行原样输出。
<![CAATA[
<ShaBi>zhi zhang </ShaBi>
]]>
处理指令(processing instruction)
**功能:**告诉xml解析如何解析xml文档
语法格式:
处理指令必须以“<?”作为开头,以“?>”作为结尾,XML声明语句就是最常见的一种处理指令。