当前位置: 首页 > news >正文

JavaWeb开发(六)XML介绍

1. XML介绍

1.1. 什么是XML

  (1)XML 指可扩展标记语言(EXtensible Markup Language)XML 是一种很像HTML的标记语言。
  (2)XML 的设计宗旨是传输数据(目前主要是作为配置文件),而不是显示数据。
  (3)XML 标签没有被预定义。您需要自行定义标签。
  (4)XML 被设计为具有自我描述性。
  (5)XML是W3C的推荐标准。
  可在不同的平台中使用,比如javaphp都可以使用xml作为文件配置和数据传输的工具。

1.2. 常见应用场景

  XML 应用于 Web 开发的许多方面,常用于简化数据的存储和共享。
  (1)存储数据,配置相关信息(目前主要应用范围)。
在这里插入图片描述
  (2)传输数据的载体(现在很少使用,基本使用json传输数据。

1.3. XML的结构

  XML是一种树状结构
  XML 文档必须包含根元素。该元素是所有其他元素的父元素。XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。

<root>
<child>
<subchild>.....</subchild>
</child>
</root>

1.4. XML语法

  (1)所有XML元素都须有关闭标签(在HTL,经常会看到没有关书标签的元素)
  (2)XML, 标签对大小写敏感,这是错误的</message)
  (3)XML文档必须有根元素
  (4)XML的属性值须加引号<note date=”12/11/2007">
  (5)XML中的注释<!–This isacomment –
  (在XML中编写注释的语法与 HTML的语法很相似)

1.5. XML元素

1.5.1. 什么是XML元素

  XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
  一个元素可以包含:
  (1)其他元素
  (2)文本
  (3)属性

1.5.2. XML命名规则

  XML 元素必须遵循以下命名规则;
  (1)名称可以包含字母、数字以及其他的字符;
  (2)名称不能以数字或者标点符号开始;
  (3)名称不能以字母xml(或者XML、Xml 等等)开始;
  (4)名称不能包含空格。

1.6. XML属性

1.6.1. 什么是XML属性

  XML元素具有属性,类似HTML。
  属性(Attribute)提供有关元素的额外信息。

1.6.2. 属性使用规范

  XML,属性必须加引号。
  且不建议是用属性,因为元素基本可以完成属性的功能,且更易读。

1.7. XML解析

1.7.1. XML解析概述

  当我们将数据存储在xm1文件之后,我们希望通过程序去读取xm1的内容,通过java基础的I0也是可以读取的,但是十分的麻烦。因此出现了一些解析的方式。
  常见的有:DOM解析,SAX解析。
  由于目前xml很少作为传输数据的方式,所以解析相关的方法用的也很少,作为了解内容。

1.7.2. 解析方式

  (1)DOM解析:将整个xm1文件加载到内存中,并解析成一个Docunment对象。
  优点:无素与元素之间保留了层级结构关系,可以进行增删改查。
  缺点:xml文件过大时,可能产生内存溢出问题。
  (2)SAX解析:速度更快,更有效的方式。它会逐行扫描文档,在扫描的同时进行解析。
  优点:速度更快,可处理大的文件。
  缺点:只能读取,无法修改,读取后将释放资源。

1.8 .XML约束

1.8.1. 什么是DTD

  DTD:文档类型定义,用来约束XML文件,规定文档中元素名称,子元素的名称及顺序,元素的属性等。
  我们并不要求学会编写DTD约束文档,能够看懂即可。

1.8.2. Schema

1.8.2.1. 什么是Schema

  Schema是XML文档约束,它是DTD约束的替代品,相较于DTD更强大扩展名市xsd,通过命名空间引入使用。

1.8.2.2. 命名空间

  如果一个文档中有多个Schema文件,而些文件如果定义了相同的名称的元素,就会出现名字冲突。这就类似于java中如果没有包名,那么class文件就很容易冲突是一样的道理。
  引入方式:

默认隐式:xmins="http://xmns.jcp.org/xm1/ns/javaee"
显式方式:xmIns:xsd="http://xmlns.jcp.org/xml/ns/javaee"

在这里插入图片描述

1.8.2.3. 使用Schema

  (1)将约東文件copy到对应工程中。
  (2)打开Schema约束copy命名空间。
  (3)编写xm1文件。

http://www.lryc.cn/news/517340.html

相关文章:

  • 使用pbootcms开发一个企业官网
  • Linux C编程——文件IO基础
  • 【信息系统项目管理师】高分论文:论信息系统项目的风险管理(人民医院的信息系统)
  • UE播放声音
  • Docker Compose 启动 Harbor 并指定网络
  • WebSocket 实战案例:从设计到部署
  • selenium合集
  • JVM生产环境常用参数配置及调优建议
  • Spring Boot 3 实现 MySQL 主从数据库之间的数据同步
  • 【小程序开发】- 小程序版本迭代指南(版本发布教程)
  • MySQL 间隙锁避免“可重复读”出现“幻读”
  • 揭秘区块链隐私黑科技:零知识证明如何改变未来
  • JavaWeb开发:从入门到精通
  • 2025年01月07日Github流行趋势
  • c#集成npoi根据excel模板导出excel
  • Vue2移动端(H5项目)项目封装switch组件支持动态设置开启关闭背景色、值及组件内显示文字描述、禁用、switch 的宽度
  • MATLAB语言的语法糖
  • 数字IC设计高频面试题
  • OpenCV 4.5至4.10版本更新概述
  • OSPF - LSA对照表
  • 游戏引擎学习第77天
  • 【项目实战1】五子棋游戏
  • HTML5 动画效果:淡入淡出(Fade In/Out)详解
  • Conmi的正确答案——Cordova使用“src-cordova/config.xml”编辑“Android平台”的“uses-permission”
  • 在Mysql环境下对数据进行增删改查
  • Spring 设计模式:经典设计模式
  • OneFlow和PyTorch在性能上有哪些区别?
  • win下搭建elk并集成springboot
  • H7-TOOL固件2.27发布,新增加40多款芯片脱机烧录,含多款车轨芯片,发布LUA API手册,CAN助手增加负载率,错误状态信息检测
  • STM32+WIFI获取网络时间+8位数码管显示+0.96OLED显