• 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 
  • 相关阅读:
    【转】SQL SERVER函数无法执行对数据库的修改语句
    【转】用SQL实现树的查询
    HTML: < 和 > 是何方神圣
    ASP.NET的一些小问题
    C#的MD5哈希值计算
    高度自适应的CSS
    [转]WCF类型共享技巧
    使用.net的跟踪诊断来记录wcf消息
    【转】js frame 框架编程
    js点击button按钮跳转到页面代码
  • 原文地址:https://www.cnblogs.com/xuxiuxiu/p/7219237.html
Copyright © 2020-2023  润新知