数据库技术:XML

本文介绍了XML的基本概念和特点,包括XML的功能、语法、约束以及解析方式。重点讲解了XML的文档声明、元素、属性、注释,以及DTD和Schema约束。还探讨了XML解析器如DOM4j的使用,以及XPath在读取XML数据中的应用。最后提到了XML在JDBC中的应用,展示了如何自定义XML配置文件和使用XPath工具类。
摘要由CSDN通过智能技术生成

XML

Introduction to XML

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

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

Functions of XML

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

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

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

想了解更多,欢迎关注我的微信公众号:Renda_Zhang

XML Syntax

XML 文档声明格式

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

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

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

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

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

命名规则:

  1. 不能使用空格,不能使用冒号
  2. XML 标签名称区分大小写
  3. XML 必须有且只有一个根元素

XML 必须有且只有一个根元素,它是所有其他元素的父元素,比如以下 users 就是根元素。

<?xml version="1.0" encoding="utf-8" ?>
<users>
</users>

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

<hello>大家好</hello>

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

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

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

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

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

使用 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>

XML Constraints

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

常见的 XML 约束:DTD,Schema。

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

DTD Constraint

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>
Schema Constraint

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

Schema 本身也是 XML 文档,但 Schema 文档的扩展名为 xsd,而不是 xml

Schema 功能更强大,内置多种简单和复杂的数据类型。

Schema 支持命名空间(一个 XML 中可以引入多个约束文档)。

命名空间:指的是一个环境,所用的标签来自于哪个环境定义的。

创建 student.xsd

xmlns – 表示此文档默认的命名空间是什么

xmlns:xsd – 表示数据类型等定义的来源

targetNamespace – 表示文档中要定义的元素来自哪个命名空间

elementFormDefault – 表示要求 XML 文件的每一个元素都要有命名空间指定

<?xml version="1.0"?>
<xsd:schema xmlns="http://www.xxx.com/xml"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="http://www.xxx.com/xml" 
            elementFormDefault="qualified">
    <xsd:element name="students" type="studentsType"/>
    <xsd:complexType name="studentsType">
        <xsd:sequence>
            <xsd:element name="student" type="studentType" minOccurs="0" 
                         maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="studentType">
        <xsd:sequence>
            <xsd:element 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值