XML介绍
XML:eXtensible Markup Language(可扩展标记语言)。
标记语言有html,xhtml,html5,xml。
html是将结构和表现混合在一起的,为了把结构和表现相分离提出了把html分成xml和css,但是并没有实现。
XML 被设计用来传输和存储数据,该标记语言作为接口语言使用的非常多。
1.xml和html的区别:
(1)html标签是固定的标签;xml的标签是自定义的。
(2)html标签负责数据的展示;xml签用于数据的存储。
(3)html标签的结构和样式是结合在一起的;xml标签的结构和样式相分离。
- 使用XML可以实现异构语言、异构平台之间的交互。
- XML 指可扩展标记语言,是独立于软件和硬件的信息传输工具。
- XML 是一种标记语言,很类似 HTML。
- XML 的设计宗旨是传输数据,而非显示数据
- XML 标签没有被预定义。您需要自行定义标签。
- XML 被设计为具有自我描述性。
- XML 是 W3C 的推荐标准。
2.xml的历史
1998年出现了xml,是为了替换掉html。但是这个事情需要消耗社会许多人力、财力,最后不了了之。
于是出现了xhtml:内部的技术标准都是xml的,标签都是html的。
3.xml的作用
主要是两大块:
- 数据存储
- 数据传输(交换)
存储方面:
- 配置文件
- 如qq、feiq、迅雷
- 如在项目中把数据库的主机名、用户名、密码在xml中配置好
- 小型数据库
- 对于一些不经常变化的数据(数据量不是很大),可以使用xml来保存
数据传输方面:
可以在网站中当作“接口”服务使用
- Ajax:Asynchronous JavaScript and xml,异步的js和xml
- Web service:web 服务 天气预报、ip查询、电话号码归属地查询,机票查询
新的应用:svg
Svg:可伸缩的矢量图形
伴随着H5(移动端)而生的。
重点还是在传输方面。尤其是web service。
XML结构
首先,看一个简单的demo
它其实是一个树模型,如图:
- 第一行是 XML 声明。它定义 XML 的版本 (1.0) 和所使用的编码(UTF-8)
- XML 文档形成了一种树结构,它从“根部”开始,然后扩展到“枝叶”
- XML 文档必须包含根元素。该元素是所有其他元素的父元素。(有且仅有一个)
- XML 文档中包含三种节点:元素、属性和文本
XML语法规范
1.语法总则
- 它必须以 XML 声明开头
- 它必须拥有唯一的根元素
- 开始标签必须与结束标签相匹配
- 元素对大小写敏感(区分大小写)
- 所有的元素都必须关闭
- 所有的元素都必须正确地嵌套
- 必须对特殊字符使用实体
2.文档声明
通常有两个属性:
- version:xml的版本,目前是1.0
- encoding:字符集编码,选择utf-8即可。
- standalone:用来表示该文件是否呼叫其它外部的文件(DTD或schema),取值范围:yes/no yes:没有呼叫,默认yes
要注意的一个问题,就是编码的问题。
XML目前只有一个版本,即1.0.
(1)声明一个处理指令
<?xml version="1.0" encoding="UTF-8"?>
xml内容可以被浏览器直接解释运行,当看到处理指令时会自动调用xml解释器。类似js代码的 <script>
标签
(2)文档的树状结构:有且仅有一个根节点
(3)标签必须闭合,不像html
<学号> </学号>
不能是 <学号>
<div> </div>
不能是 <div>
<介绍 />
不能是 <介绍>
(4)前后闭合的标签大小写要一致(建议全部小写)
(5)属性必须有值,值必须用引号引起来(不像html)
<student school='cqupt'>
</student>
(6)标签可以嵌套,但不能交叉嵌套
(7)特殊符号使用符号实体
单引号:'
双引号:"
空格:
&符号:&
>符号:>
<符号:<
(8)大段内容有许多特殊符号,就使用<![CDATA[]]>
表示
<描述><![CDATA["可扩展"标记&&语言,标准<通用>标记语言的<子集>。]]></描述>
(9)xml标签名字组成部分
utf-8字符集允许汉字作标签名
普通字符可以有:字母、数字、中横线、下划线、点,但数字不能作为首字母出现。
例子展示html和xml
html文件
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
<!--学号 姓名 地址 专业-->
<table>
<tr><td>学号</td><td>231</td></tr>
<tr><td>姓名</td><td>yeoman</td></tr>
<tr><td>地址</td><td>重庆</td></tr>
<tr><td>专业</td><td>计算机</td></tr>
</table>
</body>
</html>
xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!--第一行是XML声明-->
<!--这是XML处理指令的例子。处理指令以<?开始,以?>结束-->
<!--在<?后的第一个单词是处理指令名,在本例中是xml-->
<!--处理指令一定要顶格写,前面不能有任何空白-->
<!--学号 姓名 地址 专业-->
<student>
<学号>231</学号>
<姓名>yeoman</姓名>
<地址>chongqing</地址>
<专业>computer</专业>
</student>
结果为