XML基础知识讲解

文章目录

  • 1. xml简介
  • 2. xml快速入门
  • 3. xml的元素(标签)定义
  • 4. xml标签的命名规范
  • 5. xml的属性定义和注释
  • 6. 转义字符
  • 7. CDATA区
  • 8. xml的处理指令
  • 9. xml的约束

在这里插入图片描述

1. xml简介

XML(eXtensible Markup Language)是一种用于描述数据的标记语。

它以纯文本的方式存储数据,并使用标签来标记数据的结构和含义。XML被设计用于传输和存储数据,同时也可作为配置文件和数据交换的格式

2. xml快速入门

创建一个xml文档,必须要有文档说明且必须放在第一行

<?xml version="1.0" encoding="UTF-8" ?>
  • version(必须要有): 表示xml的版本(1.0和1.1)

    • 注: 1.1不会向下兼容,一般都是1.0
  • encoding(可选): 表示xml的编码格式,例如:UTF8,GBK等

xml使用示例:

<?xml version="1.0" encoding="UTF-8" ?>
<root><person>111</person>
</root>

对于xml文档,可以使用浏览器打开

在这里插入图片描述

3. xml的元素(标签)定义

  1. xml文档中只能有一个根标签

  2. 用户可自定义标签,例如:<person></person>

    • 结束标签比开始标签多了一个 /
  3. 标签的定义有开始必须要有结束

  4. 标签必须是合理嵌套

4. xml标签的命名规范

  1. 标签区分大小写
  2. 标签不能以数字或者下划线开头
  3. 不能以xml等关键字开头
  4. 不能包含空格
  5. 名称中间不能有:

注: xml在解析时会把空格和换行都当成内容来处理

5. xml的属性定义和注释

属性定义:

  • 每个标签可以有多个属性,但是属性不能相同
  • 属性和属性之间要使用引号(单引号或双引号)
  • 属性名称的命名规范和元素名称的命名规范相同

示例:
在这里插入图片描述

注释:

<!-- 注释内容   -->

注释不能嵌套

6. 转义字符

在XML中,有几个特殊字符被认为是保留字符,不能直接在文本中使用,而是需要使用转义字符来表示。

以下是XML中常见的转义字符:

  • &lt; - 表示小于号 <
  • &gt; - 表示大于号 >
  • &amp; - 表示和符号 &
  • &quot; - 表示双引号 "
  • &apos; - 表示单引号 '

示例:
在这里插入图片描述

7. CDATA区

CDATA(Character Data)区是XML中的一个特殊区域,用于包含文本数据,其中可以包含任何字符,包括XML保留字符和特殊字符,而不需要进行转义。

CDATA区是由<![CDATA[开始,以]]>结束。

    <![CDATA[]]>

CDATA区中的内容将被视为纯文本,不会被解析为XML标记。CDATA区常用于包含包含特殊字符或大量文本的数据,以避免不必要的转义。

示例:

在这里插入图片描述

8. xml的处理指令

XML中,处理指令是用来指导XML解析器或其他处理工具对XML文档进行处理的指令。它们以<?开始,以?>结束,并位于XML文档的开头。

常见的XML处理指令包括:

  1. XML声明:<?xml version="1.0" encoding="UTF-8"?>。这是XML文档的第一个处理指令,用于指定XML版本和字符编码。
  2. 样式表处理指令:<?xml-stylesheet type="text/xsl" href="style.xsl"?>。用于引用XSL样式表,用于对XML文档进行转换和呈现。
  3. 实体处理指令:<!ENTITY name "value">。用于定义实体,可以在XML文档中引用并展开为对应的值。
  4. 命名空间处理指令:xmlns:prefix="namespace"。用于定义命名空间和命名空间前缀,以在XML文档中标识元素和属性的命名空间。

这些处理指令可以向XML解析器提供关于XML文档的附加信息,或者指示如何处理XML文档。处理指令通常出现在XML文档的开头,但不是必需的。

9. xml的约束

xml的约束就是指xml中可以出现哪些元素以及不能出现哪些元素

常见的两种约束:

  1. DTD
  2. schema

DTD是一种基本的XML约束语言,用于定义XML文档的元素、属性和实体,以及它们之间的关系和约束。DTD使用一组规则来验证XML文档的结构和内容,确保它们符合DTD中定义的规范。

Schema是一种更强大和灵活的XML约束语言,用于定义XML文档的结构、数据类型和约束。XML Schema使用XML语法来定义元素、属性、数据类型、约束和关系,可以进行更复杂的验证和约束。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/28508.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 Etcher 制作U盘系统盘

Etcher 资料&#xff1a; https://github.com/balena-io/etcher/blob/master/SUPPORT.md

司徒理财:8.9黄金早盘低多,黄金走势分析操作建议

黄金早盘1923现价做多看涨&#xff0c;黄金将开启反弹&#xff0c;低多&#xff0c;上方压力1945一线&#xff01;黄金4小时周期下跌macd指标已经背离&#xff0c;昨日虽然破位新低&#xff0c;但没有延续&#xff0c;形成小双底结构&#xff01;弱不再弱必转强&#xff01;今日…

基于 eclipse-temurin 镜像部署spring boot 应用

基于 eclipse-temurin 镜像部署spring boot 应用 使用场景示例项目 使用场景 在CI流程中&#xff0c;一般都会集成 打包&#xff0c;构建镜像&#xff0c;分发&#xff0c;启动容器之类的流程&#xff1b; 这里提供一个示例&#xff0c;进攻参考 示例项目 项目结构如下 run…

【网络安全】网络安全威胁实时地图 - 2023

文章目录 [TOC] ① 360 安全大脑360 APT全景雷达 ② 瑞星杀毒瑞星云安全瑞星网络威胁态势感知平台 ③ 比特梵德 Bitdefender④ 飞塔防火墙 FortiGuard⑤ 音墙网络 Sonicwall⑥ 捷邦 Check Point⑦ AO卡巴斯基实验室全球模拟隧道模拟 ⑧ 数字攻击地图⑨ Threatbutt互联网黑客攻击…

从少年变成恶龙的平台经济

点击文末“阅读原文”即可参与节目互动 剪辑、音频 / 卷圈 运营 / SandLiu 卷圈 监制 / 姝琦 封面 / 姝琦midjourney 产品统筹 / bobo 录音间 / 声湃轩北京站 东方甄选和抖音的“矛盾”再一次暴露出平台经济与入驻者之间微妙的关系。 平台经济&#xff0c;从一个引领时代…

无涯教程-Perl - bless函数

描述 此函数告诉REF引用的实体,它现在是CLASSNAME包中的对象,如果省略CLASSNAME,则为当前包中的对象。建议使用bless的两个参数形式。 语法 以下是此函数的简单语法- bless REF, CLASSNAMEbless REF返回值 该函数返回对祝福到CLASSNAME中的对象的引用。 例 以下是显示其…

SQL必知必会读书笔记

文章目录 **不同的DB语法格式不尽相同**第一课 了解SQL术语 第二课 检索数据语法格式检索列检索唯一不同值限制结果&#xff08;数量&#xff09; 第三课 排序检索数据使用说明 第四课 过滤数据WHERE子句操作符 第五课 高级数据过滤1、组合WHERE子句2、IN操作符3、NOT操作符 第…

【数据结构与算法——TypeScript】哈希表

【数据结构与算法——TypeScript】 哈希表(HashTable) 哈希表介绍和特性 哈希表是一种非常重要的数据结构&#xff0c;但是很多学习编程的人一直搞不懂哈希表到底是如何实现的。 在这一章节中&#xff0c;我门就一点点来实现一个自己的哈希表。通过实现来理解哈希表背后的原理…

Zabbix网络拓扑配置

一、简介 网络拓扑功能是一项非常重要的功能&#xff0c;它可以直观展示网络设备主机状态及端口传输速率等指标信息&#xff0c;帮助运维人员快速发现和定位故障问题&#xff1b;Zabbix同样配备了强大的网络拓扑功能&#xff0c;如何使用Zabbix拓扑图功能创建一个公司网络拓扑…

11_Pulsar Adaptors适配器、kafka适配器、Spark适配器

2.3. Pulsar Adaptors适配器 2.3.1.kafka适配器 2.3.2.Spark适配器 2.3. Pulsar Adaptors适配器 2.3.1.kafka适配器 Pulsar 为使用 Apache Kafka Java 客户端 API 编写的应用程序提供了一个简单的解决方案。 在生产者中, 如果想不改变原有kafka的代码架构, 就切换到Pulsar的…

FreeRTOS通过消息队列实现串口命令解析(串口中断)

作者&#xff1a;Jack_G 时间&#xff1a;2023.08.08 版本&#xff1a;V1.0 上次修改时间&#xff1a; 环境&#xff1a; \quad \quad \quad \quad STM32Cube MX V6.8.1 \quad \quad \quad \quad STM32CubeH7 Firmware Package V1.11.0 / 04-Nov-2022 \quad \quad \quad \qu…

抖音的竞争对手?Meta计划人工智能聊天机器人增加社交媒体数量

在来自抖音的竞争中&#xff0c;Meta着眼于用户参与的下一个前沿。 报道&#xff0c;Meta正在开发一系列具有不同个性的人工智能聊天机器人&#xff0c;此举旨在增加用户在脸书和Instagram等社交平台上的参与度金融时报和边缘。这些聊天机器人被Meta staff称为“personas ”,将…

LabVIEW开发高压配电设备振动信号特征提取与模式识别

LabVIEW开发高压配电设备振动信号特征提取与模式识别 矿用高压配电设备是井下供电系统中的关键设备之一&#xff0c;肩负着井下供配电和供电安全的双重任务&#xff0c;其工作状态直接影响着井下供电系统的安全性和可靠性。机械故障占配电总故障的70%。因此&#xff0c;机械故…

代理模式及常见的3种代理类型对比

代理模式及常见的3种代理类型对比 代理模式代理模式分类静态代理JDK动态代理CGLIBFastclass机制 三种代理方式之间对比常见问题 代理模式 代理模式是一种设计模式&#xff0c;提供了对目标对象额外的访问方式&#xff0c;即通过代理对象访问目标对象&#xff0c;这样可以在不修…

嵌入式开发实用工具——QFSViewer

嵌入式开发实用工具——QFSViewer 介绍 今天给大家推荐个我个人业余时间开发的一个嵌入式开发实用工具——QFSViewer&#xff0c;这个工具主要是用来加载查看各种嵌入式常用的文件系统映像&#xff0c;目前支持JFSS2、Fat32、Fat16、Fat12、exFat、Ext2、Ext3、Ext4等文件系统…

用栈判断是否匹配

1 问题 写代码的时候用到的括号都是成双成对的出现&#xff0c;并且大小也相同。在集成编辑环境中&#xff0c;IDE就会为我们自己动检查括号是否匹配。那么为了避免在报错&#xff0c;如何判断是否有无括号不匹配&#xff1f; 2 方法 利用栈来实现这种功能。当遇见一个左括号&a…

【Linux命令行与Shell脚本编程】 第十七章 图形化桌面环境脚本编程

Linux命令行与Shell脚本编程 第十七章 图形化桌面环境脚本编程 文章目录 Linux命令行与Shell脚本编程七.图形化桌面环境脚本编程7.1.创建文本菜单7.1.1.创建菜单布局7.1.2.创建菜单逻辑7.1.3.整合脚本菜单7.1.4.使用select命令 7.2.创建文本窗口部件7.2.1.dialog软件包部件msg…

wpf 项目中使用 Prism + MaterialDesign

1.通过nuget安装MaterialDesign 2.通过nuget安装Prism 3.修改App.xmal <prism:PrismApplication x:Class"VisionMeasureGlue.App"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/…

66 # form 数据格式化

实现一个 http 服务器 客户端会发送请求 GET POST 要处理不同的请求体的类型 表单格式&#xff08;formData a1&b2&#xff09;&#xff0c;可以直接通信不会出现跨域问题JSON &#xff08;"{"kaimo":"313"}"&#xff09;文件格式 &#x…

Android 项目导入高德SDK初次上手

文章目录 一、前置知识&#xff1a;二、学习目标三、学习资料四、操作过程1、创建空项目2、高德 SDK 环境接入2.1 获取高德 key2.2下载 SDK 并导入2.2.1、下载SDK 文件2.2.2、SDK 导入项目2.2.3、清单文件配置2.2.4、隐私权限 3、显示地图 一、前置知识&#xff1a; 1、Java 基…