XML—标记语言

news2024/11/23 10:34:08

什么是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元素,身份证肯定是唯一的,如果没有约束,身份证号重复了怎么办


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

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

相关文章

ethers.js9、过滤事件

在 合约监听 的基础上,我们拓展一下,在监听的过程中增加过滤器,监听指定地址的转入转出。 过滤器 当合约创建日志(释放事件)时,它最多可以包含[4]条数据作为索引(indexed)。索引数据经过哈希处理并包含在布隆过滤器中,这是一种允许有效过滤的数据结构。因此,一个事件…

Java学数据结构(4)——散列表Hash table 散列函数 哈希冲突

目录 引出散列表Hash table关键字Key和散列函数(hash function)散列函数解决collision哈希冲突&#xff08;碰撞&#xff09;分离链接法(separate chaining)探测散列表(probing hash table)双散列(double hashing) Java标准库中的散列表总结 引出 1.散列表&#xff0c;key&…

SQLite数据库C_C++接口(保姆级API应用 1.4W字)(全网最详细介绍,学完必掌握)

目录 sqlite3的C/C API应用 前言 SQLite3库安装 API函数 打开、关闭、错误处理 打开 返回值 关闭 错误调试 实际应用 执行SQL&#xff08;DDL、DML&#xff09; API介绍 实际应用 回调函数查询 API介绍 实际应用 全缓冲查询 API介绍 实际应用 字节缓冲查询…

【Linux】【驱动】自动创建设备节点

【Linux】【驱动】自动创建设备节点 续驱动代码操作指令linux端从机端 续 这里展示了如何自动的方式去创建一个字符类的节点 下面就是需要调用到的程序 函数 void cdev_init(struct cdev *, const struct file_operations *);第一个参数 要初始化的 cdev 第二个参数 文件操作…

【微服务部署】01-Kubernetes部署流程

文章目录 部署1. Kubernetes是什么2. Kubernetes的优势3. 环境搭建4. 应用部署 部署 1. Kubernetes是什么 Kubernetes是一个用于自动部署、扩展和管理容器化应用程序的开源系统 2. Kubernetes的优势 自动化容器部署资源管理与容器调度服务注册发现与负载均衡内置配置与秘钥…

STM32 CUBEMX CAN通信数据发送失败原因分析

CAN通信是一种数据通信协议&#xff0c;用于在不同设备之间进行通信。它是一种高效的、实时的、可靠的、多主机的、串行通信系统&#xff0c;通常用于汽车电子、工业自动化等领域。CAN通信协议是由德国BOSCH公司于1986年引入&#xff0c;并在欧洲和日本广泛使用。CAN通信具有独…

uniapp热更新

首先热更新需要wgt包&#xff1b; 其次先了解这两个组件 下载的方法 安装的组件 场景&#xff1a; 当你项目的js文件或者页面文件或者静态图片文件css文件更新的时候可以走热更新&#xff1b; 而当你安装新的组件插件或者开启新的权限等功能的时候就无法通过热更新进行更新了…

自然语言处理(三):基于跳元模型的word2vec实现

跳元模型 回顾一下第一节讲过的跳元模型 跳元模型&#xff08;Skip-gram Model&#xff09;是一种用于学习词向量的模型&#xff0c;属于Word2Vec算法中的一种。它的目标是通过给定一个中心词语来预测其周围的上下文词语。 这节我们以跳元模型为例&#xff0c;讲解word2vec的…

C语言(第三十四天)

1. 二进制 其实我们经常能听到2进制、8进制、10进制、16进制这样的讲法&#xff0c;那是什么意思呢&#xff1f;其实2进制、8进制、10进制、16进制是数值的不同表示形式而已。 比如&#xff1a;数值15的各种进制的表示形式: 15的2进制&#xff1a;1111 15的8进制&#xff1a;1…

开源项目的文档:为什么它如此重要?

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

2023.8.28日论文阅读

文章目录 NestFuse: An Infrared and Visible Image Fusion Architecture based on Nest Connection and Spatial/Channel Attention Models(2020的论文)本文方法 LRRNet: A Novel Representation Learning Guided Fusion Network for Infrared and Visible Images本文方法学习…

JVM 内存大对象监控和优化实践

作者&#xff1a;vivo 互联网服务器团队 - Liu Zhen、Ye Wenhao 服务器内存问题是影响应用程序性能和稳定性的重要因素之一&#xff0c;需要及时排查和优化。本文介绍了某核心服务内存问题排查与解决过程。首先在JVM与大对象优化上进行了有效的实践&#xff0c;其次在故障转移与…

jmeter传参base64卡顿如何解决

部分接口需要传图片base64格式参数&#xff0c;但是输入转为base64格式的图片参数&#xff0c;jmeter直接卡死&#xff0c;甚至电脑也卡死&#xff0c;此时&#xff0c;只需要去掉文件头描述&#xff1a;data:image/jpeg;base64, 即可

Element Plus 日期选择器的使用和属性

element plus 日期选择器如果如果没有进行处理 他会返回原有的属性值data格式 如果想要获取选中的日期时间就需要通过以下的代码来实现选中的值 format"YYYY/MM/DD" value-format"YYYY-MM-DD" <el-date-pickerv-model"formInline.date" type&…

《Flink学习笔记》——第五章 DataStream API

一个Flink程序&#xff0c;其实就是对DataStream的各种转换&#xff0c;代码基本可以由以下几部分构成&#xff1a; 获取执行环境读取数据源定义对DataStream的转换操作输出触发程序执行 获取执行环境和触发程序执行都属于对执行环境的操作&#xff0c;那么其构成可以用下图表示…

AD画PCB时设置的中文丝印乱码

AD画PCB时设置的中文丝印乱码怎么解决&#xff1f; 画好PCB后通常会加一些没有电气属性的丝印或者板号&#xff0c;有时用英文有时用中文&#xff0c;通常用英文或者数字都能直接显示&#xff0c;但是用中文时显示的就是乱码&#xff1b;因为字符串放置好后默认的字体是“比划…

使用el-tag和el-select组件实现标签的增删

第一步 点击按钮&#xff0c;弹出博客所拥有的标签列表的气泡 效果图 第二步 选择标签列表中的标签进行添加 效果图 第三步 实现标签的移除 效果图 页面编写 <!-- 标签模块 start--><el-popover trigger"click" placement"top" :width&quo…

设计模式—策略模式

目录 一、定义 二、特点 三、优点 四、缺点 五、实例 六.涉及到的知识点 1、一个类里面有哪些东西&#xff1f; 2、类和实例 什么是类&#xff1f; 什么是实例&#xff1f; 什么是实例化&#xff1f; 3、字段和属性 什么是字段&#xff1f; 属性是什么&#xff1…

自实现getprocaddress(名称查找或者序号查找)

通过名称去找 // MyGETPRCOADDRESS.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 //#include <iostream> #include<Windows.h>/*WINBASEAPI //导出不需要使用&#xff0c;那么我们注释掉*/ FARPROC WINAPI MyGetProcAddress(_In_ HMO…

SSM学习内容总结(Spring+SpringMVC+MyBatis)

目录 1、什么是SSM2、学习内容汇总2.1、Spring2.2、SpringMVC2.3、MyBatis2.4、SSM整合 &#x1f343;作者介绍&#xff1a;准大三本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 &#x1f341;作者主页&#xff1a;逐梦苍穹 &#x1f440;近期目标…