前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >XML Schema 字符串数据类型及约束详解

XML Schema 字符串数据类型及约束详解

原创
作者头像
小万哥
发布于 2024-05-24 12:29:23
发布于 2024-05-24 12:29:23
1840
举报
文章被收录于专栏:程序人生丶程序人生丶

字符串数据类型用于包含字符字符串的值。字符串数据类型可以包含字符、换行符、回车符和制表符。

以下是模式中字符串声明的示例:

代码语言:xml
AI代码解释
复制
<xs:element name="customer" type="xs:string"/>

您文档中的一个元素可能如下所示:

代码语言:xml
AI代码解释
复制
<customer>John Smith</customer>

或者可能是这样的:

代码语言:xml
AI代码解释
复制
<customer>       John Smith     </customer>

注意:如果使用字符串数据类型,XML 处理器将不会修改值。


NormalizedString 数据类型

normalizedString 数据类型派生自 String 数据类型。

normalizedString 数据类型也包含字符,但 XML 处理器将删除换行符、回车符和制表符。

以下是模式中 normalizedString 声明的示例:

代码语言:xml
AI代码解释
复制
<xs:element name="customer" type="xs:normalizedString"/>

您文档中的一个元素可能如下所示:

代码语言:xml
AI代码解释
复制
<customer>John Smith</customer>

或者可能是这样的:

代码语言:xml
AI代码解释
复制
<customer>     John Smith     </customer>

注意:在上面的示例中,XML 处理器将用空格替换制表符。


Token 数据类型

token 数据类型也派生自 String 数据类型。

token 数据类型也包含字符,但 XML 处理器将删除换行符、回车符、制表符、前导和尾随空格,以及多个空格。

以下是模式中 token 声明的示例:

代码语言:xml
AI代码解释
复制
<xs:element name="customer" type="xs:token"/>

您文档中的一个元素可能如下所示:

代码语言:xml
AI代码解释
复制
<customer>John Smith</customer>

或者可能是这样的:

代码语言:xml
AI代码解释
复制
<customer>     John Smith     </customer>

注意:在上面的示例中,XML 处理器将删除制表符。

数据类型

请注意,以下所有数据类型均源自字符串数据类型(除了字符串本身)!

名称

描述

ENTITIES

ENTITY

ID

表示 XML 中的 ID 属性的字符串(仅与模式属性一起使用)

IDREF

表示 XML 中的 IDREF 属性的字符串(仅与模式属性一起使用)

IDREFS

language

包含有效语言标识的字符串

Name

包含有效 XML 名称的字符串

NCName

NMTOKEN

表示 XML 中的 NMTOKEN 属性的字符串(仅与模式属性一起使用)

NMTOKENS

normalizedString

不包含换行符、回车或制表符的字符串

QName

string

字符串

token

不包含换行符、回车、制表符、前导或尾随空格或多个空格的字符串

字符串数据类型的限制

可以与字符串数据类型一起使用的限制:

  • 枚举
  • 长度
  • 最大长度
  • 最小长度
  • 模式(NMTOKENS、IDREFS 和 ENTITIES 不能使用此约束)
  • 空白

XSD 日期和时间数据类型

日期和时间数据类型用于包含日期和时间值。

日期数据类型

日期数据类型用于指定日期。

日期以以下形式指定:“YYYY-MM-DD”,其中:

  • YYYY 表示年份
  • MM 表示月份
  • DD 表示日期

注意:所有组件都是必需的!

以下是模式中日期声明的示例:

代码语言:xml
AI代码解释
复制
<xs:element name="start" type="xs:date"/>

您文档中的元素可能如下所示:

代码语言:xml
AI代码解释
复制
<start>2002-09-24</start>

时区

要指定时区,您可以通过在时间后面添加“Z”来输入 UTC 时间的时间,如下所示:

代码语言:xml
AI代码解释
复制
<start>09:30:10Z</start>

或者您可以通过在时间后面添加正数或负数时间来指定 UTC 时间的偏移量,如下所示:

代码语言:xml
AI代码解释
复制
<start>09:30:10-06:00</start>

代码语言:xml
AI代码解释
复制
<start>09:30:10+06:00</start>

日期时间数据类型

日期时间数据类型用于指定日期和时间。

日期时间以以下形式指定:“YYYY-MM-DDThh:mm:ss”,其中:

  • YYYY 表示年份
  • MM 表示月份
  • DD 表示日期
  • T 表示所需时间部分的开始
  • hh 表示小时
  • mm 表示分钟
  • ss 表示秒

注意:所有组件都是必需的!

以下是模式中日期时间声明的示例:

代码语言:xml
AI代码解释
复制
<xs:element name="startdate" type="xs:dateTime"/>

您文档中的元素可能如下所示:

代码语言:xml
AI代码解释
复制
<startdate>2002-05-30T09:00:00</startdate>

或者可能如下所示:

代码语言:xml
AI代码解释
复制
<startdate>2002-05-30T09:30:10.5</startdate>

时区

要指定时区,您可以通过在时间后面添加“Z”来输入 UTC 时间的日期时间,如下所示:

代码语言:xml
AI代码解释
复制
<startdate>2002-05-30T09:30:10Z</startdate>

或者您可以通过在时间后面添加正数或负数时间来指定 UTC 时间的偏移量,如下所示:

代码语言:xml
AI代码解释
复制
<startdate>2002-05-30T09:30:10-06:00</startdate>

代码语言:xml
AI代码解释
复制
<startdate>2002-05-30T09:30:10+06:00</startdate>

持续时间数据类型

持续时间数据类型用于指定时间间隔。

时间间隔以以下形式指定:“PnYnMnDTnHnMnS”,其中:

  • P 表示周期(必需)
  • nY 表示年数
  • nM 表示月数
  • nD 表示天数
  • T 表示时间部分的开始(如果您要指定小时、分钟或秒,则必需)
  • nH 表示小时数
  • nM 表示分钟数
  • nS 表示秒数

以下是模式中持续时间声明的示例:

代码语言:xml
AI代码解释
复制
<xs:element name="period" type="xs:duration"/>

您文档中的元素可能如下所示:

代码语言:xml
AI代码解释
复制
<period>P5Y</period>

上面的示例表示五年的周期。

或者可能如下所示:

代码语言:xml
AI代码解释
复制
<period>P5Y2M10D</period>

上面的示例表示五年、两个月和 10 天的周期。

或者可能如下所示:

代码语言:xml
AI代码解释
复制
<period>P5Y2M10DT15H</period>

上面的示例表示五年、两个月、10 天和 15 小时的周期。

或者可能如下所示:

代码语言:xml
AI代码解释
复制
<period>PT15H</period>

上面的示例表示 15 小时的周期。

负持续时间

要指定负持续时间,请在 P 之前输入减号:

代码语言:xml
AI代码解释
复制
<period>-P10D</period>

上面的示例表示负 10 天的周期。

日期和时间数据类型

名称

描述

date

定义日期值

dateTime

定义日期和时间值

duration

定义时间间隔

gDay

定义日期的一部分 - 日(DD)

gMonth

定义日期的一部分 - 月(MM)

gMonthDay

定义日期的一部分 - 月和日(MM-DD)

gYear

定义日期的一部分 - 年(YYYY)

gYearMonth

定义日期的一部分 - 年和月(YYYY-MM)

time

定义时间值

日期数据类型的限制

可以与日期数据类型一起使用的限制:

  • 枚举
  • 最大独占
  • 最大包容
  • 最小独占
  • 最小包容
  • 模式
  • 空白

XSD 数值数据类型

十进制数据类型用于表示数值。

十进制数据类型

十进制数据类型用于指定数值。

以下是模式中十进制声明的示例:

代码语言:xml
AI代码解释
复制
<xs:element name="price" type="xs:decimal"/>

您文档中的元素可能如下所示:

代码语言:xml
AI代码解释
复制
<price>999.50</price>

或者可能如下所示:

代码语言:xml
AI代码解释
复制
<price>+999.5450</price>

或者可能如下所示:

代码语言:xml
AI代码解释
复制
<price>-999.5230</price>

或者可能如下所示:

代码语言:xml
AI代码解释
复制
<price>0</price>

或者可能如下所示:

代码语言:xml
AI代码解释
复制
<price>14</price>

整数数据类型

整数数据类型用于指定没有小数部分的数值。

以下是模式中整数声明的示例:

代码语言:xml
AI代码解释
复制
<xs:element name="price" type="xs:integer"/>

您文档中的元素可能如下所示:

代码语言:xml
AI代码解释
复制
<price>999</price>

或者可能如下所示:

代码语言:xml
AI代码解释
复制
<price>+999</price>

或者可能如下所示:

代码语言:xml
AI代码解释
复制
<price>-999</price>

或者可能如下所示:

代码语言:xml
AI代码解释
复制
<price>0</price>

数值数据类型

请注意,以下所有数据类型均源自十进制数据类型(除了十进制本身)!

名称

描述

byte

一个带符号的 8 位整数

decimal

一个十进制值

int

一个带符号的 32 位整数

integer

一个整数值

long

一个带符号的 64 位整数

negativeInteger

只包含负值(..,-2,-1)的整数

nonNegativeInteger

只包含非负值(0,1,2,..)的整数

nonPositiveInteger

只包含非正值(..,-2,-1,0)的整数

positiveInteger

只包含正值(1,2,..)的整数

short

一个带符号的 16 位整数

unsignedLong

一个无符号的 64 位整数

unsignedInt

一个无符号的 32 位整数

unsignedShort

一个无符号的 16 位整数

unsignedByte

一个无符号的 8 位整数

数值数据类型的限制

可以与数值数据类型一起使用的限制:

  • 枚举
  • 小数位数
  • 最大独占
  • 最大包容
  • 最小独占
  • 最小包容
  • 模式
  • 总位数
  • 空白

XSD 杂项数据类型

其他杂项数据类型包括布尔型、base64Binary、hexBinary、float、double、anyURI、QName 和 NOTATION。

布尔型数据类型

布尔型数据类型用于指定真值或假值。

以下是模式中布尔型声明的示例:

代码语言:xml
AI代码解释
复制
<xs:attribute name="disabled" type="xs:boolean"/>

您文档中的元素可能如下所示:

代码语言:xml
AI代码解释
复制
<price disabled="true">999</price>

注意:布尔型的合法值为 true、false、1(表示 true)和 0(表示 false)。

二进制数据类型

二进制数据类型用于表示二进制格式的数据。

我们有两种二进制数据类型:

  • base64Binary(Base64 编码的二进制数据)
  • hexBinary(十六进制编码的二进制数据)

以下是模式中十六进制二进制声明的示例:

代码语言:xml
AI代码解释
复制
<xs:element name="blobsrc" type="xs:hexBinary"/>

任意 URI 数据类型

任意 URI 数据类型用于指定 URI。

以下是模式中任意 URI 声明的示例:

代码语言:xml
AI代码解释
复制
<xs:attribute name="src" type="xs:anyURI"/>

注意:如果 URI 包含空格,请用 %20 替换。

杂项数据类型

名称

描述

anyURI

base64Binary

boolean

double

float

hexBinary

NOTATION

QName

杂项数据类型的限制

可以与其他数据类型一起使用的限制:

  • 枚举(布尔型数据类型不能使用此约束)
  • 长度(布尔型数据类型不能使用此约束)
  • 最大长度(布尔型数据类型不能使用此约束)
  • 最小长度(布尔型数据类型不能使用此约束)
  • 模式
  • 空白

XSD 元素

元素

说明

all

指定子元素可以以任何顺序出现。每个子元素可以出现 0 次或 1 次

annotation

指定用于模式注释的顶级元素

any

允许作者使用模式未指定的元素扩展 XML 文档

anyAttribute

允许作者使用模式未指定的属性扩展 XML 文档

appinfo

指定应用程序使用的信息(必须位于注释内部)

attribute

定义属性

attributeGroup

定义用于复杂类型定义中的属性组

choice

允许<choice>声明中包含的元素中只有一个出现在包含元素内部

complexContent

定义包含混合内容或仅包含元素的复杂类型上的扩展或限制

complexType

定义复杂类型元素

documentation

在模式中定义文本注释(必须位于注释内部)

element

定义元素

extension

扩展现有的 simpleType 或 complexType 元素

field

指定用于定义标识约束中使用的值的 XPath 表达式

group

定义用于复杂类型定义中的元素组

import

将具有不同目标命名空间的多个模式添加到文档中

include

将具有相同目标命名空间的多个模式添加到文档中

key

指定作为键的属性或元素值(在实例文档中作为唯一、非空且始终存在的)

keyref

指定属性或元素值与指定键或唯一元素的值相对应

list

将简单类型元素定义为值列表

notation

描述 XML 文档中非 XML 数据的格式

redefine

从外部模式中重新定义简单和复杂类型、组和属性组

restriction

在 simpleType、simpleContent 或 complexContent 上定义限制

schema

定义模式的根元素

selector

指定选择一组元素以进行标识约束的 XPath 表达式

sequence

指定子元素必须按顺序出现。每个子元素可以出现 0 次到任意次数

simpleContent

包含仅扩展或限制文本类型复杂类型或简单类型的内容,并且不包含元素

simpleType

定义简单类型并指定有关属性或仅文本元素的值的约束和信息

union

将简单类型定义为指定简单数据类型的值集合(联合)

unique

定义元素或属性值必须在范围内是唯一的

XSD 数据类型的限制/特征

约束

描述

enumeration

定义可接受值的列表

fractionDigits

指定允许的最大小数位数。必须等于或大于零

length

指定允许的精确字符或列表项数目。必须等于或大于零

maxExclusive

指定数值的上限(该值必须小于此值)

maxInclusive

指定数值的上限(该值必须小于或等于此值)

maxLength

指定允许的最大字符或列表项数目。必须等于或大于零

minExclusive

指定数值的下限(该值必须大于此值)

minInclusive

指定数值的下限(该值必须大于或等于此值)

minLength

指定允许的最小字符或列表项数目。必须等于或大于零

pattern

定义可接受的确切字符序列

totalDigits

指定允许的最大数字位数。必须大于零

whiteSpace

指定如何处理空格(换行符、制表符、空格和回车符)

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎点赞、收藏、关注

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
linux 安装weblogic12.1.3.0步骤
需注意:fmw_12.1.3.0.0_wls.jar     需要jdk1.7.0_15以上的版本
逆向小白
2018/09/12
6.3K0
linux 安装weblogic12.1.3.0步骤
Weblogic运维使用手册
 BEA WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应 用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
loong576
2019/09/10
3.3K0
Weblogic运维使用手册
Weblogic的了解、安装及其使用
WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
默 语
2024/11/20
8300
Weblogic的了解、安装及其使用
【漏洞复现】Weblogic漏洞搭建与复现:CVE-2017-10271
WebLogic WLS组件中存在CVE-2017-10271远程代码执行漏洞,可以构造请求对运行WebLogic中间件的主机进行攻击,近期发现此漏洞的利用方式为传播挖矿程序。
一名白帽的成长史
2020/02/25
6.3K0
【漏洞复现】Weblogic漏洞搭建与复现:CVE-2017-10271
CentOS 7静默安装Weblogic 12C
WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JavaEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
星哥玩云
2022/08/16
8600
CentOS 7静默安装Weblogic 12C
OEMCC 13.2 安装部署
需求:安装部署OEM 13.2 环境:两台主机,系统RHEL 6.5,分别部署OMS和OMR: OMS,也就是OEMCC的服务端 IP:192.168.1.88 内存:12G+ 硬盘:100G+ OMR,也就是OEM底层的资料库 IP:192.168.1.89 内存:8G+ 硬盘:100G+
Alfred Zhao
2019/05/24
1.4K0
CentOS 7.4下Hadoop 2.7.6安装部署
[root@mini01 ~]# cat /etc/hosts  127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1        localhost localhost.localdomain localhost6 localhost6.localdomain6 10.0.0.11    mini01 10.0.0.12    mini02 10.0.0.13    mini03 10.0.0.14    mini04 10.0.0.15    mini05
星哥玩云
2022/07/13
4830
CentOS 7.4下Hadoop 2.7.6安装部署
centos部署tomcat_weblogic简单部署
1、下载183 MB压缩包 https://www.oracle.com/middleware/technologies/weblogic-server-downloads.html
全栈程序员站长
2022/10/03
3790
centos部署tomcat_weblogic简单部署
持续集成-Jenkins安装部署
说明:在网上找了很多文章去解决该离线问题,但是最后都没有解决。所以只能进入页面后再手动安装常用插件。
踏歌行
2020/10/15
7660
持续集成-Jenkins安装部署
centos 7 安装JDK (Linux安装jdk)
该文介绍了在 CentOS 7 中如何安装 JDK 1.8 及其后续步骤。首先,检查系统是否已经安装了 JDK 1.8,如果没有,则从 Oracle 官方网站下载并安装。然后,配置环境变量,使系统可以识别 JDK 1.8。最后,验证安装是否成功。
王小雷
2018/01/02
6.4K0
实战部署weblogic集群及发布应用(
        本次搭建使用的虚拟机,由于内存有限,我搭建的是第一种规划方案同一台服务器,如下:
py3study
2020/01/07
8480
weblogi 12.2.1.4一键安装,包含补丁
2 jdk-8u361-linux-x64.tar.gz          java环境
用户10800300
2023/10/20
5230
weblogi 12.2.1.4一键安装,包含补丁
『学习笔记』如何部署Java应用程序到WebLogic Server
🎈今日推荐—— https://cloud.tencent.com/developer/article/2465242
数字扫地僧
2024/11/10
2810
『学习笔记』如何部署Java应用程序到WebLogic Server
Linux 下Weblogic集群搭建-04通过nodemanage进行节点的启动与关闭
1.adminserver(10.0.5.51) 。 node节点(ip:10.0.5.52)
用户1499526
2019/07/15
2.1K1
Linux 下Weblogic集群搭建-04通过nodemanage进行节点的启动与关闭
你真的会Linux部署吗?
第一步 上传jdk1.6.0_45 app窗口修改权限,级联下级目录文件,拥有可执行权限
程序源代码
2019/09/08
1K0
hadoop集群安装
分布式安装 修改IP地址和主机名(主机名可以不用修改) hadoop1.com 192.168.213.146 192.168.213.255 255.255.255.0 hadoop2.com 192.168.213.147 192.168.213.255 255.255.255.0 hadoop3.com 192.168.213.148 192.168.213.255 255.255.255.0
张泽旭
2018/12/10
1.1K0
持续代码质量管理-SonarQube-7.3部署
Sonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。
踏歌行
2020/10/15
8620
持续代码质量管理-SonarQube-7.3部署
『学习笔记』WebLogic基础入门:配置与安装指南
WebLogic是Oracle开发的企业级Java应用服务器,用于运行、部署和管理多层分布式应用。它是企业应用开发和生产环境中不可或缺的组件。本文将详细介绍WebLogic的基本概念、配置与安装步骤,结合实例分析其在企业中广泛应用的背景与优势。
数字扫地僧
2024/11/12
5150
『学习笔记』WebLogic基础入门:配置与安装指南
Weblogic环境安装部署
安装前提:首先在官网上下载安装包https://www.oracle.com/index.html下载10.3.6版本的在centos7.6上安装,关闭防火墙、selinux,安装jdk(Java SE Development Kit)
Linux运维技术之路
2022/06/07
1.7K0
zookeeper-02 部署
1. 主机规划 主机名称 外网IP【外部访问】 内网IP 操作系统 备注 安装软件 docker01 10.0.0.11 172.16.1.11 CentOS 7.2 zookeeper-3.4.5【集群】 docker02 10.0.0.12 172.16.1.12 CentOS 7.2 zookeeper-3.4.5【集群】 docker03 10.0.0.13 172.16.1.13 CentOS 7.2 zookeeper-3.4.5【集群】 docker04 10.0.0.14 172.16
踏歌行
2020/10/15
2960
推荐阅读
相关推荐
linux 安装weblogic12.1.3.0步骤
更多 >
LV.1
这个人很懒,什么都没有留下~
目录
  • 数据类型
  • 字符串数据类型的限制
  • XSD 日期和时间数据类型
  • 日期数据类型
  • 时区
  • 日期时间数据类型
  • 时区
  • 持续时间数据类型
  • 负持续时间
  • 日期和时间数据类型
  • 日期数据类型的限制
  • XSD 数值数据类型
  • 十进制数据类型
  • 整数数据类型
  • 数值数据类型
    • 数值数据类型的限制
    • XSD 杂项数据类型
    • 布尔型数据类型
    • 二进制数据类型
    • 任意 URI 数据类型
    • 杂项数据类型
    • 杂项数据类型的限制
    • XSD 元素
    • XSD 数据类型的限制/特征
  • 最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档