1. xml:可扩展标记语言。xml注重的是存储数据。区别于html
2. xml的语法结构:
1) 声明:<?xml version="1.0" encoding="UTF-8" ?>
2) 文档声明(可选):<!DOCTYPE .... "...xxx.dtd">
3) 元素(标记):<element attname="value">主体内容</element>, <element att="value"/>, <element/>
4) 注释:<!-- -->
5) 指令:
3. 格式良好的xml文档:
1) 只能有一个根元素。
2) 元素名要合法:
3) 元素要正确嵌套:
4. 命名空间(名称空间):为了解决元素名或属性名同名冲突问题。
4) 添加在根元素上:<root xmlns="http://www.tjitcast.com/ns"
xmlns:q="http://www.tjitcast.com/q/ns">
5) 元素通过前缀来使用名称空间:<q:element/>
不加前缀的元素表示使用的默认的名称空间。
5. DTD:文档类型定义。用于约束xml结构的一种文档。以.dtd结尾。
1) xml内部的dtd:
2) 外部dtd:
3) 声明元素:<!ELEMENT 元素名 类型 声明>
a) 类型:#PCDATA, 子元素列表, ID,NMTOKEN...
还是可使用通配符:* ? + , () |
b) 声明:#REQUIRED, #IMPLIED, #EMPTY, #ANY, 默认值, #FIXED 固定值
4) 声明元素的属性:<!ATTLIST 元素名 属性名 类型>
a) 类型:CDATA...
5) 在xml文档中使用<!DOCTYPE..>来引用dtd
6. schema:比dtd更完整的约束xml结构 的一种xml文档。以.xsd结尾。
1) 简单类型,复合类型。
2) 在xml文档中通过在根元素中指定名称空间来引用xsd。
二、XML的解析器:分析XML的结构并从中获取想要的数据。一般使用Apache组织提供的Xerces,JDK中自带了这个解析器实现。
1.XML的解析标标准:DOM和SAX
2.XML的解析技术:
1) DOM:加载整篇xml文档,在内存中生成dom对象树。特点:便于上下导航查询元素,便于编辑xml;解析速度慢,耗内存。
2) SAX:基于事件驱动方式的解析。解析xml过程中,是遇到特定的元素时通过回调对应的事件处理方法来完成解析。特点:解析速度快,省内存。无法上下导航查询,不能修改xml。
3) jdom:使用SAX解析XML文档,生成DOM对象树。
★4) dom4j:跟jdom原理类似。更便于使用。API都是封装成针对java集合的操作。
2. xml的语法结构:
1) 声明:<?xml version="1.0" encoding="UTF-8" ?>
2) 文档声明(可选):<!DOCTYPE .... "...xxx.dtd">
3) 元素(标记):<element attname="value">主体内容</element>, <element att="value"/>, <element/>
4) 注释:<!-- -->
5) 指令:
3. 格式良好的xml文档:
1) 只能有一个根元素。
2) 元素名要合法:
3) 元素要正确嵌套:
4. 命名空间(名称空间):为了解决元素名或属性名同名冲突问题。
4) 添加在根元素上:<root xmlns="http://www.tjitcast.com/ns"
xmlns:q="http://www.tjitcast.com/q/ns">
5) 元素通过前缀来使用名称空间:<q:element/>
不加前缀的元素表示使用的默认的名称空间。
5. DTD:文档类型定义。用于约束xml结构的一种文档。以.dtd结尾。
1) xml内部的dtd:
2) 外部dtd:
3) 声明元素:<!ELEMENT 元素名 类型 声明>
a) 类型:#PCDATA, 子元素列表, ID,NMTOKEN...
还是可使用通配符:* ? + , () |
b) 声明:#REQUIRED, #IMPLIED, #EMPTY, #ANY, 默认值, #FIXED 固定值
4) 声明元素的属性:<!ATTLIST 元素名 属性名 类型>
a) 类型:CDATA...
5) 在xml文档中使用<!DOCTYPE..>来引用dtd
6. schema:比dtd更完整的约束xml结构 的一种xml文档。以.xsd结尾。
1) 简单类型,复合类型。
2) 在xml文档中通过在根元素中指定名称空间来引用xsd。
二、XML的解析器:分析XML的结构并从中获取想要的数据。一般使用Apache组织提供的Xerces,JDK中自带了这个解析器实现。
1.XML的解析标标准:DOM和SAX
2.XML的解析技术:
1) DOM:加载整篇xml文档,在内存中生成dom对象树。特点:便于上下导航查询元素,便于编辑xml;解析速度慢,耗内存。
2) SAX:基于事件驱动方式的解析。解析xml过程中,是遇到特定的元素时通过回调对应的事件处理方法来完成解析。特点:解析速度快,省内存。无法上下导航查询,不能修改xml。
3) jdom:使用SAX解析XML文档,生成DOM对象树。
★4) dom4j:跟jdom原理类似。更便于使用。API都是封装成针对java集合的操作。