XML—标记语言

什么是XML?

Extensible Markup Language,可扩展标记语言。

那标记语言是什么?

用文字做标记表达一些效果或携带一些数据。比如:HTML、XML

我的理解:用倾盆大雨表达雨很大

那XML为什么说是可扩展的呢?

还要从它的产生说起。

XML怎么产生的?

HTML是一种界面技术,定义了70多种标记为了方便在计算机上实现,这些标记也都是固定的,所以不可扩展。随着Web应用的不断发展,HTML的局限性也越来越明显地显现了出来,如HTML无法描述数据、可读性差、搜索时间长等。衍生出了XML,可扩展,不兼容系统之间数据传输方便

XML有什么作用(能帮助我们什么)?

  • 标记都是自定义的;
  • 包含和传输数据
  • 用于交换数据,数据共享。不兼容系统之间交换数据最耗时间,把数据转换成XML格式存储将大大减少交换数据时的复杂性,还可以使这些数据能被不同的程序读取。
  • 数据存储简单。XML数据以纯文本格式进行存储,独立;

XML应用在哪些地方?

  • 做为系统的配置文件

Spring中applicationContext.xml

Hibemate中的hiberante.cfg.xml

Struts2中的struts.xml

log4j中的log4j.xml

Web应用中的web.xml

Tomcat中的server.xml

  • Ajax中传输数据
  • Web Services中传输数据
  • 异构平台的数据交换与整合

那HTML和XML有哪些差异?

|------------|----------|---------------------|
| | HTML | XML |
| 作用 | 显示数据 | 传输和存储数据 |
| 标记 | 固定 | 不固定 |
| 空格 | 多个时只显示一个 | 输入几个显示几个 |
| 语法 | 无右述要求 | 要求嵌套、配对,并遵循DTD的树形结构 |
| 与数据库关系 | 无直接联系 | 与关系型和层状数据库均可对应和转换 |
| 大小写 | 不区分 | 区分 |

XML和HTML之间有联系吗?是怎4么建立联系的?


结构

树结构。从"根部"开始(必须包含根元素),扩展到"枝叶"

内容必须包含在一个单一元素中。这个单一元素称为根元素,它包含文档中所有文本和所有其他元素

格式良好的XML

格式良好(Well-formed)。

什么叫格式良好?

就是放浏览器不报错,正常显示

通过DTD验证的XML是"合法"的XML

会遵循一下语法规则:文件必须有根元素

文件必须有关闭标签

属性值必须加引号

大小写敏感

元素必须呗正确嵌套

语法规则

①、声明

<?xml version="1.0" encoding="utf-8"?>

version:XML的版本

encoding:XML文件使用的字符编码方法(UTF-8 : 万国码, 可显示各种语言)

②、标签

< >:开始结束标签,所有元素都必须有关闭标签

③、实体引用

为了避免把字符数据和标签中需要用到的一些特殊符号(< > "等等)相混淆,XML还提供了实体引用。

④、注释

<!-- This is a comment -->


约束

有两个:DTD、Schema

为什么要使用约束?

  • 防止代码写错
  • 编写代码有提示(就不是胡乱一通的写,有规范)

比方说有个id元素,身份证肯定是唯一的,如果没有约束,身份证号重复了怎么办


相关推荐
chilavert31817 小时前
技术演进中的开发沉思-304计算机原理:XML
xml·计算机原理
程序猿零零漆2 天前
Spring之旅 - 记录学习 Spring 框架的过程和经验(十一)基于XML方式、注解的声明式事务控制、Spring整合Web环境
xml·学习·spring
科雷软件测试3 天前
推荐几个常用的校验yaml、json、xml、md等多种文件格式的在线网站
xml·html·md·yaml
susu10830189113 天前
maven-3.9.12的conf配置settings.xml
xml·java·maven
odoo中国5 天前
如何在 Odoo 中从 XML 文件调用函数
xml·odoo·odoo开发·调用函数
阿凉07026 天前
新版本JLink安装目录中缺失JLinkDevices.xml添加方法
xml·嵌入式硬件
Knight_AL6 天前
从 QueryWrapper 到 XML:一次「报表 SQL」的重构实践
xml·sql·重构
智航GIS6 天前
9.5 XML 处理指南
xml·前端·python
像风一样的男人@7 天前
python --yolo混合文件xml和img整理
xml·python·yolo
飞舞花下12 天前
MAVEN私有仓库配置-Nexus私有仓库
xml·java·maven