XML简介
XML简介:
- xml 是可扩展的标记性语言。
- xml 的主要作用有:
①用来保存数据,而且这些数据具有自我描述性。
②它还可以做为项目或者模块的配置文件。
③还可以做为网络传输数据的格式(现在 JSON 为主)。
XML文档声明简介:
<?xml version="1.0" encoding="UTF-8"?>
- 文档声明必须为<?xml开头,以?>结束;
- 文档声明必须从文档的0行0列位置开始;
- 文档声明只有三个属性:
①versioin:指定XML文档版本。必须属性,因为我们不会选择1.1,只会选择1.0;
②encoding:指定当前文档的编码。可选属性,默认值是utf-8;
③standalone:指定文档独立性。可选属性,默认值为yes,表示当前文档是独立文档。
<1>如果为no表示当前文档不是独立的文档,会依赖外部文件。
XML语法:
- xml的元素(标签),属性和注释和html的一样。
- xml的语法规则:
①所有 XML 元素都须有关闭标签(也就是闭合)
②XML 标签对大小写敏感
③XML 必须正确地嵌套
④XML 文档必须有根元素:根元素就是顶级元素, 没有父标签的元素,叫顶级元素。
<1>根元素是没有父标签的顶级元素,而且是唯一一个才行
⑤XML 的属性值须加引号
⑥XML 中的特殊字符: >;表示大于号,<;表示小于号
⑦文本区域(CDATA 区):CDATA 语法可以告诉 xml 解析器,我 CDATA 里的文本内容,只是纯文本,不需要 xml 语法解析。
<1>CDATA 格式: <![CDATA[ 这里可以把你输入的字符原样显示,不会解析 xml ]]>
XML解析技术
XML解析技术介绍:
- 不管是 html 文件还是 xml 文件它们都是标记型文档,都可以使用 w3c 组织制定的 dom 技术来解析。
- 早期 JDK 为我们提供了两种 xml 解析技术
DOM
和Sax
(已经过时,但我们需要知道这两种技术) - dom 解析技术是 W3C 组织制定的,而所有的编程语言都对这个解析技术使用了自己语言的特点进行实现。 Java 对 dom技术解析标记也做了实现。
sun 公司在 JDK5 版本对 dom 解析技术进行升级:SAX( Simple API for XML ) SAX 解析,它跟 W3C制定的解析不太一样。
它是以类似事件机制通过回调告诉用户当前正在解析的内容。 它是一行一行的读取 xml 文件进行解析的。不会创建大量的dom 对象。所以它在解析 xml 的时候,在内存的使用上和性能上。都优于 Dom 解析。
第三方的解析:
jdom 在 dom 基础上进行了封装 。
dom4j 又对 jdom 进行了封装。
- pull 主要用在 Android 手机开发,是在跟 sax 非常类似都是事件机制解析 xml 文件。
dom4j解析技术:
- dom4j 英文缩写 :document for java
- 由于 dom4j 它不是 sun 公司的技术,而属于第三方公司的技术,我们需要使用 dom4j 就需要到 dom4j 官网下载 dom4j的 jar 包。
- 步骤:
①创建 SAXReader 对象,通过read()方法来读取 xml 文件,获取 Document 对象
②通过 Document 对象的getRootElement()方法拿到XML 的根元素对象
③通过根元素.elelemts(标签名); 可以返回一个集合
④遍历该集合: - 方法:
①通过集合元素.attribute(属性名)得到属性对象。
②通过集合元素.element(元素名)得到子元素对象。
③通过子元素对象.getText()得到子元素起始标签和结束标签之间的文本内容。 - 注意:
①SAXReader可以通过多种方式读取xml数据,并返回Document格式的对象。
②通过查看源码可以看出read()方法接收File,InputStream和URL等格式的参数来读取相应的xml数据。
XML的约束
XML的约束介绍:
- 作用:
规定xml中可以出现哪些元素及哪些属性,以及他们出现的顺序。
- 约束的分类:
①DTD约束
:struts hiebernate等等
②SCHEMA约束
:tomcat spring等等 - 约束详解:既然是约束就和xml有联系,所以约束要和xml关联,xml的相关限制才才生效。和xml的关联 (一般都会提供好,复制过来即可,有时候连复制都不需要)
xml约束关联:
内部关联
格式: <!DOCTYPE 根元素名 [dtd语法]>
外部关联-系统关联
格式: <!DOCTY