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
时间: 2024-08-04 15:27:35

XSD 数据类型的相关文章

asp.net序列化跟反序列化

.net序列化及反序列化 在我们深入探讨C#序列化和反序列化之前我们先要明白什么是序列化,它又称串行化,是.NET运行时环境用来支持用户定义类型的流化的机制.序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用.其目的是以某种存储形成使自定义对象持久化,或者将这种对象从一个地方传输到另一个地方..NET框架提供了两种串行化的方式: 1.是使用BinaryFormatter进行串行化:2.使用SoapFormatter进行串行化:3.使用Xm

XForms XPath函数使用手册

1. 概要 本文所描述的所有函数为XForms 1.1所提供的xpath函数,这些函数只能在GForms的xpath编辑器中可用,这样才能在运行时识别并执行. 不可在XMLUtil.标准XML DOM中使用这些函数. GForms平台提供xpath编辑器,该编辑器可以协助开发者完成大多数xpath表达式开发: 2. 节点函数 2.1. instance node-set instance(string?) An XForms Model can contain more than one ins

C#: .net序列化及反序列化 [XmlElement(“节点名称”)] [XmlAttribute(“节点属性”)] (下篇)

介绍 XML 序列化 .NET Framework 开发员指南   序列化是将对象转换为容易传输的格式的过程.例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象.在另一端,反序列化将从该流重新构造对象. XML 序列化仅将对象的公共字段和属性值序列化为 XML 流.XML 序列化不包括类型信息.例如,如果您有一个存在于 Library 命名空间中的 Book 对象,将不能保证它将会被反序列化为同一类型的对象. 注意   XML 序列化不转换方法.

C#.NET解析XML(使用属性控制 XML 序列化)

使用属性可以控制对象的 XML 序列化. 默认情况下,XML 元素名称由类或成员名称确定.在名为 Book 的简单类中,字段 ISBN 将生成 XML 元素标记 <ISBN>,如下面的示例所示. [csharp] view plain copy public class Book { public string ISBN; } // When an instance of the Book class is serialized, it might // produce this XML: /

C#: .net序列化及反序列化 [XmlElement(“节点名称”)]

.net序列化及反序列化 序列化是指一个对象的实例可以被保存,保存成一个二进制串,当然,一旦被保存成二进制串,那么也可以保存成文本串了.比如,一个计数器,数值为2,我们可以用字符串“2”表示.如果有个对象,叫做connter,当前值为2,那么可以序列化成“2”,反向的,也可以从“2”得到值为2的计数器实例.这样,关机时序列化它,开机时反序列化它,每次开机都是延续的.不会都是从头开始. 序列化概念的提出和实现,可以使我们的应用程序的设置信息保存和读取更加方便. 序列化有很多好处,比如,在一台机器上

XML Schema &lt;第三篇&gt;

原文:http://www.cnblogs.com/kissdodog/archive/2013/02/25/2931941.html 验证XML文档是否符合议定的XML结构有两种方法,分别是DTD模式与XML Schema.本文主要介绍XML Schema. 一.XML Schema的优点 XML Schema基于XML,没有专门的语法. XML Schema可以像其他XML文件一样解析和处理. XML Schema支持一系列的数据类型(int.float.Boolean.date等). XM

.net 系列化与反序列化(转载)

.net序列化及反序列化 转载自:http://www.cnblogs.com/Tim_Liu/archive/2010/11/09/1872587.html 序列化是指一个对象的实例可以被保存,保存成一个二进制串,当然,一旦被保存成二进制串,那么也可以保存成文本串了.比如,一个计数器,数值为2,我们可以用字符串“2”表示.如果有个对象,叫做connter,当前值为2,那么可以序列化成“2”,反向的,也可以从“2”得到值为2的计数器实例.这样,关机时序列化它,开机时反序列化它,每次开机都是延续的

Genero BDL错误

系统错误消息按错误号排序.-201 发生语法错误.此常规SQL错误消息表示SQL语句的语法错误.寻找缺失或额外的标点符号;?关键字拼写错误,误用或不按顺序,或用作标识符的保留字.-204 声明中发现了非法的浮点数.像浮点数(带小数点和/或以e开头的指数)标点的数字常量是不可接受的.可能指数大于可处理的指数.-206 指定的表table-name不在数据库中.数据库服务器找不到语句中指定的表或视图.表或视图可能已从数据库重命名或删除.-213 声明被用户中断.数据库服务器从用户接收到中断信号.声明

.Net中使用xsd验证xml文档

在.NET中使用XSD可以方便的验证一个XML文档是否符合规范.这里的XSD本质上是一个xml文件,XSD相当于数据库中的表结构或者C#语言中的一个抽象类,它规定了被验证的目标xml的结构,如目标xml具有哪些节点,每个节点的顺序关系,每个节点的数据类型,每个节点的出现次数等信息. .NET中通过XmlReader和XmlReaderSettrings类可以方便的对XML进行验证,示例代码如下: 1         static void Main(string[] args) 2 { 3 //