目录
  1. 1. XML文档
    1. 1.1. XML 概念
    2. 1.2. 语法
    3. 1.3. xml组成部分
    4. 1.4. xml 的约束
      1. 1.4.1. 分类
    5. 1.5. Beans
    6. 1.6. xmlns
    7. 1.7. 解析
    8. 1.8. XML文档常见的解析器
XML文档

XML文档

关于xml文档的一些解释
最近学习JAVA后端,用到了xml文档,但是只会粘贴复制,简单配置一些关于Spirng或者Maven的东西,其中有些标签却不明白什么意思,所以写了这篇文章来好好理解一下。

XML 概念

1、Extensible Markup Language 可扩展标记语言

  • 可扩展:标签都是自定义的。

2、功能

  • 存储数据,把xml作为配置文件
  • 在网络中传输

3、xml与html的区别

  • xml标签是自定义得,html标签是预定义得。
  • xml得语法严格,html语法松散
  • xml是存储数据的,html是展示数据的

语法

1、xml第一行必须定义为文档声明
2、xml文档中有且仅有一个根标签
3、 标签必须正确关闭
4、属性值必须使用引号引起来
5、xml标签名称区分大小写

xml组成部分

1、文档声明

  • 格式:<? xml 属性列表 ?>
  • 属性列表:
    1、version:版本号,是必须的属性
    2、encoding:编码方式.默认值:ISO-8859-1
    3、standalone:是否独立
    • yes:不依赖其他文件
    • no:依赖其他文件

2、指令
3、标签
标签名称是自定义的,但是有一些规则。

  • 名称可以包含字母、数字以及其他的字符
  • 名称不能以数字或者标点符号开始
  • 名称不能以字母 xml 等开始
  • 名称不能有空格

4、属性
5、文本内容

xml 的约束

约束文档:用于规定xml文档的书写规则,使得框架可以解析它。是由框架方编写.

分类

1、DTD:简单的约束技术

  • 引入dtd文档到xml文档中
    1、内部dtd:将约束规则定义在xml文档中
    2、外部dtd:将约束规则定义在外部的dtd文件中
    本地的:`<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置"`
    网络的:`<DOCTYPE 根标签名 PUBLIC "dtd文件名字" "dtd文件的url"`
  • 缺陷:不能规定标签里面的输入的内容。比如一个标签是age,但是我们可以输入1000、字符串等这些不合理的输入。

2、Schema:一种复杂的约束技术

  • 引入 xsd文档
    1、填写xml文档的根元素
    2、引入xsi前缀:xmlns:xsi = “”
    3、引入xsd文件命名空间 xsi:schemaLocation=”一个url xxx.xsd”

Beans

这个标签是文档的根元素,其他所有元素都写在根元素中。

xmlns

xmlns:xmlNameSpace的缩写。可叫做xml命名空间。当两个文档都包含带有不同内容和定义的

元素,就会发生命名冲突。XML 解析器是无法确定如何处理这类冲突。为了解决上述问题,xmlns就产生了。xmlns表示了默认的NameSpace,例如Spring XML文档中的

1
xmlns="http://www.springframework.org/schema/beans"

这一句表示该文档默认的XML Namespace为http://www.springframwork.org/schema/beans 对于默认的Namespace中的元素,可以不使用前缀。例如Spring XML文档中的

1
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

这句话是对xsi这个NameSpace 的定义。给这个URL起的别名为xsi。

1
2
3
xsi:schemaLocation=
"http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">

xsi:schemaLocation属性其实是Namespace为http://www.w3.org/2001/XMLSchema-instance 里的schemaLocation属性.之前的声明使得我们可以写为xsi:schemaLocation.

它定义了XML Namespace和对应的XSD(Xml Schema Definition)文档的位置的关系。它的值由一个或多个URI引用对组成,两个URI之间以空白符分隔(空格和换行均可)。第一个URI是定义的XML Namespace的值,第二个URI给出Schema文档的位置,Schema处理器将从这个位置读取Schema文档,该文档的targetNamespace必须与第一个URI相匹配

解析

操作xml文档,将文档中的数据读取到内存中

解析xml的方式:

DOM思想:将标记语言文档一次性加载进内存,在内存中形成一棵dom树

优点:操作方便,可以对文档进行crud的所有操作
缺点:占内存

SAX:逐行读取。基于事件驱动的。里面有一个指针,碰到一个标签就触发一个动作
优点:基本不占内存
缺点:只能读取,不能增删改

XML文档常见的解析器

1、JAXP:sun公司提供的解析器。支持dom和sax两种思想
2、DOM4J
3、Jsoup
4、PULL:Android操作系统内置的解析器

文章作者: Dr-xinyu
文章链接: https://dr-xinyu.github.io/2020/10/29/xml%E6%96%87%E6%A1%A3/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 心雨
打赏
  • 微信
  • 支付寶