XML以及两种XML约束的介绍

XML和XML约束

1.XML概述

1.1 介绍XML

HTML:Hyper Text Markup Language 超文本标记语言,由各种标签组成。

  1. 英文:XML eXtensible Markup Language 可扩展标记语言
  2. 标签组成:也是一种标记语言,文件内容由各种标签组成。
1.2 作用
  1. 数据交换,用于不同系统或不同数据库之间的数据交换。
  2. 作为配置文件,用于Spring等各种框架的配置。

数据库连接池的配置

<default-config>
    <!--数据库连接配置-->
    <!--驱动-->
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <!--连接字符串-->
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/day19</property>
    <!--用户名-->
    <property name="user">root</property>
    <!--密码-->
    <property name="password">root</property>

    <!--与连接池相关的配置-->
    <!--初始连接数-->
    <property name="initialPoolSize">5</property>
    <!--最大连接数-->
    <property name="maxPoolSize">10</property>
    <!--等待多久以后超时-->
    <property name="checkoutTimeout">3000</property>
</default-config>
1.3 XML和HTML的区别
区别HTML超文本标记语言XML可扩展标记语言
功能用于表示层,直接面向用户。用于数据展示用于数据访问层,用于数据的存储。
大小写不区分大小写区分大小写
语法严谨不严谨,有错误浏览器也可以解析非常严谨,只要有错误,解析器就不能解析
可扩展性所有标签都有自己的功能,而且是固定好的可以扩展的,所有的标签都是程序员自己创建出来。
1.4 XML的组成元素
  • 文档声明
<?xml version="1.0" encoding="utf-8" ?>

声明的三个属性

version //使用的XML版本,我们取值为1.0
encoding //XML使用字符集,如果省略,默认是utf-8
standalone //很少使用,说明当前的XML文件是否是一个独立的文件,默认是yes。
  • 元素ELement
如:<person>就是元素,又称为标签
//大小写区分
//命名不能有空格,不能有冒号
//每个文档只能有一个根元素
  • 属性Atrribute
<person id="110">,id是元素person的一个属性
// 属性必须出现在开始标签
// 必须使用引号,可以使用双引号也可使用单引号
// 一个标签可以有多个属性,单不能有同名属性
  • 注释Comment
<!-- 注释内容 -->
  • 实体字符(在xml中不能使用的字符使用转义字符替代)
说明字符转义字符
小于<&lt;
大于>&gt;
双引号"&quot;
单引号&apos;
与符号&&amp;
  • 字符数据区

如果出现了大量需要转义的字符,又不想使用实体字符,可以使用字符数据区。

格式:<![CDATA[文本数据]]>
举例:
<sql>
    <![CDATA[
        select * from student where age < 20
    ]]>
</sql>
  • 处理指令(很少使用)
<?xml-stylesheet type="text/css" href="文件名.css">
<!--可以导入样式。--> 

2. XML文件的约束

2.1 约束的作用和分类

​ 用来约束XML的数据,一个XML文件中能够出现哪些标签。每个标签中能够出现哪些子标签,每个标签能够有哪些属性。每个标签的主体内容可以出现哪些。

两种XML约束
DTD约束
Schema约束
2.2 DTD约束

DTD:文档类型定义 Document Type Definition。

作用:用来约束XML文档,保证XML文件正确性和数据的有效性。

使用步骤

  1. 创建book.dtd约束文件(一般有现成的约束文件,不用自己写)
<!ELEMENT 书架 (+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>
  1. 创建xml文件,导入写好的dtd文件
<?xml version="1.0" encoding="UTF-8" ?>
<!--引入dtd约束文件-->
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
    <>
        <书名>人鬼情喂鸟</书名>
        <作者>保罗.克林吨</作者>
        <售价>300</售价>
    </>
    <>
        <书名>JavaEESSH</书名>
        <作者>NewBoy</作者>
        <售价>38</售价>
    </>
</书架>

导入约束文件的两个格式

<!--表示引用系统本地的DTD文件,使用范围比较窄,通常用于个人或公司或团队。-->
<!DOCTYPE 根元素 SYSTEM "DTD文件">
<!--表示公共DTD约束文件,通常在互联网上广泛使用的,后期使用这种比较多的。-->
<!DOCTYPE 根元素 PUBLIC "文件描述" "DTD文件">
2.3 Schema约束

作用:是一种用来代替DTD约束的新的方式,功能上比DTD更加强大,可以验证数据类型。本身还是一个XML文件。

扩展名:xsd- XML Schema Document

使用步骤

  1. 新建schema约束文件bookshelf.xsd(一般有现成的约束文件,不用自己写)
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.zmysna.cn"
           elementFormDefault="qualified">
        <xs:element name='书架' >
                <xs:complexType>
                        <xs:sequence maxOccurs='unbounded' >
                                <xs:element name='' >
                                        <xs:complexType>
                                                <xs:sequence>
                                                     <xs:element name='书名' type='xs:string' />
                                                     <xs:element name='作者' type='xs:string' />
                                                     <xs:element name='售价' type='xs:double' />
                                                </xs:sequence>
                                        </xs:complexType>
                                </xs:element>
                        </xs:sequence>
                </xs:complexType>
        </xs:element>
</xs:schema>
  1. 创建xml文件,导入写好的dtd文件
    • 导入文件的语法
<根元素 xmlns="命名空间" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="命名空间 xsd约束文件名">
</根元素>

创建xsd文件并导入

<?xml version="1.0" encoding="UTF-8" ?>
<书架 xmlns="http://www.itcast.cn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.itcast.cn bookshelf.xsd">
<>
<书名>人鬼情喂鸟</书名>
<作者>张三</作者>
<售价>38.6</售价>
</>
</书架>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值