XML学习

XML概念

XML指可扩展标记语言(EXtensible Markup Language)
XML没有预定义标签,需要自行定义标签<标签></标签>

XML特点

  1. XML数据以纯文本格式存储
  2. 实现不同应用程序之间的数据通信
  3. 实现不同平台间的数据共享
  4. 实现不同平台间的数据通信
  5. 使用XML将不同的程序,不同的平台间联系起来

在这里插入图片描述

XML的作用

数据存储和数据传输,可以用来做配置文件,javaEE开发中用xml来配置文件,SSM,DUBOO分布式框架等等

XML和HTML之间的差异

HTML里面的标签是已经设计好的,我们需要学习使用XML是自己来定义标签,以<标签></标签>格式定义

一个标准的XML文档:

<?xml version="1.0" encoding="UTF-8" ?>
<books>
    <book id="1001">
        <name>java</name>
        <author>张三</author>
        <price>98.5</price>
    </book>
</books>

在这里插入图片描述
可以看出xml是树形结构,由成对的标签构成元素,元素中间加入文本,元素之间有父子元素结构.

XML基本语法

<?xml version="1.0" encoding="UTF-8" ?>
<books>
    <book id="1001">
        <name>java</name>
        <author>张三</author>
        <price>98.5</price>
    </book>
</books>

<!-- <?xml version='1.0' encoding='UTF-8'?>文档的声明必须写在xml文档第一行,对当前xml文件进行约定:
<?xml>文档声明标签
version指定解析当前xml文件的xml解析器版本为1.0,encoding='UTF-8',当前文档编码类型

  1. 有且只有一个根元素
  2. XML文档声明必须放在文档第一行
  3. 所有标签必须成对出现
  4. XML标签严格区分大小写
  5. XML元素可以嵌套其他元素
  6. XML属性必须加引号
  7. XML中可以应用适当注释

XML元素

XML元素指的是开始标签到结束标签的部分,一个元素中可以包含其他元素,普通文本,属性,以上的混合

XML命名规则

  1. 名称可以包含字母,数字以及其他字符
  2. 名称不能以数字或者标点符号开始
  3. 名称不能以字母xml开始(xml是关键字)
  4. 名称不能含空格

XML约束

为了解决对数据描述的模棱两可,解析数据获取不知道取那个值,所以使用xml约束

DTD

语法自成一派,早期出现,可读性较差

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE student [
        <!ELEMENT student (name,school,age,loc)>  <!--指定约束student标签下只能包含子标签:name,age,school,loc四个标签,出现顺序也要一致-->
        <!ELEMENT name     (#PCDATA)>  <!--对name标签的描述,数据类型是:#PCDATA文本类型-->
        <!ELEMENT age    (#PCDATA)>
        <!ELEMENT school (#PCDATA)>
        <!ELEMENT loc    (#PCDATA)>
        ]>
<student>
    <name>李四</name>
    <school>长沙市一中</school>
    <age>22</age>
    <loc>长沙岳麓区</loc>
</student>

元素个数:
+ 一个或多个
* 零个或多个
? 零个或一个

Schema技术

Schema 是 DTD 的代替者,名称为 XML Schema,用于描述XML 文档结构,比 DTD 更加强大,最主要的特征之一就是XML Schema 支持数据类型

Schema 是用 XML 验证 XML 遵循 XML 的语法

Schema 可以用能处理 XML 文档的工具处理

在一个xml文档中要引入多个约束文件时得使用Schema

<?xml version='1.0' encoding='UTF-8'?>
<student
xmlns="http://www.w3school.com.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3school.com.cn abc.xsd">  <!--引入外部Schema约束-->

    <name>李四</name>
    <age>22</age>
    <school>长沙市一中</school>
    <school>长沙市一中</school>
    <loc>长沙岳麓区</loc>
</student>
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="http://www.w3school.com.cn"
           xmlns="http://www.w3school.com.cn"
           elementFormDefault="qualified">

    <xs:element name="student">
        <xs:complexType>  <!--complexType:表示当前元素是复合元素(含有子元素的称为复合元素)-->
            <xs:sequence>  <!--表示子元素按序列来约束-->
                <xs:element name="name" type="xs:string"/>
                <xs:element name="age" type="xs:string"/>
                <xs:element name="school" type="xs:string"/>
                <!--如果含有多个相同的子元素,就写多个-->
                <xs:element name="school" type="xs:string"/>
                <xs:element name="loc" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

</xs:schema>
  • xmlns表示引入Schema的命名空间,来验证Schema文件结构本身是否合法,xs表示xmlns的别名
  • targetNamespace目标命名空间
  • xmlns="http://www.w3school.com.cn":引入目标命名空间
  • elementFormDefault="qualified":引入xsd的全局元素的时候需要添加前缀xs
    unqualified: 引入xsd的全局元素的时候不需要添加前缀xs

所有的Schema文档使用schema作为其根元素

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-irony-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值