XML

什么是XML

XML全称:eXtensible Markup Language 可扩展标记语言

可扩展:XML所有标记(标签)都是自定义的,都是通过扩展得来的。
标记语言:整个文件由各种标签(元素)组成。

XML作用

  1. 数据交换:不同的,计算机语言之间,不同的操作系统之间,不同的数据库之间进行数据交换
  2. 配置文件:用于各种框架的配置文件

XML由七种组成元素构成

  1. 文档的声明
  2. 元素Element
  3. 属性Attribute
  4. 注释Comment
  5. 实体字符,例如:&lt;&gt;相当于<号 和 >号
  6. 字符数据区
  7. 处理指令

文档声明的三个属性

  • version:指定XML文档使用的版本号,取值是"1.0"
  • encoding:文档使用的字符集,默认是"uft-8"
  • standalone:很少使用,是否是一个单独的XML文件,取值是true或false。默认是true

tips:

  1. 一个XML只能有1个根元素
  2. XML标签命名不能有空格和冒号

格式良好的XML有以下特点

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

xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<contactList>
    <contact id="1">
        <name>潘金莲</name>
        <gender></gender>
        <email>panpan@itcast.cn</email>
    </contact>
    <contact>
        <name>武松</name>
        <gender></gender>
        <email>wusong@itcast.cn</email>
    </contact>
    <contact id="3">
        <name>武大狼</name>
        <gender></gender>
        <email>wuda@itcast.cn</email>
    </contact>
</contactList>

XML的两种约束

  1. DTD约束文件
    DTD:Document Type Definition 文档类型定义,DTD文件是一个纯文本文件
  2. Schema约束文件

为什么要有约束

因为XML文件的标签和属性可以随意扩展,有时我们必须要限制每个文档有哪些元素,每个元素有哪些子元素,每个元素有哪些属性,属性的值是什么类型等。从而保证XML文档格式和数据的正确性。

导入DTD文件的两种格式

<!DOCTYPE 根元素 SYSTEM “DTD文件”>用于本地,公司内部,小范围使用DTD文件
<!DOCTYPE 根元素 PUBLIC “文件描述” “DTD文件”>广泛使用的,在互联网上通常的DTD文件

bookshelf.dtd文件内容如下:

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

books.xml代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE 书架 SYSTEM "bookshelf.dtd"><!--导入dtd约束文件-->
<书架>
    <>
        <书名>人鬼情喂鸟</书名>
        <作者>小柳</作者>
        <售价>25</售价>
    </>
    <>
        <书名>Java神书</书名>
        <作者>小李</作者>
        <售价>45</售价>
    </>
</书架>

为什么要有Schema约束

DTD的不足:

  1. 不能检查元素的数据类型
  2. 因为本身是一个纯文本,如果本身有错误,也不容易找出问题所在。

约束文件扩展名(XML Schema Definition)XML模式定义:xsd

约束文件本身也是XML文件,所以也有根元素,根元素的名字叫:schema

备注:一个xml文件可以有多个xsd约束文件

xsd文件内容解析

<?xml version="1.0" encoding="UTF-8" ?>
<!--xs:前缀,因为一个xml文件可以引入多个约束文件约束自己,为了区分到底是使用的哪个约束文件的标签-->
<!--http://www.w3.org/2001/XMLSchema:固定写法,引用命名空间,官方制作xsd约束-->
<!--targetNamespace="http://www.itcast.cn":命名空间,给被约束文件使用的-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.itcast.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>

books2.xml使用schema约束文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!--xmlns:xsi固定写法,表示这是一个实例文档-->
<书架 xmlns="http://www.itcast.cn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://www.itcast.cn bookshelf.xsd">
    <>
        <书名>Java</书名>
        <作者>张三</作者>
        <售价>38.6</售价>
    </>
    <>
        <书名>朗读的技巧</书名>
        <作者>李四</作者>
        <售价>50</售价>
    </>
</书架>

Schema约束相比DTD的优点?

  1. 可以检查数据类型
  2. 本身也是XML文件,可以被官方约束
  3. 功能上更强大,以后会淘汰DTD约束
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值