一.简介:
概念:
XML是可扩展标记语言(标签都是自定义的),就是提供框架,定义用于特定领域的标记语言时创建标记语言的规则,所以也叫做元标记语言。
作为元标记语言,XML不包含标签,必须定义用于该标记语言的标签的标签集。
XML文档的数据只有应用了某种样式表才能被浏览器显示。
功能:存储数据
1. 配置文件
2. 在网络中传输
二.一部分标签集
公共数据格式CDF:描述和储存标量数据的标签集。
可缩放矢量图形SVG:描述矢量图形
数学标记语言MathML:数学符号集合
化学标记语言CML:支持化学的标签集
GPX:描述GPS数据的标签集
三.语法
分为必须遵守的初级语法和XML架构规定的标签集和标签集顺序。以下主要介绍初级语法。
XML文档中最常见的是文档的数据元素,标记声明(是XML解析器的指令),处理指令(给处理文档中的数据的应用程序使用)。
文档从XML声明开始,用于标识XML文档,注明XML标准版本号,指定编码标准。
注释语法<! >。
XML命名由字母或者下划线开始,然后可以包括数字,字符,英文句号。区分大小写,不限制长度。
定义一个单独的根元素,起始标签在第一行。其他元素必须嵌套在根元素中。
每个元素必须有结束标签。
不含数据内容的元素必须用<element_name />标签。
属性值必须使用引号(单双都可)引起来。
当涉及元素是图片时,使用特性引用,因为图片是二进制数据,XML只能包含文本。
特性不能模式结构,所以相关数据有子结构时使用嵌套元素。数据是父元素的子数据而不是父元素的相关信息时使用嵌套元素。
标识元素编号和名称使用特性。数据是父元素的相关信息而不是父元素的子数据时使用特性。
四.文档结构
辅助文件:一个规定语法规则,一个包含样式表。
文档由多个实体构成,便于管理同时使图片等信息使用二进制储存时成为独立实体。这些实体中,只有文档实体在物理上是储存于代表文档的文件中。文档实体还包含其他实体的引用。
1. 文档声明
1. 格式:<?xml 属性列表 ?>
2. 属性列表:
* version:版本号,必须的属性
* encoding:编码方式。告知解析引擎当前文档使用的字符集,默认值:ISO-8859-1
* standalone:是否独立
* 取值:
* yes:不依赖其他文件
* no:依赖其他文件
2. 指令(了解):结合css的
* <?xml-stylesheet type="text/css" href="a.css" ?>
3. 标签:标签名称自定义的
* 规则:
* 名称可以包含字母、数字以及其他的字符
* 名称不能以数字或者标点符号开始
* 名称不能以字母 xml(或者 XML、Xml 等等)开始
* 名称不能包含空格
4. 属性:
id属性值唯一
5. 文本:
* CDATA区:在该区域中的数据会被原样展示
* 格式: <![CDATA[ 数据 ]]>
五.架构
* 约束:规定xml文档的书写规则
* 作为框架的使用者(程序员):
1. 能够在xml中引入约束文档
2. 能够简单的读懂约束文档
* 分类:
1. DTD:一种简单的约束技术
2. Schema:一种复杂的约束技术
* DTD:
* 引入dtd文档到xml文档中
* 内部dtd:将约束规则定义在xml文档中
* 外部dtd:将约束的规则定义在外部的dtd文件中
* 本地:<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置">
* 网络:<!DOCTYPE 根标签名 PUBLIC "dtd文件名字" "dtd文件的位置URL">
* Schema:
* 引入:
1.填写xml文档的根元素
2.引入xsi前缀. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3.引入xsd文件命名空间. xsi:schemaLocation="http://www.itcast.cn/xml student.xsd"
4.为每一个xsd约束声明一个前缀,作为标识 xmlns="http://www.itcast.cn/xml"
<students xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.itcast.cn/xml"
xsi:schemaLocation="http://www.itcast.cn/xml student.xsd">
六.XML处理器
xml常见的解析器:
1. JAXP:sun公司提供的解析器,支持dom和sax两种思想
2. DOM4J:一款非常优秀的解析器
3. Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。
4. PULL:Android操作系统内置的解析器,sax方式的。