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 数据类型的更多相关文章
- XML学习笔记4——XSD简单数据类型
XSD提供了数据类型,并且支持自定义数据类型,但这一切都是建立在XSD内置数据类型和一套扩展内置数据类型的规则基础之上的,在这一篇笔记中,就来看看XSD中的数据类型. 1.XSD数据类型图 先看一下数 ...
- XML学习笔记3——XSD简述
现在的语言,如果不有那么一点OO的影子,都不好意思称之为语言了.在XML的语义约束方面,DTD虽然简单,但是功能不够强大,完全是直白的描述,于是又有了替代DTD的XSD(XML Schema Defi ...
- BizTalk开发系列(二十五) SQL Adapter
SQL Server 是.NET开发的首选数据库.当然开发BizTalk应用程序很多也离不了SQL Server.针对SQL Server的数据操作BizTalk 提供了SQL Adapter作为与数 ...
- XML Schema的基本语法(转)
XML Schema的基本语法(转) XSDL(XML Schema定义语言)由元素.属性.命名空间和XML文档种的其他节点构成的. 一.XSD中的元素 XSD文档至少要包含:schema根元素和XM ...
- C#: .net序列化及反序列化 [XmlElement(“节点名称”)]
.net序列化及反序列化 序列化是指一个对象的实例可以被保存,保存成一个二进制串,当然,一旦被保存成二进制串,那么也可以保存成文本串了.比如,一个计数器,数值为2,我们可以用字符串“2”表示.如果有个 ...
- XML Schema <第三篇>
验证XML文档是否符合议定的XML结构有两种方法,分别是DTD模式与XML Schema.本文主要介绍XML Schema. 一.XML Schema的优点 XML Schema基于XML,没有专门的 ...
- Asp.Net_序列化、反序列化
.net序列化及反序列化 在我们深入探讨C#序列化和反序列化之前我们先要明白什么是序列化,它又称串行化,是.NET运行时环境用来支持用户定义类型的流化的机制.序列化就是把一个对象保存到一个文件或数据库 ...
- 在C#中使用属性控制 XML 序列化来解析XML
今天需要解析一个XML,这个XML和一般情况用.NET的序列化出来的格式不太一样. 我就又补习了一下. 分享一下学习成果吧. 示例代码下载: http://download.csdn.net/deta ...
- .net 系列化与反序列化(转载)
.net序列化及反序列化 转载自:http://www.cnblogs.com/Tim_Liu/archive/2010/11/09/1872587.html 序列化是指一个对象的实例可以被保存,保存 ...
随机推荐
- 【web技术】html特效代码(一)
小续 还记得当初和八哥一起制作百家成员chm电子书的时候,各种特效啊,这里收集了一些个人比较喜欢的html特效,看个人喜欢了,不喜勿喷啊 html特效代码(一) html特效代码(二) 3D相册代码 ...
- css3 loading 效果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Windows删除/修改注册表权限不足的解决方法
在注册表的某些关键项(譬如:System.Root),连Administrator都没有权限进行修改,因为只有“system”有权限. [警告]切勿企图进行注册表上层权限覆盖低层权限的方式来使Admi ...
- html5+css3比较好的学习教程和demo效果
1.css3 Animate.css 动画库--- http://daneden.github.io/animate.css/ 2.font-awesome 完美的图标字体,只为Bootstrap设计 ...
- S3C2440串口的基本使用
2440A有三个串口,我们使用串口0对它进行了解熟悉. 首先肯定是应该找到手册上串口0所对应的引脚,然后配置相应寄存器. 串口0对应GPIO H的 2,3 串口在单片机中我们已经有很多使用经验了,对于 ...
- iOS开发:代码通用性以及其规范 第一篇(附带,自定义UITextView\进度条\双表显示\瀑布流 代码设计思路)
在iOS团队开发中,我见过一些人的代码,也修改过他们的代码.有的人的代码写的非常之规范.通用,几乎不用交流,就可以知道如何修改以及在它基础上扩展延生.有的人的代码写的很垃圾,一眼看过去,简直会怀疑自己 ...
- firefox快捷键窗口和标签类
firefox快捷键窗口和标签类: 关闭标签: Ctrl+W 或 Ctrl+F4关闭窗口: Ctrl+Shift+W 或 Alt+F4向左移动标签: Ctrl+左方向键 或 Ctrl+上方向键向右移动 ...
- JAVA-JSP内置对象之pageContext对象取得不同范围属性
相关资料:<21天学通Java Web开发> pageContext对象取得不同范围属性 pageContextDemo.jsp <%@ page language="ja ...
- JAVA-JSP内置对象之request范围
相关资料:<21天学通Java Web开发> request范围1.在一次请求内有效.2.如果页面从一个页面跳转到另一个页面,那么属性就失效了.3.如果使用服务器端跳转<jsp:fo ...
- 基于jquery下拉列表树插件代码
分享一款基于jquery下拉列表树插件代码.这是一款实用的jquery 树形下拉框 下拉树代码下载.效果图如下: 在线预览 源码下载 实现的代码. html代码: <table width= ...