18.XSD 字符串数据类型
字符串数据类型用于定义字符串的值的。
18.1字符串数据类型
字符串数据类型包括字符,换行符,回车符,和制表符.
下面是关于字符在schema(XML公式)里的声明方法的例子:
<xs:element name="customer" type="xs:string"/>
你文档中也许有这样的元素:
<customer>John Smith</customer>
它也许会是这样:
<customer> John Smith </customer>
注意:如果你用字符串数据类型,XML处理器将不会修改数值。
18.2规格化的字符串数据类型(NormalizedString Data Type)
规格化的字符串数据类型是从字符数据类型里派生出来的。规格化的字符串数据类型也包括字符,但XML processor会清除换行符,回车符和制表符。
下面的是关于一个规格化的字符串数据类型(normalizedString)在Schema中声明方法的例子:
<xs:element name="customer" type="xs:normalizedString"/>
你的文档中也许有像这样的元素:
<customer>John Smith</customer>
或者它也许会是这样:
<customer> John Smith </customer>
注意:上述例子里XML处理器会用空格符替代制表符.
18.3记号(token)数据类型
记号数据类型也是从字符串数据类型里派生出来的。记号数据类型也包括字符,但XML处理器会清除换行符,回车符,制表符,头尾的空格,以及多重的(multiple)空格。
下面是关于符号(token)在schema中声明的例子:
<xs:element name="customer" type="xs:token"/>
你文档中的元素也许像这样:
<customer>John Smith</customer>
或者它也有可能像这样:
<customer> John Smith </customer>
注意:在上述例子里,XML处理器会清除制表符。
18.4字符串数据类型
要注意下面所有的数据类型都是从字符串数据类型里派生出来的(除了字符串本身)
| 名称 | 解释 |
| 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 | 不含有换行符,回车符,制表符,头尾空格,或重复空格的字符串 |
18.5对字符串数据类型的约束(Restrictions on String Data Types)
可约束的字符串数据类型:
◆enumeration 列举
◆length 长度
◆maxLength 最大长度
◆minLength最小长度
◆pattern 式样(不能约束NMTOKENS, IDREFS,和 ENTITIES)
◆whiteSpace 空白
19.XSD 日期数据类型
日期和时间数据类型(Date and time data types)用于定义日期和时间数据的。
19.1日期数据类型
日期数据类型用于指定一个具体的日期。日期由下面的"YYYY-MM-DD"形式指定。 YYYY指示年份;MM指示月份;DD 指示日期 。
注意:所有组件都是必需的。
下面是schema(XML公式)里的声明日期的例子
<xs:element name="start" type="xs:date"/>
你文档中的某个元素也许是这样的:
<start>
19.2时间区
为指定一个时间区,你既可以通过在日期的后面加个"Z"访问UTC时间格式的日期,就像这样:
<start>
也可以UTC时间后加、减一个时间值,就像这样:
<start>
or
<start>
19.3时间数据类型
时间数据类型用于指定一个时间。时间由下面的"hh:mm:ss"形式指定:hh指示小时; mm 指示分钟 ; ss指示秒钟 。
注意:所有的组件都是必需的
下面是schema(XML公式)里的时间声明的例子
<xs:element name="start" type="xs:time"/>
你文档中或许有这样的元素:
<start>09:00:00</start>
或者是这样的:
<start>09:30:10.5</start>
19.4时间区
同19.2
19.5日期时间数据类型(DateTime Data Type)
日期时间数据类型用于指定一个日期和一个时间。日期时间由"YYYY-MM-DDThh:mm:ss"的形式指定。
注意:所有组件都是必需的
下面是schema(XML公式)里的日期时间声明的例子
<xs:element name="startdate" type="xs:dateTime"/>
你文档中或许有这样的元素:
<startdate>
或者是这样的:
<startdate>
19.6时间区
同19.2
19.7持续时间数据类型(或“时间段数据类型”)(Duration Data Type)
持续时间数据类型(或“时间段数据类型”)用于定义一段时间间隔。时间间隔由"PnYnMnDTnHnMnS"形式定义的,P指示时间段(必需);nY指示年数;nM指示月数;nD指示天数 ;T指示时间部分的开头(如果你要指定时间,分钟,或秒数,就必须用到T);nH指示小时数; nM指示分钟数 ; nS指示秒数。
下面是schema(XML公式)里的时间段声明的例子:
<xs:element name="period" type="xs:duration"/>
你文档中或许有这样的元素:
<period>P5Y</period>
上面的例子指示了5年的时间段。
或者也可以像这样:
<period>P5Y
上面的例子指出了5年2个月零10天的时间段。
它也可以这样:
<period>P5Y
上面的例子指出了5年2个月零10天的时间段。
或者它会是可以这样:
<period>PT15H</period>
上面的例子指出了15小时的时间段。
19.8负时间段
为定义负的时间段,在P之前添个负号:
<period>-P10D</period>
上面的例子指出里负10天的时间段。
19.9日期和时间数据类型
| 名称 | 解释 |
| date | 定义日期的值 |
| dateTime | 定义了日期和时间值 |
| duration | 定义了时间间隔 |
| gDay | 定义了日期的部分定义了时间的一部分——日部分(DD) |
| gMonth | 定义了日期的一部分——月部分(MM) |
| gMonthDay | 定义了日期的一部分——月和日部分(MM-DD) |
| gYear | 定义了日期的年部分(YYYY) |
| gYearMonth | 定义了日期的一部分——年和月部分(YYYY-MM) |
| time | 定义时间值 |
19.10对日期数据类型的约束
对日期数据类型可进行约束:
◆enumeration 列举
◆maxExclusive 除去最大值
◆maxInclusive 包括最大值
◆minExclusive 除去最小值排外
◆minInclusive 包括最小值
◆pattern 式样
◆whiteSpace 空白
20.XSD 小数数据类型
小数数据类型用于指定一个数值。
20.1小数数据类型
下面是在schema(XML公式)里关于小数声明的例子
<xs:element name="prize" type="xs:decimal"/>
你文档中的一个元素也许会像这样:
<prize>999.50</prize>
或者会像这样:
<prize>+999.5450</prize>
又或者像这样:
<prize>-999.5230</prize>
也可能这样:
<prize>14</prize>
注意:可以指定的小数位数最多是18位。
20.2数字数据类型
要注意的是下面所有的数据类型都是从小数数据类型里派生出来的(除了小数自身)
| 名称 | 解释 |
| 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位的不带符号整数 |
20.3对字数据类型的约束
可用于约束的数字数据类型:
◆enumeration 列举
◆fractionDigits 小数位数
◆maxExclusive 除去最大值
◆maxInclusive 包括最大值
◆minExclusive 除去最小值
◆minInclusive 包括最小值
◆pattern 式样类型
◆totalDigits 总的数字位数
◆whiteSpace 空白部分
21.XSD 逻辑值数据类型
其他混合的数据类型包括逻辑值(boolean),基本的64个二进制数、十六进位数、浮点精度小数、双精度型数、anyURI、限定名称(QName)和符号。
21.1逻辑值数据类型
逻辑型数据类型用于指定值为真或假。
以下是在schema(XML公式)里有关逻辑声明的例子:
<xs:attribute name="disabled" type="xs:boolean"/>
你文档里或许有这样的元素:
<prize disabled="true">999</prize>
注意:合法的逻辑值是true,false,1(指示真),0(指示假)
21.2二进制数据类型
二进制数据用于表示二进制的数据。我们有两种二进制数据类型:
①基础64二进制(
②16进制(16进位编码的二进制数据hexadecimal-encoded binary data)
以下是关于十六进位数在schema里的声明方法:
<xs:element name="blobsrc" type="xs:hexBinary"/>
21.3anyURI数据类型
anyURI数据类型用于指定一个URI.
以下是关于anyURI在schema里的声明方法:
<xs:attribute name="src" type="xs:anyURI"/>
你文档里也许有这个元素:
<pic src="http://www.w3schools.com.sixxs.org/images/smiley.gif" />
注意:如果URI包含空格,可以用“%20”替代它们。
21.4对混合数据类型的约束
可用于约束的其他数据类型:
◆enumeration列举(不能用此约束逻辑值数据类型)
◆length长度(不能用此约束逻辑值数据类型)
◆maxLength最大长度(不能用此约束逻辑值数据类型)
◆minLength最短长度(不能用此约束逻辑值数据类型)
◆pattern式样
◆whiteSpace空白