xml的介绍与使用

xml的概念与作用?

概念:可扩展标记语言。(用于数据访问层,数据的存储)
扩展:所有的标记都是自定义的,由程序员自己去扩展。
标记语言:整个文件由标记组成。

一、作用:

  1. 用于数据交换:可以用于不同的语言或不同的系统之间进行数据的交换。
  2. 配置文件:用于框架或工具的配置文件(主要使用的功能)

二、注意事项

  1. xml严格区分大小写
  2. 语法非常严谨,只要有错误,解析器就不能解析。

xml的组成

XML文件一共由7个组成元素构成:

  1. 文档声明 Document Declare
  2. 元素 Element
  3. 属性 Attribute
  4. 注释 Comment
  5. 实体字符 Entity Character
  6. 字符数据区 Character Data
  7. 处理指令 Process Instruction

主要介绍一下 文档声明,实体字符,字符数据区。

一、文档声明

格式: <?xml 开头 ?>结尾
位置:必须出现在第一行第一列,不然会报错。
version:使用的版本号
encoding:XML使用字符集,如果省略,默认是utf-8

二、实体字符
在这里插入图片描述
实体字符的应用

1.错误写法:
<sql>
    select * from employee where id >3
</sql>
2.正确写法:
<sql>
    select * from employee where id &gt;3
</sql>

三、字符数据区
作用:如果出现了大量需要转义的字符,又不想使用实体字符,可以使用字符数据区CDATA,字符数据区中的数据不由解析器来解析,都做为纯文本来使用。
格式:<![CDATA[ 开头 ]]>结尾

字符数据区

<sql>
    <![CDATA[
        select * from employee where id>3
    ]]>
</sql>

一个格式良好的XML有以下特点

  1. 必须以XML声明开头
  2. 必须拥有唯一的根元素
  3. 开始标签必须与结束标签相匹配
  4. 元素对大小写敏感
  5. 所有的元素必须关闭
  6. 所有的元素必须正确地嵌套
  7. 特殊字符必须使用实体字符

四、xml文件的约束
XML文件约束作用:用来约束XML的数据,一个XML文件中能够出现哪些标签。每个标签中能够出现哪些子标签,每个标签能够有哪些属性。每个标签的主体内容可以出现哪些。
两种XML约束
1.DTD约束
2.Schema约束

4.1DTD约束
DTD:文件类型定义
作用: 用来约束XML文档,保证XML文件正确性和数据的有效性。
在这里插入图片描述

DTD的使用
book.dtd文件代码如下:

<!ELEMENT 书架 (+)>
<!ELEMENT 书 (书名,作者,售价)>
<!ELEMENT 书名 (#PCDATA)>
<!ELEMENT 作者 (#PCDATA)>
<!ELEMENT 售价 (#PCDATA)>

books.xml文件代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!--引入dtd约束文件-->
<!DOCTYPE 书架 SYSTEM "book.dtd">
<书架>
    <>
        <书名>斗破苍穹</书名>
        <作者>天蚕土豆</作者>
        <售价>30</售价>
    </>
    <>
        <书名>斗罗大陆</书名>
        <作者>唐家三少</作者>
        <售价>38</售价>
    </>
</书架>

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

Schema使用的重要原因:
1.Schema能验证数据类型
2. 因为DTD是一个普通的文本文件,如果DTD本身有错误,也不容易查找出来。

bookshelf.xsd文件代码如下

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.baidu.com">
        <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>

targetNamespace表示命名空间,我们使用xsd约束的时候,用来引入到XML文件中!!
命名空间的含义与作用:

  1. 如果有多个约束文件中有相同的标签,使用不同的前缀来区分,引入不同的xsd中约束。
  2. 类似于Java中包
  3. 如果没有前缀的约束,称为默认命名空间
    schema约束文件bookshelf.xsd的语法
    在这里插入图片描述
    bookshelf.xsd文件代码
        <?xml version="1.0" encoding="UTF-8" ?>
<书架 xmlns="http://www.baidu.com"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.baidu.com bookshelf.xsd">
    <书>
        <书名>斗破苍穹</书名><!--这里就只能输入String类型的数字,因为xsd文件定义了数据类型-->
        <作者>天蚕土豆</作者><!--这里就只能输入String类型的字符串,因为xsd文件定义了数据类型-->
        <售价>30</售价><!--这里就只能输入double类型的数字,因为xsd文件定义了数据类型-->
    </书>
    <书>
        <书名>斗罗大陆</书名>
        <作者>唐家三少</作者>
        <售价>30</售价> 
    </书>
</书架>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值