【XML】Extensible Markup Language 可扩展标记语言
Extensible Markup Language 可扩展标记语言[XML]
视频资料参考自:https://www.bilibili.com/video/BV1B441117Lu?p=186
其他参考:https://www.w3school.com.cn/xml/index.asp
特点:
可扩展,标签可自定义
功能:
和HTML大同小异,CSS一样能对XML起效
但是现在XML的职能主要用于存储数据和作为配置文件使用
在网络中传输数据
XML & HTML的区别?
1、XML标签自定义,HTML是预定义的
2、XML语法严格,HTML语法并不强制要求
3、XML用来存储数据、HTML用来展示数据
XML基本语法:
<?xml version="1.0" encoding="UTF-8" ?> <users>
<user id = "1">
<name>杰哥</name>
<age>28</age>
<gender>男</gender>
</user> <user id = "1">
<name>阿伟</name>
<age>23</age>
<gender>男</gender>
</user>
</users>
可以被浏览器打开解析

- 1、文件后缀名必须是.xml
- 2、文件的第一行必须定义文档声明,必须是在顶格的位置,不可以挪动到其他行【<?xml version="1.0" encoding="UTF-8" ?>】
- 3、文件有且仅有一个根标签 Root Tag
- 4、标签的属性必须用引号修饰【单引双引都可以】
- 5、不是自闭和标签的情况下,成对标签必须要有结束标签
- 6、标签名是区分大小写的!
XML的组成部分:
- 1、文档声明
格式:<?xml 属性列表 ?>
属性列表:
version 版本号 1.0 必须属性
encoding 字符集&编码方式 UTF-8 告知解析引擎当前文档使用的字符集【默认ISO-8859-1】
standalone 是否独立 yes/no yes不依赖其他约束文件,no依赖【即使配置了yes还是可以依赖】
- 2、指令
可以结合CSS对标签设置样式 <?xml stylesheet typr = "text/css" href = "a.css" ?>
- 3、标签:标签名称自定义
1、不可以数字开头作为首标识符
2、包含字母、数字、下划线或者其他字符
3、不能包含空格
4、不能以XML、Xml、xml开始作为首标识符
- 4、属性
id的属性值必须唯一,等同HTML的id属性
- 5、文本
CDATA区域:该区域的数据会被原样展示
<![CDATA[ a < b ? true or false ]]>

XML的约束 DTD & Schema:
什么是约束,即规定XML的书写规则
目标:
- 能够在xml文件中引入约束
- 能够简单的读懂文档
约束的分类:
- DTD约束,一种简单的约束规范
- Schema约束,以种复杂的约束规范
- 1、DTD约束:
我们声明了一个DTD的约束文档【Student.dtd】
<!-- !ELEMENT 规定XML文档中的标签元素 -->
<!-- students 声明了一个标签,标签名是students -->
<!-- students标签声名,可允许放置(0~N)个子标签student -->
<!-- *表示任意个数 +表示一个以上 -->
<!ELEMENT students (student*)> <!-- 声明student标签 且可放置三个子标签,分别是name,age,gender。 -->
<!-- 这些子标签没有加量词通配符,所以每个子标签在xml必须出现一次(有且仅有一次) -->
<!-- 这些子标签出现的顺序也要和这个声明的顺序一致 -->
<!ELEMENT student (name,age,gender)> <!-- (#PCDATA) 声明这些标签的元素内容只能是字符串了 -->
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT gender (#PCDATA)> <!-- !ATTLIST声明了一个属性 给student声明的 -->
<!-- 属性名称是number 属性的类型是ID #REQUIRED表示此属性是必填项 -->
<!-- ID属性表示每一个标签的ID值是唯一的,不可重复 -->
<!ATTLIST student number ID #REQUIRED>
在XML文件中引入此约束,外部dtd文件引入【Student.xml】
<?xml version="1.0" encoding="UTF-8" ?> <!-- 本地dtd文件引入 -->
<!-- !DOCTYPE 文档声明 -->
<!-- students表示根标签名 -->
<!-- SYSTEM 在本地中获取-->
<!-- "Student.dtd" 表示引入的dtd文件位置 -->
<!DOCTYPE students SYSTEM "Student.dtd"> <!-- 网络外部 dtd引入 -->
<!-- <!DOCTYPE 根标签名 PUBLIC "dtd文件名" "dtd文件的URL位置"> -->
<students>
<student number="S001">
<name>杰哥</name>
<age>29</age>
<gender>male</gender>
</student> <student number="S002">
<name>阿伟</name>
<age>18</age>
<gender>male</gender>
</student>
</students>
使用内部引入dtd约束
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE students[
<!ELEMENT students (student*)>
<!ELEMENT student (name,age,gender)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT age (#PCDATA)>
<!ELEMENT gender (#PCDATA)>
<!ATTLIST student number ID #REQUIRED>
]>
<students>
<student number="S001">
<name>杰哥</name>
<age>29</age>
<gender>male</gender>
</student> <student number="S002">
<name>阿伟</name>
<age>18</age>
<gender>male</gender>
</student>
</students>
- 2、Schema约束:
https://www.w3school.com.cn/schema/index.asp
- Schema约束文件的后缀名是.xsd
- 一般不用自己手写Schema
只需要看懂和会引入约束 https://www.w3school.com.cn/schema/schema_howto.asp
XML的解析方式:
1、DOM 【解析思想?服务器】
将xml文档一次性加载进内存,在内存中解析出一个DOM树,每一个标签既是一个节点【node】
操作方便快速、可进行CRUD操作、但是xml内容过多,非常占用内存资源
2、SAX 【解析思想?客户端】
逐行读取、基于事件驱动,相比DOM是不占用内存资源的
功能有限,仅读取,不能增删改
【XML】Extensible Markup Language 可扩展标记语言的更多相关文章
- 原始的Ajax方法 (异步的 JavaScript 和 XML -- (Extensible Markup Language 可扩展标记语言))
<script language="javascript" type="text/javascript"> var request = false; ...
- XML EXtensible Markup Language
1.基础:XML设计被用来传输和存储数据:全称是EXtensible Markup Language.它的设计宗旨是传输数据,而不是显示数据.xml的标签没有被预定义,需要由用户自行定义标签.xml被 ...
- XML 概述 (可扩展标记语言)
XML:eXtensible Markup Language 可扩展标记语言 概念:可扩展:xml中所有的标签都是自定义的.没有预定义的. 功能: 存储数据 ...
- 关于XML(可扩展标记语言)的基础知识与写法------2017-05-18
XML(Extensible Markup Language) HTML:超文本标记语言,主要用来展示 XML:可扩展标记语言,用来做数据传输XML特点: 1.树状结构,有且只有一个根 2.标签名 ...
- 关于XML(可扩展标记语言)的基础知识与写法
XML(Extensible Markup Language) HTML:超文本标记语言,主要用来展示 XML:可扩展标记语言,用来做数据传输XML特点:1.树状结构,有且只有一个根2.标签名自定 ...
- 《计算机是怎么跑起来的》第十章 XML(可扩展标记语言)
资料来源 (1) <计算机是怎么跑起来的> 注1:XML是Extensible Markup Language(可扩展标记语言)的缩写; 1.XML是标记语言 (1) 通常把通过添加标签为 ...
- 12XML(可扩展标记语言)
XML:eXtensible Markup Language 什么是标记语言?什么是标记? 标记(Markup):文档中任何不想被打印输出的部分(不是真正的文档内容,联想读书时做的“读书笔记”,在旁边 ...
- 可扩展标记语言XML之一:XML的概念、作用与示例
哈喽大家好啊,乐字节小乐又来给大家分享Java技术文章了.上次已经讲完了Java多线程相关知识(可以看我博客文章), 这次文章将讲述可扩展标记语言XML 一. 标记语言 标记语言,是一种将文本(Tex ...
- XML简介——可扩展标记语言(Extensible Markup Language)
(What) XML是什么? XML指可扩展标记语言(Extensible Markup Language) 1. XML是一种标记语言,类似HTML. 2. XML具有自我描述性 3. XML ...
- java XML(可扩展标记语言)
XML 是EXtensible Markup Language的缩写,它是一种类似于HTML的标记语言,称为可扩展标记语言,传输数据而不是显示数据,可以自定义标签,具有自我描述性是一种通用的数据交换格 ...
随机推荐
- 算法金 | 一文读懂K均值(K-Means)聚类算法
大侠幸会,在下全网同名[算法金] 0 基础转 AI 上岸,多个算法赛 Top [日更万日,让更多人享受智能乐趣] 1. 引言 数据分析中聚类算法的作用 在数据分析中,聚类算法用于发现数据集中的固有分 ...
- 机器学习笔记(2): Logistic 回归
Logistic 回归是线性回归中一个很重要的部分. Logistic 函数: \[\sigma(x) = \frac {L} {1 + \exp(-k(x - x_0))} \] 其中: \(L\) ...
- INFINI Labs 产品更新 | Easysearch 1.8.2 发布优化 CCR 性能
INFINI Labs 产品又更新啦~,包括 Easysearch v1.8.0.Gateway.Console.Agent.Loadgen v1.25.0.本次各产品更新了很多亮点功能,如 Easy ...
- chrome edge CORS 允许跨域
edge: edge://flags/#block-insecure-private-network-requests chrome: 在谷歌浏览器地址栏输入"chrome://flags/ ...
- SQL SERVER 2012的安装
1.将光盘镜像用虚拟光驱加载(WIN10自带虚拟光驱) 2.双击setup.exe 3.选择"安装"-"全新 SQL Server 独立安装或向现有安装添加功能" ...
- 支付宝spi接口设计验签和返回结果加签注意点,支付宝使用JSONObject对象
支付宝spi接口设计验签和返回结果加签注意点,支付宝使用JSONObject对象 SPI 三方服务接入指南https://opendocs.alipay.com/isv/spiforisv 服务端实现 ...
- Java中的ThreadLocal和 InheritableThreadLocal
Java中的ThreadLocal和 InheritableThreadLocal package com.example.core.mydemo.java; /** * output * Threa ...
- CLR via C# 笔记 -- 枚举(15)
1. 枚举继承System.Enum,后者继承 System.ValueType,所以枚举是值类型. 2. 枚举不能定义任何方法.属性和事件,不过可以定义扩展方法 3. ToString()方法 Co ...
- ADB命令与Dumpsys alarm查看应用程序唤醒命令
ADB命令与Dumpsys alarm查看应用程序唤醒命令 背景 在研究设备的低功耗突然唤醒时,看到了对应的唤醒源: [ 75.813476] suspend ns: 75813465022\x09s ...
- 你要的AI Agent工具都在这里
只有让LLM(大模型)学会使用工具,才能做出一系列实用的AI Agent,才能发挥出LLM真正的实力.本篇,我们让AI Agent使用更多的工具,比如:外部搜索.分析CSV.文生图.执行代码等. 1. ...