数据库技术六:XML

本文详细介绍了XML,包括其作用、语法、约束(如DTD和Schema)、解析方式(DOM和SAX)以及在JDBC中的应用。XML用于数据存储、配置文件,具有严格的语法。文中还讲解了DOM4j的使用和XPath查询,提供了XML约束和解析的实例。
摘要由CSDN通过智能技术生成

目录

1. XML基本介绍

1.1 XML的作用

1.2 XML的语法

1.2.1 XML 文档声明格式

1.2.2 元素

1.2.3 属性

1.2.4 注释

1.2.5 使用 XML 描述数据

2. XML约束

2.1 DTD约束

2.2 Schema约束

3. XML解析

3.1 XML 解析方式

3.2 XML 常见的解析

3.3 Dom4j 的使用

3.4 XPath 方式读取 XML

4. JDBC 自定义 XML


1. XML基本介绍

XML -- Extensible Markup Language,即可扩展标记语言。

XML 特点:可扩展的,标签都是自定义的;语法十分严格。

1.1 XML的作用

存储数据:通常,我们在数据库中存储数据。不过,如果希望数据的可移植性更强,我们可以把数据存储 XML 文件中。

配置文件:更多是作为各种技术框架的配置文件使用。

在网络中传输:客户端可以使用 XML 格式向服务器端发送数据,服务器接对 XML 格式数据进行解析。

1.2 XML的语法

1.2.1 XML 文档声明格式

文档声明必须为结束且必须写在第一行。

versioin:指定 XML 文档版本,是必需属性,因为不会选择 1.1,只会选择 1.0。

encoding:指定当前文档的编码,是可选属性,默认值是 utf-8。

<?xml version="1.0" encoding="UTF-8"?>

1.2.2 元素

Element 元素:是 XML 文档中最重要的组成部分。

命名规则:

  1. 不能使用空格,不能使用冒号
  2. XML 标签名称区分大小写
  3. XML 必须有且只有一个根元素
  4. XML 必须有且只有一个根元素,它是所有其他元素的父元素,比如以下 users 就是根元素。
<?xml version="1.0" encoding="utf-8" ?>
<users>
</users>

普通元素的结构开始标签、元素体、结束标签组成。

<hello>大家好</hello>

元素体:元素体可以是元素,也可以是文本。

<hello>
    <a>您好</a>
</hello>

空元素:空元素只有开始标签,而没有结束标签,但元素必须自己闭合。

<close/>

1.2.3 属性

  1. 属性是元素的一部分,它必须出现在元素的开始标签中。
  2. 属性的定义格式:属性名 = "属性值",其中属性值必须使用单引或双引。
  3. 一个元素可以有 0 ~ N 个属性,但一个元素中不能出现同名属性。
  4. 属性名不能使用空格、冒号等特殊字符,且必须以字母开头。
<bean id="1" class="x"></bean>

1.2.4 注释

XML 的注释:
以 <!-- 开始,以 --> 结束
注释内容会被XML解析器忽略。

1.2.5 使用 XML 描述数据

<?xml version="1.0" encoding="UTF-8" ?>
<employees>
    <employee eid="2">
        <ename>林黛玉</ename>
        <age>20</age>
        <sex>女</sex>
        <salary>5000</salary>
        <empdate>2019-03-14</empdate>
    </employee>
    <employee eid="3">
        <ename>杜甫</ename>
        <age>40</age>
        <sex>男</sex>
        <salary>15000</salary>
        <empdate>2010-01-01</empdate>
    </employee>
</employees>

2. XML约束

在 XML 技术里,可以编写一个文档来约束一个 XML 文档的书写规范,这称之为 XML 约束。

常见的 XML 约束:DTD,Schema。

“用户程序员”阅读 XML 约束文档,编写 XML 文档;
软件框架编写 XML 约束文档,解析 XML 文档;
XML 约束文档规定了 XML 文档的书写规则。

2.1 DTD约束

DTD - Document Type Definition,文档类型定义,用来约束 XML 文档。规定 XML 文档中元素的名称,子元素的名称及顺序,元素的属性等。

通过框架提供的 DTD 约束文档,编写对应的 XML 文档。常见框架使用 DTD 约束有:Struts2、hibernate 等。

引入 DTD 文档到 XML 文档中有两种方式:

  • 内部 DTD -- 将约束规则定义在 XML 文档中。
  • 外部 DTD -- 将约束的规则定义在外部的 DTD 文件中。

创建约束文件 student.dtd

<!ELEMENT students (student+) >
<!ELEMENT student (name,age,sex)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT sex (#PCDATA)>
<!ATTLIST student number ID #REQUIRED>
<!--
ELEMENT: 用来定义元素
students (student+) : 代表根元素 必须是 <students>
student+ : 根标签中至少有一个 student子元素, + 代表至少一个
student (name,age,sex): student 标签中包含的子元素,按顺序出现
#PCDATA: 是普通文本内容
ATTLIST: 用来定义属性
student number ID #REQUIRED
student子元素中 有一个ID属性叫做 number,是必须填写的
ID: 唯一 值只能是字母或者下划线开头
-->

引入约束文档到 student.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE students SYSTEM "student.dtd">
<students>
    <student number="s1">
        <name>布莱尔</name>
        <age>22</age>
        <sex>男</sex>
    </student>
    <student number="s2">
        <name>张三</name>
        <age>55</age>
        <sex>男</sex>
    </student>
</students>

 2.2 Schema约束

Schema 是新的 XML 文档约束,比 DTD 强大很多,是 DTD 替代品。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值