XML 知识量:7 - 28 - 99
XML Schema支持丰富的数据类型,主要可以分3类:基本数据类型、内置派生的数据类型和自定义数据类型。
基本数据类型如下表所示:
数据类型 | 说明 |
---|---|
string | 任意长度的字符串 |
boolean | 布尔型,真值为True或1,假值为False或0 |
float | 单精度32位浮点数 |
double | 双精度64位浮点数 |
integer | 十进制整型 |
decimal | 任意精度的十进制数 |
duration | 持续的日期/时间数据,格式为PYYMMDDTHHMMSS,其中,P为打头字符,YY表示年,MM表示月,DD表示日,T为分隔日期和时间的字符,HH表示时,MM表示分,SS表示秒。 |
dateTime | 日期时间型,格式为YYYY-MM-DD hh:mm:ss |
date | 日期型,格式为YYYY-MM-DD |
time | 时间型,格式为HH:MM:SS |
hexBinary | 十六进制表示的二进制数据,包括图形文件、可执行程序或其他二进制数据的字符串 |
anyURI | URL地址 |
内置派生的数据类型如下表所示:
数据类型 | 说明 |
---|---|
normalizedString | 格式化字符串数据类型,派生自string类型,包含字符,但XML处理器会移除换行符、回车符合制表符。 |
token | 源自string类型,包含字符,但XML处理器会移除换行符、回车符、制表符、开头和结尾的空格及连续的空格。 |
language | 由token派生,表示合法的xml:lang属性值,如EN、ZH等。 |
NMTOKEN | 由token派生,与DTD中含义相同。 |
NMTOKENS | 源自NMTOKEN,与DTD中含义相同。 |
Name | 由token派生,指定XML文档名称字符串。 |
NCName | 源自Name,指定XML文档中不含命名空间前缀的名称字符串。 |
ID | 由NCName派生,与DTD中含义相同。 |
IDREF | 源自NCName,与DTD中含义相同。 |
IDREFS | 由IDREF派生,与DTD中含义相同。 |
ENTITY | 源自NCName,与DTD中含义相同。 |
ENTITYS | 由ENTITY派生,与DTD中含义相同。 |
nonPositiveInteger | 源自integer,表示小于或等于0的整数。 |
nonNegativeInteger | 源自integer,表示大于或等于0的整数。 |
long | 源自integer,表示长整数。 |
negativeInteger | 源自nonPositiveInteger,表示小于0的整数。 |
positiveInteger | 源自nonNegativeInteger,表示大于0的整数。 |
unsignedLong | 源自nonNegativeInteger,表示无符号长整数。 |
int | 由long派生,表示32位带符号整数。 |
short | 由int派生,表示16位带符号整数。 |
unsignedInt | 由unsignedLong派生,表示32位非负整数。 |
byte | 源自short,表示8位带符号整数。 |
unsignedShort | 源自unsignedInt,表示16位非负数字。 |
unsignedByte | 源自unsignedShort,表示8位非负数字。 |
在XML Schema中使用simpleType元素来自定义需要的数据类型,其语法为:
<xs:simpleType name="自定义数据类型名称"> <xs:restriction base="数据类型"> ...... </xs:restriction> </xs:simpleType>
其中:
name属性表示自定义数据类型的名称。
restriction元素用于定义自定义的数据类型,属性base指明自定义数据类型派生于哪一种基本数据类型。
省略部分用于描述自定义数据类型的细节,例如长度、取值范围、枚举值等。
描述自定义数据类型细节时可使用以下元素:
元素 | 说明 |
---|---|
minInclusive | 内容的最小取值,且包含该值。 |
maxInclusive | 内容的最大取值,且包含该值。 |
minExclusive | 内容的最小取值,且不含该值。 |
maxExclusive | 内容的最大取值,且不含该值。 |
length | 元素内容的长度 |
minLength | 元素内容的最小长度 |
maxLength | 元素内容的最大长度 |
list | 允许输入多少个数据,数据间用空白间隔。 |
pattern | 正规语法定义数据的组合类型 |
enumeration | 枚举列表 |
union | 元素内可包含多种不同类型数据,但同时只能包含一种。 |
totalDigits | 最大数字的位数 |
其中,除list和union以外,都需要嵌套在restriction元素内,且都有value属性。通过设置value,可具体指明数据的取值范围或长度等细节。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6