`
Josh_Persistence
  • 浏览: 1654108 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

XML Schema - 应用程序中读取和创建XSD - (四) XSD强大的数据类型之各种数据类型

    博客分类:
  • XML
阅读更多
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


XSD 日期及时间数据类型(Date and Time Data Types)


日期及时间数据类型用于包含日期和时间的值。
日期数据类型(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

XSD 数值数据类型(Numeric Data Types)

十进制数据类型用于数值。
十进制数据类型

十进制数据类型用于规定一个数值。

下面是一个关于某个 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


XSD 杂项数据类型(Miscellaneous Data Types)

其他杂项数据类型包括逻辑、base64Binary、十六进制、浮点、双精度、anyURI、anyURI 以及 NOTATION。
逻辑数据类型(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.w3school.com.cn/images/smiley.gif" />

注释:假如某个 URI 含有空格,请用 %20 替换它们。
杂项数据类型(Miscellaneous Data Types)
名称 描述
anyURI
base64Binary
boolean
double
float
hexBinary
NOTATION
QName
对杂项数据类型的限定(Restriction)

可与杂项数据类型一同使用的限定:

    enumeration (布尔数据类型无法使用此约束*)
    length (布尔数据类型无法使用此约束)
    maxLength (布尔数据类型无法使用此约束)
    minLength (布尔数据类型无法使用此约束)
    pattern
    whiteSpace


您已经学习了 XML Schema,下一步学习什么呢?



XML Schema 概要

本教程已经向您讲解了如何描述 XML 文档的结构。

您已经学习了如何使用 XML Schema 来定义 XML 文档的合法元素,就像 DTD。我们认为,XML Schema 作为 DTD 的替代者,会很快被应用于大多数 Web 应用程序中。

您还学习到,XML Schema 是很完善的。与 DTD 不同,XML Schema 支持数据类型(data type)和命名空间(namespace)。

请参阅我们的 XML Schema 参考手册,获得更多有关 XML Schema 的信息。
您已经学习了 XML Schema,下一步学习什么呢?

下一步应该学习 WSDL。

WSDL 是一种基于 schema 的语言,用来描述 Web service 以及如何如何访问它们。

WSDL 可描述 Web service,连同用于 Web service 的消息格式和协议细节。
分享到:
评论

相关推荐

    xmlschema-1.4.5.jar.zip

    在Java环境中,`xmlschema-1.4.5.jar`是一个关键组件,它提供了一系列API供开发者使用,以便在应用程序中解析、验证XML文档。这个库通常被集成到那些需要处理XML数据,比如Web服务、数据交换或配置文件的应用中。它...

    XML Schema简明教程-W3C.rar

    在此教程中,你将学习如何在应用程序中读取和创建 XML Schema 语言,XML Schema 为何比 DTD 更加强大,以及如何在您的应用程序中使用 XML Schema。 什么是 XML Schema? XML Schema 的作用是定义 XML 文档的合法构建...

    XmlSchema-1.4.7.jar

    总之,XmlSchema-1.4.7.jar 是Java环境中处理XML Schema的重要工具,它提供了强大的XML Schema解析和验证功能,有助于确保XML数据的准确性和一致性。对于涉及XML数据交换的Java项目,此库是不可或缺的组成部分。

    XML Schema教程

    - **在应用程序中读取和创建 XML Schema**:了解如何解析和生成 XML Schema 文件对于开发基于 XML 的应用至关重要。 - **在应用程序中使用 XML Schema**:XML Schema 可以用于验证 XML 数据的有效性,确保其符合预期...

    xml Schema 例子(C#写的验证程序)

    XML Schema,全称为XML Schema Definition (XSD),是一种用于定义XML文档结构和数据类型的规范。它是W3C标准的一部分,提供了强大的验证机制,确保XML文档符合预设的规则和约束。在C#编程环境中,我们可以利用.NET ...

    xsd生成xml工具

    在IT行业中,XML(eXtensible Markup Language)是一种用于标记数据的标准格式,而XSD(XML Schema Definition)则是用于定义XML文档结构和数据类型的规范。"xsd生成xml工具"是一个实用程序,它允许开发者根据XSD...

    java根据xml生成schema_xsd_生成javabean

    2. XSD到JavaBean的生成:生成JavaBean是将XSD文件中的元素和属性映射为Java类的过程,这有助于在Java应用程序中操作XML数据。通常,开发者会使用命令行脚本或者库来完成这个任务。例如,`createPro_Xsd.bat`和`...

    xml文件转xsd文件

    XSD(XML Schema Definition)文件则是一种规范,用于定义XML文档的结构和数据类型,为XML提供了形式化的语法规则。将XML文件转换为XSD文件,主要是为了更好地管理和验证XML文档的结构,确保数据的一致性和准确性,...

    java中实现xmlschema验证文件借鉴.pdf

    在Java中,XML Schema(XSD)用于定义和验证XML文档的结构和数据类型,确保文档遵循特定的规范。XML Schema文档使用XML语法定义了一系列规则,这些规则描述了有效XML文档应该具有的元素、属性、数据类型以及它们之间...

    扩展XML Schema Validator--MSV

    1. **模式合并**:MSV支持多个XML Schema之间的合并,允许开发者在一个文档中引用并合并多个XSD文件,这样可以在一个地方定义和管理复杂的数据结构。 2. **导入与包含**:MSV处理XML Schema的导入和包含机制,使得...

    XML Schema 教程(word版本)

    在此教程中,你将学习如何在应用程序中读取和创建 XML Schema 语言,XML Schema 为何比 DTD 更加强大,以及如何在您的应用程序中使用 XML Schema。 (注,以上文档完全是我整理的难点要点的笔记!)

    spring-aop-3.0.xsd spring-beans-3.0 spring-context-3.0.xsd spring-mvc-3.1.xsd

    Spring 框架是 Java 开发中的核心框架之一,它为构建可维护、模块化的应用程序提供了强大的支持。在提供的信息中,我们关注的是 Spring 的一些关键组件和它们对应的 XML 配置文件,这些文件通常用于定义和管理 ...

    xml 转成xsd

    将XSD转换为Java Bean有助于在Java应用程序中直接操作和管理XML数据。通过这种方式,开发者可以将XML数据映射到Java对象,便于进行业务逻辑处理和数据持久化。 具体实现上,该工具类可能使用了诸如Trang这样的库,...

    Java通过XML Schema校验XML

    XML Schema(XSD)作为一种用于描述XML文档结构和数据类型的标准,提供了更为强大的数据类型支持和约束定义能力,相较于早期的DTD(Document Type Definition),XSD被更多地应用于XML文档的校验中。 然而,Java中...

    通过Schema验证XML格式是否正确

    5. **XmlSchema类**:该类用于加载和处理XML Schema文件,可以创建一个XmlSchema对象来读取XSD文件,并构建出XML文档必须遵循的结构模型。 6. **XmlDocument类**:此类代表XML文档,提供加载XML数据、验证文档以及...

    C#验证xml是否满足xsd规则

    在IT行业中,XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,而XSD(XML Schema Definition)则是用来定义XML文档结构和数据类型的规范。当我们需要确保XML文档符合特定的结构和约束时,就...

    XSD使用dom4j校验XML

    在IT行业中,XML(eXtensible Markup Language)是一种用于数据交换的标准格式,而XSD(XML Schema Definition)则是用于定义XML文档结构和数据类型的规范。DOM4J是Java环境中一个强大、灵活的XML处理库,它提供了...

    检测xml和xsd的代码及程序

    XML(eXtensible Markup Language)和XSD(XML Schema Definition)是Web开发中的关键标准,主要用于数据描述和结构化验证。XML是一种标记语言,它允许我们以自定义的方式描述数据,而XSD则是一种规范,用于定义XML...

    xml-应用技术

    6. XML Schema(XSD):XML Schema定义了XML文档的结构和数据类型,用于验证XML文档是否符合规范。 在实际应用中,XML还与其他技术结合,如XSL-FO(用于生成打印布局),以及XML签名和加密来确保数据的安全性。总的...

    xsd验证xml - 含

    在XML中,XSD是一种规范,它定义了XML文档的结构和数据类型,确保XML文档的数据符合预设的规则,从而提高数据的准确性和一致性。这个过程对于保证数据交换的正确性至关重要,特别是在大型企业系统或复杂的数据交互...

Global site tag (gtag.js) - Google Analytics