XSD 数据类型

2024-04-17 02:18
文章标签 数据类型 xsd

本文主要是介绍XSD 数据类型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

字符串数据类型(String Data Type)

字符串数据类型可包含字符、换行、回车以及制表符。

下面是一个关于某个 scheme 中字符串声明的例子:

<xs:element name="customer" type="xs:string"/>

文档中的元素看上去应该类似这样:

<customer>John Smith</customer>

或者类似这样:

<customer> John Smith </customer>

注释:如果您使用字符串数据类型,XML 处理器就不会更改其中的值。

规格化字符串数据类型(NormalizedString Data Type)

规格化字符串数据类型源自于字符串数据类型。

规格化字符串数据类型同样可包含字符,但是 XML 处理器会移除折行,回车以及制表符。

下面是一个关于在某个 schema 中规格化字符串数据类型的例子:

<xs:element name="customer" type="xs:normalizedString"/>

文档中的元素看上去应该类似这样:

<customer>John Smith</customer>

或者类似这样:

<customer> John Smith </customer>

注释:在上面的例子中,XML 处理器会使用空格替换所有的制表符。

Token 数据类型(Token Data Type)

Token 数据类型同样源自于字符串数据类型。

Token 数据类型同样可包含字符,但是 XML 处理器会移除换行符、回车、制表符、开头和结尾的空格以及(连续的)空格。

下面是在 schema 中一个有关 token 声明的例子:

<xs:element name="customer" type="xs:token"/>

文档中的元素看上去应该类似这样:

<customer>John Smith</customer>

或者类似这样:

<customer> John Smith </customer>

注释:在上面这个例子中,XML 解析器会移除制表符。

字符串数据类型

请注意,所有以下的数据类型均衍生于字符串数据类型(除了字符串数据类型本身)!

名称描述
ENTITIES 
ENTITY 
ID在 XML 中提交 ID 属性的字符串 (仅与 schema 属性一同使用)
IDREF在 XML 中提交 IDREF 属性的字符串(仅与 schema 属性一同使用)
IDREFS language包含合法的语言 id 的字符串
Name包含合法 XML 名称的字符串
NCName 
NMTOKEN在 XML 中提交 NMTOKEN 属性的字符串 (仅与 schema 属性一同使用)
NMTOKENS 
normalizedString不包含换行符、回车或制表符的字符串
QName 
string字符串
token不包含换行符、回车或制表符、开头或结尾空格或者多个连续空格的字符串

对字符串数据类型的限定(Restriction)

可与字符串数据类型一同使用的限定:

  • enumeration
  • length
  • maxLength
  • minLength
  • pattern (NMTOKENS、IDREFS 以及 ENTITIES 无法使用此约束)
  • whiteSpace

日期数据类型(Date Data Type)

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

日期使用此格式进行定义:"YYYY-MM-DD",其中:

  • YYYY 表示年份
  • MM 表示月份
  • DD 表示天数

注释:所有的成分都是必需的!

下面是一个有关 schema 中日期声明的例子:

<xs:element name="start" type="xs:date"/>

文档中的元素看上去应该类似这样:

<start>2002-09-24</start>

时区

如需规定一个时区,您也可以通过在日期后加一个 "Z" 的方式,使用世界调整时间(UTC time)来输入一个日期 - 比如这样:

<start>2002-09-24Z</start>

或者也可以通过在日期后添加一个正的或负时间的方法,来规定以世界调整时间为准的偏移量 - 比如这样:

<start>2002-09-24-06:00</start>

或者:

<start>2002-09-24+06:00</start>

时间数据类型(Time Data Type)

时间数据类型用于定义时间。

时间使用下面的格式来定义:"hh:mm:ss",其中

  • hh 表示小时
  • mm 表示分钟
  • ss 表示秒

注释:所有的成分都是必需的!

下面是一个有关 schema 中时间声明的例子:

<xs:element name="start" type="xs:time"/>

文档中的元素看上去应该类似这样:

<start>09:00:00</start>

或者类似这样:

<start>09:30:10.5</start>

时区

如需规定一个时区,您也可以通过在时间后加一个 "Z" 的方式,使用世界调整时间(UTC time)来输入一个时间 - 比如这样:

<start>09:30:10Z</start>

或者也可以通过在时间后添加一个正的或负时间的方法,来规定以世界调整时间为准的偏移量 - 比如这样:

<start>09:30:10-06:00</start>

或者:

<start>09:30:10+06:00</start>

日期时间数据类型(DateTime Data Type)

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

日期时间使用下面的格式进行定义:"YYYY-MM-DDThh:mm:ss",其中:

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

注释:所有的成分都是必需的!

下面是一个有关 schema 中日期时间声明的例子:

<xs:element name="startdate" type="xs:dateTime"/>

文档中的元素看上去应该类似这样:

<startdate>2002-05-30T09:00:00</startdate>

或者类似这样:

<startdate>2002-05-30T09:30:10.5</startdate>

时区

如需规定一个时区,您也可以通过在日期时间后加一个 "Z" 的方式,使用世界调整时间(UTC time)来输入一个日期时间 - 比如这样:

<startdate>2002-05-30T09:30:10Z</startdate>

或者也可以通过在时间后添加一个正的或负时间的方法,来规定以世界调整时间为准的偏移量 - 比如这样:

<startdate>2002-05-30T09:30:10-06:00</startdate>

或者:

<startdate>2002-05-30T09:30:10+06:00</startdate>

持续时间数据类型(Duration Data Type)

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

时间间隔使用下面的格式来规定:"PnYnMnDTnHnMnS",其中:

  • P 表示周期(必需)
  • nY 表示年数
  • nM 表示月数
  • nD 表示天数
  • T 表示时间部分的起始 (如果您打算规定小时、分钟和秒,则此选项为必需)
  • nH 表示小时数
  • nM 表示分钟数
  • nS 表示秒数

下面是一个有关 schema 中持续时间声明的例子:

<xs:element name="period" type="xs:duration"/>

文档中的元素看上去应该类似这样:

<period>P5Y</period>

上面的例子表示一个 5 年的周期。

或者类似这样:

<period>P5Y2M10D</period>

上面的例子表示一个 5 年、2 个月及 10 天的周期。

或者类似这样:

<period>P5Y2M10DT15H</period>

上面的例子表示一个 5 年、2 个月、10 天及 15 小时的周期。

或者类似这样:

<period>PT15H</period>

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

负的持续时间

如需规定一个负的持续时间,请在 P 之前输入减号:

<period>-P10D</period>

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

日期和时间数据类型

名称描述
date定义一个日期值
dateTime定义一个日期和时间值
duration定义一个时间间隔
gDay定义日期的一个部分 - 天 (DD)
gMonth定义日期的一个部分 - 月 (MM)
gMonthDay定义日期的一个部分 - 月和天 (MM-DD)
gYear定义日期的一个部分 - 年 (YYYY)
gYearMonth定义日期的一个部分 - 年和月 (YYYY-MM)
time定义一个时间值

对日期数据类型的限定(Restriction)

可与日期数据类型一同使用的限定:

  • enumeration
  • maxExclusive
  • maxInclusive
  • minExclusive
  • minInclusive
  • pattern
  • whiteSpace

十进制数据类型

十进制数据类型用于规定一个数值。

下面是一个关于某个 scheme 中十进制数声明的例子。

<xs:element name="prize" type="xs:decimal"/>

文档中的元素看上去应该类似这样:

<prize>999.50</prize>

或者类似这样:

<prize>+999.5450</prize>

或者类似这样:

<prize>-999.5230</prize>

或者类似这样:

<prize>0</prize>

或者类似这样:

<prize>14</prize>

注释:您可规定的十进制数字的最大位数是 18 位。

整数数据类型

整数数据类型用于规定无小数成分的数值。

下面是一个关于某个 scheme 中整数声明的例子。

<xs:element name="prize" type="xs:integer"/>

文档中的元素看上去应该类似这样:

<prize>999</prize>

或者类似这样:

<prize>+999</prize>

或者类似这样:

<prize>-999</prize>

或者类似这样:

<prize>0</prize>

数值数据类型

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

名字秒数
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 位整数

对数值数据类型的限定(Restriction)

可与数值数据类型一同使用的限定:

  • enumeration
  • fractionDigits
  • maxExclusive
  • maxInclusive
  • minExclusive
  • minInclusive
  • pattern
  • totalDigits
  • whiteSpace

逻辑数据类型(Boolean Data Type)

逻辑数据性用于规定 true 或 false 值。

下面是一个关于某个 scheme 中逻辑声明的例子:

<xs:attribute name="disabled" type="xs:boolean"/>

文档中的元素看上去应该类似这样:

<prize disabled="true">999</prize>

注释:合法的布尔值是 true、false、1(表示 true) 以及 0(表示 false)。

二进制数据类型(Binary Data Types)

二进制数据类型用于表达二进制形式的数据。

我们可使用两种二进制数据类型:

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

下面是一个关于某个 scheme 中 hexBinary 声明的例子:

<xs:element name="blobsrc" type="xs:hexBinary"/>

AnyURI 数据类型(AnyURI Data Type)

anyURI 数据类型用于规定 URI。

下面是一个关于某个 scheme 中 anyURI 声明的例子:

<xs:attribute name="src" type="xs:anyURI"/>

文档中的元素看上去应该类似这样:

<pic src="http://www.w3schools.com/images/smiley.gif" />

注释:假如某个 URI 含有空格,请用 %20 替换它们。

杂项数据类型(Miscellaneous Data Types)

名称描述
anyURI 
base64Binary 
boolean 
double 
float 
hexBinary 
NOTATION 
QName 

对杂项数据类型的限定(Restriction)

可与杂项数据类型一同使用的限定:

  • enumeration (布尔数据类型无法使用此约束*)
  • length (布尔数据类型无法使用此约束)
  • maxLength (布尔数据类型无法使用此约束)
  • minLength (布尔数据类型无法使用此约束)
  • pattern
  • whiteSpac 

这篇关于XSD 数据类型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/910533

相关文章

Rust 数据类型详解

《Rust数据类型详解》本文介绍了Rust编程语言中的标量类型和复合类型,标量类型包括整数、浮点数、布尔和字符,而复合类型则包括元组和数组,标量类型用于表示单个值,具有不同的表示和范围,本文介绍的非... 目录一、标量类型(Scalar Types)1. 整数类型(Integer Types)1.1 整数字

C 语言的基本数据类型

C 语言的基本数据类型 注:本文面向 C 语言初学者,如果你是熟手,那就不用看了。 有人问我,char、short、int、long、float、double 等这些关键字到底是什么意思,如果说他们是数据类型的话,那么为啥有这么多数据类型呢? 如果写了一句: int a; 那么执行的时候在内存中会有什么变化呢? 橡皮泥大家都玩过吧,一般你买橡皮泥的时候,店家会赠送一些模板。 上

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变

Redis地理数据类型GEO

通常要计算两个地理位置的距离不是很方便,这里可以直接通过Redis提供的GEO操作来完成地理位置相关的计算 1)添加地理位置 语法:geoadd key longitude latitude member [longitude latitude member] ...字段说明:key:存放地理位置的集合名称longitude:地理坐标的经度latitude:地理坐标的纬度member:表示这

【JavaScript】基本数据类型与引用数据类型区别(及为什么String、Boolean、Number基本数据类型会有属性和方法?)

基本数据类型   JavaScript基本数据类型包括:undefined、null、number、boolean、string。基本数据类型是按值访问的,就是说我们可以操作保存在变量中的实际的值。 1)基本数据类型的值是不可变的 任何方法都无法改变一个基本类型的值,比如一个字符串: var name = "change";name.substr();//hangconsole.log

【MySQL】MySQL常用的数据类型——表的操作

前言: 🌟🌟本期讲解关于MySQL常用数据类型,表的简单使用,希望能帮到屏幕前的你。 🌈上期博客在这里:http://t.csdnimg.cn/wwaqe 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客   目录 前言: 📚️1.MySQL常用的数据类型 1.1数值类型 1.2字符串类型 1.3日期类型  📚️2.表的简单操作 2.1创建

c语言(三种语言对比、数据类型及输出、变量存储、内存分配)

数据类型: 变量的输出: c语言不能直接打印数字,字符,只能将他们转化成字符串打印, printf("%d\n", num); %d 是整数占位符,将来由逗号右边的变量的值占据这个位置。(%i和%d是一样的) %f 是浮点数占位符,默认输出小数点后6位,若只想输出小数点后两位:%.2f %c 是字符型数据占位符。

SpinalHDL之数据类型(一)

本文作为SpinalHDL学习笔记第五十四篇,介绍SpinalHDL的Bool数据类型。 SpinalHDL技术交流QQ群: Note: 1.本群是个人技术交流群,不是什么官方答疑群; 2.提问是你的权利,但回答不是别人的义务; 3.可以潜水,不能灌水; 4.请文明交流,做这行的都算高层次人才,希望你有对应的高素质; 5.不强制改名,但希望统一格式:姓名(昵称也行)-公司/学校-

MySQL数据类型和Schema优化(二)

MySQL数据类型和Schema优化 MySQL合适的数据类型日期和时间类型(datetime、timesamp)整数类型实数类型(float\double\decimal)字符串类型(Varchar、Char) Schema设计缓存表和汇总表 MySQL 良好的逻辑设计与物理设计是高性能的基石,应该根据具体业务需求的查询语句来设计schema,这往往需要权衡各种因素。 比如

【R语言数据类型】深入了解 向量、矩阵、数据框、列表

R语言数据类型有向量、矩阵、数据框、列表。下面我们来深入了解下: vector 的划分 R中的vector分为两类,atomic和list,二者的区别在于,前者元素类型必须相同,后者可以不同。前者的代表是向量和矩阵,后者的代表是list和数据框。 创建向量、矩阵、数据框、列表 # atomica <- 1:5b <- letters[1:5]c <- 1:10mat <- matr