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

Javaweb02-XML概述

第一章 XML概述

1.XML基本概念

  • 什么是xml?

**a.**引入的原因:为了解决不同不同语言之间的数据传输的格式不同

**b.**概念:XML是一种可扩展标记语言,适用于不同数据之间的数据交换

**c.**XML文档:通过元素的嵌套,可以清晰描述树状结构,因此常常被用作存放相关的配置信息

  • xml与html的区别?

**a.**HTML用于显示数据,XML用于传输和存储数据

**b.**HTML标签不区分大小写,XML标签严格区分大小写

**c.**HTML可以有多个根元素,XML只有一个根元素,且空格不能向HTML一样自动过滤

**d.**HTML中的标签是预定义标签,而XML中的标签是可扩展标签,需要自己定义

2.xml的语法

**a.**文档说明

<?xml version="" encoding="" standalone="">
说明:
此语句必须放在文档的开头,
version为必须的属性,encoding是用来指定编码集,standalone只有两个值yes,no用来表示此文档是否与外部关联(默认)

**b.**元素定义

<大学>太原理工大学</大学>
xml文档的元素以树形分层结构排列,一个xml文档有且仅有一个顶层元素
由开始标签,属性,元素内容,结束标签组成

**c.**属性定义

<大学 位置="太原">太原理工大学</大学>
一个元素可以定义若干属性,每个属性的值必须通过引号来引用

**d.**注释

<!--注释信息-->

3.DTD约束

DTD约束是一种XML约束模式语言,根据它的语法创建的文件称为DTD文件。

  • DTD约束的引入

1.引入外部DTD约束文件

方法一:引入本地的DTD文件
<!DOCTYPE 根元素名称 SYSTEM "外部DTD文件的URI">
外部DTD文件的URI:可以是相对路径,也可以是绝对路径方法二:引入公用的DTD文件
<!DOCTYPE 根元素名称 PUBLIC "DTD名称" "外部DTD文件的URI">
外部DTD文件的URI:只可以是绝对路径

2.XML内部定义DTD约束文件

<!DOCTYPE 根元素名称[DTD定义语句...]>
  • DTD约束的语法

1.元素定义

格式:<!ELEMENT 元素名称 元素内容>
元素内容:
1.#PCDATA   元素中嵌套的内容为文本字符串 
2.(元素名1,元素名2,元素名3)   子元素
3.EMPTY   空元素
4.ANY   任何元素
5.混合元素
问号[?]:表示该对象可以出现0次或1次。
星号[*]:表示该对象可以出现0次或多次。
加号[+]:表示该对象可以出现1次或多次。
竖线[|]:表示列出的对象中选择1个。
逗号[,]:表示对象必须按照指定的顺序出现。
括号[()]:用于给元素进行分组。

2.属性定义

//格式:
<!ATTLIST 元素名属性名1  属性类型  设置说明属性名2  属性类型  设置说明
>//设置说明:
1.#REQUIRED:表示元素的该属性是必须的
2.#IMPLIED: 表示元素可以包含该属性,也可以不包含该属性
3.#FIXED:表示一个固定的属性默认值,在XML文档中不能将该属性设置为其他值
4.默认值:该属性的值是可以改变的//属性类型:
1. CDATA:属性类型为字符类型
2. 枚举类型:(属性值1|属性值2|属性值3)可限制属性值取一个
3. ID类型:唯一标识XML中的元素,它的设置说明只可以是#REQUIRED,#IMPLIED
4. IDREF:表示一对一关系
5. IDREFS:表示一对多的关系

4.Schema约束

XML Schema是一种用于定义和描述XML文档结构与内容的模式语言(.xsd)

  • Schema约束支持名称空间

1.名称空间的定义

一个XML文档可以引入多个约束文档,但是,由于约束文档中的元素或属性都是自定义的,所以在XML文档中,极有可能出现代表不同含义的同名元素或属性,导致名称发生冲突。为此,在XML文档中,提供了名称空间,它可以唯一标识一个元素或者属性

2.名称空间的引入

<元素名 xmlns:prefixname="URI">
注意:基本名称空间它们是xml和xmlns不可以做prefixname
  • Schema约束的引入

1.使用名称空间引入XML Schema文档

需要通过属性xsi:schemaLocation来声明名称空间的文档xsi:schemaLocation属性是在标准名称空间“http://www.w3.org/2001/XMLSchema-instance”中定义的,在该属性中,包含了两个URI,这两个URI之间用空白符分隔。其中,第一个URI是名称空间的名称,第二个URI是文档的位置。
示范:
<元素名 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="Schema文件名 Schema文件路径">

2.通过xsi:noNamespaceSchemaLocation属性直接指定

通过xsi:noNamespaceSchemaLocation属性直接指定,它是在标准名称空间“http://www.w3.org/2001/XMLSchema-instance”中定义的,它用于定义指定文档的位置。
示范:
<元素名 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="Schema文件路径">
  • Schema约束的语法

1.元素定义

<xs:element name="名称" type="类型"/>

2.属性定义

<xs:attribute name="xxx" type="yyy"/>

3.简单类型

在XML Schema文档中,只包含字符数据的元素都是简单类型的。

<xs:element name="age">
<xs:simpleType><xs:restriction base="xs:integer">...限制条件</xs:restriction>
</xs:simpleType>
</xs:element> 
1.对元素的值的大小的限制
<xs:element name="age">
<xs:simpleType><xs:restriction base="xs:integer"><xs:minInclusive value="18"/><xs:maxInclusive value="58"/></xs:restriction>
</xs:simpleType>
</xs:element> 2.对元素的设置枚举类型
<xs:element name="car">
<xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="Audi"/><xs:enumeration value="Golf"/><xs:enumeration value="BMW"/></xs:restriction>
</xs:simpleType>
</xs:element> 3.对元素一系列值的设置
<xs:element name="letter">
<xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[a-z]"/></xs:restriction>
</xs:simpleType>
</xs:element> 4.对元素空白字符的限定
<xs:element name="address">
<xs:simpleType><xs:restriction base="xs:string"><xs:whiteSpace value="preserve"/></xs:restriction>
</xs:simpleType>
</xs:element> 
whiteSpace元素有三个属性值可以设定,分别是preserve、replace和collapse。其中,preserve表示不对元素中的任何空白字符进行处理,replace表示移除所有的空白字符,collapse表示将所有的空白字符缩减为一个单一字符。

4.复杂类型

在定义复杂类型时,需要使用xs:complexType元素来定义。复杂类型的元素可以包含子元素和属性,这样的元素称为复合元素。

1.定义属性和子元素

<xs:element name=""><xs:complexType><xs:attribute name="" type=""/><xs:element name="" type=""/><xs:element name="" type=""/></xs:complexType>
</xs:element>

2.包含字符数据

对于仅含文本的复合元素,需要使用“simpleContent”元素添加内容。在使用简易内容时,必须在“simpleContent”元素内定义扩展或限定,这时,需要使用“extension”或“restriction”元素来扩展或限制元素的基本简易类型

<xs:element name=""><xs:complexType mixed="true">//表示可以和字符元素混合使用<xs:simpleContent><xs:extension base="xs:integer"><xs:attribute name="" type="" /></xs:extension></xs:simpleContent></xs:complexType>
</xs:element>

相关文章:

Javaweb02-XML概述

第一章 XML概述 1.XML基本概念 什么是xml&#xff1f; **a.**引入的原因&#xff1a;为了解决不同不同语言之间的数据传输的格式不同 **b.**概念&#xff1a;XML是一种可扩展标记语言&#xff0c;适用于不同数据之间的数据交换 **c.**XML文档&#xff1a;通过元素的嵌套&a…...

Linux shell编程基础

Shell 是一个用 C 语言编写的程序&#xff0c;它是用户使用 Linux 的桥梁。Shell 既是一种命令语言&#xff0c;又是一种程序设计语言。Shell 是指一种应用程序&#xff0c;这个应用程序提供了一个界面&#xff0c;用户通过这个界面访问 Linux 内核的服务。 Shell 脚本&#x…...

2024.6.12 作业 xyt

今日课堂练习&#xff1a;vector构造函数 #include <iostream> #include <vector> using namespace std;void printVector(vector<int> &v) {vector<int>::iterator iter;for(iterv.begin(); iter ! v.end(); iter){cout << *iter <<…...

QTTabBar在重置Internet Explorer后失效

网上常见的办法是&#xff1a; 打开IE浏览器>>设置>>Internet选项>>高级。勾选启用第三方浏览器扩展&#xff0c;重启后生效。 打开IE浏览器-设置–管理加载项&#xff0c;启用QTTabBar。 实际在Win10上使用的时候会遇到点开IE自动跳转到Edge的问题。这时…...

Django之云存储(一)

一、介绍 用户上传的文件以及项目中使用的静态文件,除了保存在本地服务器,还在可以保存在云服务中,比如: 阿里云七牛云(课程选用)亚马逊云等1.1、使用方式 注册账号 七牛云开发者平台 实名认证 创建空间...

推挽与开漏输出

一般来说&#xff0c;微控制器的引脚都会有一个驱动电路&#xff0c;可以配置不同类型的数字和模拟电路接口。输出模式一般会有推挽与开漏输出。 推挽输出 推挽输出&#xff08;Push-Pull Output&#xff09;&#xff0c;故名思意能输出两种电平&#xff0c;一种是推&#xf…...

Sora和快手可灵背后的核心技术 | 3DVAE:通过小批量特征交换实现身体和面部的三维形状变分自动编码器

【摘要】学习3D脸部和身体生成模型中一个解开的、可解释的和结构化的潜在表示仍然是一个开放的问题。当需要控制身份特征时,这个问题尤其突出。在本文中,论文提出了一种直观而有效的自监督方法来训练一个3D形状变分自动编码器(VAE),以鼓励身份特征的解开潜在表示。通过交换不同…...

ArcGIS Pro SDK (三)Addin控件 2 窗格界面类

ArcGIS Pro SDK &#xff08;三&#xff09;Addin控件 2 窗格界面类 目录 ArcGIS Pro SDK &#xff08;三&#xff09;Addin控件 2 窗格界面类15 ArcGIS Pro 后台选项卡15.1 添加控件15.2 Code15.2.1 选项卡按钮15.2.2 选项卡页 16 ArcGIS Pro 窗体16.1 添加控件16.2 Code 17 A…...

Ubuntu 20.04.6 LTS系统使用命令编辑静态IP地址【笔记】

rootubuntu-machine:/home# cat /etc/issue Ubuntu 20.04.6 LTS \n \l1、切换到root身份 sudo su2、编辑静态IP地址&#xff0c;示例以01-network-manager-all.yaml&#xff0c;个别系统可能是00-network-manager-all.yaml&#xff0c;以安装系统生成的文件为准。 vim /etc/n…...

Python第二语言(八、Python包)

目录 1. 什么是Python包 2. 创包步骤 2.1 new包 2.2 查看创建的包 2.3 拖动文件到包下 3. 导入包 4. 安装第三方包 4.1 什么是第三方包 4.2 安装第三方包-pip 4.3 pip网络优化 1. 什么是Python包 包下有__init__.py就是包&#xff0c;无__init__.py就是文件夹。于Ja…...

Pipeline流水线组件

文章目录 1、新建pipeline流水线2、定义处理器3、定义处理器上下文4、pipeline流水线实现5、处理器抽象类实现6、pipeline流水线构建者7、具体处理器实现8、流水线测试9、运行结果 1、新建pipeline流水线 package com.summer.toolkit.model.chain;import java.util.List; impo…...

闪灵CMS电子商城系统源码v5.0(自带微信小程序)

源码介绍 闪灵CMS电子商城系统源码&#xff0c;双语带手机版&#xff0c;PHPMYSQL进行开发&#xff0c;网站安装简单、快捷。 闪灵CMS系统更新日志 1.修复&#xff1a;修复了开启强制https后&#xff0c;说明文档重定向过多的问题 2.修复&#xff1a;修复了商品名称过长时无…...

基于SSM的旅游民宿预定系统【源码】【运行教程】

基于SSM的旅游民宿预定系统 一、项目介绍1. 游客功能2. 管理员功能3. 高级功能 二、项目技术栈三、项目运行四、项目演示总结 大家好&#xff0c;这里是程序猿代码之路&#xff01;随着旅游业的快速发展&#xff0c;民宿作为一种独特的住宿方式越来越受到游客的喜爱。为了提升用…...

PgSQL技术内幕 - psql与服务端连接与交互机制

PgSQL技术内幕 - 客户端psql与服务端连接与交互机制 简单来说&#xff0c;PgSQL的psql客户端向服务端发起连接请求&#xff0c;服务端接收到请求后&#xff0c;fork出一个子进程&#xff0c;之后由该子进程和客户端进行交互&#xff0c;处理客户端的SQL等&#xff0c;并将结果返…...

实现开发板三盏灯点亮熄灭

实现开发板三盏灯点亮熄灭 typedef struct {volatile unsigned int MODER; // 0x00volatile unsigned int OTYPER; // 0x04volatile unsigned int OSPEEDR; // 0x08volatile unsigned int PUPDR; // 0x0Cvolatile unsigned int IDR; // 0x10volatile unsigned int OD…...

外汇天眼:盈透证券为客户提供更丰富的欧洲衍生品交易渠道

电子交易巨头盈透证券&#xff08;纳斯达克代码&#xff1a;IBKR&#xff09;今日宣布&#xff0c;通过Cboe欧洲期权交易所&#xff08;CEDX&#xff09;新增欧洲股票期权和欧洲指数期货及期权。这一新增功能使得盈透证券的客户可以在单一统一平台上&#xff0c;除了股票、期权…...

论文阅读Rolling-Unet,卷积结合MLP的图像分割模型

这篇论文提出了一种新的医学图像分割网络Rolling-Unet&#xff0c;目的是在不用Transformer的前提下&#xff0c;能同时有效提取局部特征和长距离依赖性,从而在性能和计算成本之间找到良好的平衡点。 论文地址&#xff1a;https://ojs.aaai.org/index.php/AAAI/article/view/2…...

Linux Shell命令vim使用

一、引例 以判断引出&#xff08;学过C其他语言容易接受&#xff09;。 简单命令说明&#xff1a; -e 测试文件是否存在 -f 测试文件是否为普通文件 -d 测试文件是否为目录 -r 测试当前用户对某文件是否具有“可读”权限 -w 测试当前用户对某文件是否具有“可写”权限…...

如何将 API 管理从 Postman 转移到 Apifox

上一篇推文讲到用 Swagger 管理的 API 怎么迁移到 Apifox&#xff0c;有许多同学反馈说能不能介绍一下 Postman 的迁移以及迁移过程中需要注意的事项。那么今天&#xff0c;它来了&#xff01; 从 Postman 迁移到 Apifox 的方法有两种&#xff1a; 导出 Postman 集合 &#x…...

用链表实现的C语言队列

一、队列概述 在数据结构中&#xff0c;队列是一种先进先出&#xff08;FIFO&#xff09;的线性表。它在许多应用场景中非常有用&#xff0c;例如任务调度、进程管理、资源管理等。队列是一种重要的数据结构&#xff0c;其主要特点是先进先出&#xff08;FIFO, First In First …...

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...

conda相比python好处

Conda 作为 Python 的环境和包管理工具&#xff0c;相比原生 Python 生态&#xff08;如 pip 虚拟环境&#xff09;有许多独特优势&#xff0c;尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处&#xff1a; 一、一站式环境管理&#xff1a…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作&#xff1a; 1&#xff09;、切换集群 2&#xff09;、切换节点 3&#xff09;、切换到 apparmor 的目录 4&#xff09;、执行 apparmor 策略模块 5&#xff09;、修改 pod 文件 6&#xff09;、…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

Frozen-Flask :将 Flask 应用“冻结”为静态文件

Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是&#xff1a;将一个 Flask Web 应用生成成纯静态 HTML 文件&#xff0c;从而可以部署到静态网站托管服务上&#xff0c;如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

python如何将word的doc另存为docx

将 DOCX 文件另存为 DOCX 格式&#xff08;Python 实现&#xff09; 在 Python 中&#xff0c;你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是&#xff0c;.doc 是旧的 Word 格式&#xff0c;而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...