W3C公司

XML模式第2部分:数据类型第二版

W3C建议2004年10月28日

此版本:
http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/
最新版本:
http://www.w3.org/TR/xmlschema-2/
以前的版本:
http://www.w3.org/TR/2004/PER-xmlschema-2-20040318/
编辑:
Paul V.Biron,Kaiser Permanente,健康等级7<Paul.V.Biron@kp.org>
Ashok Malhotra,微软(前IBM)<ashokma@microsoft.com>

请参阅勘误表对于本文件,可能包括一些规范性更正。

本文件也有以下非标准格式:XML格式,带有可见更改标记的XHTML,架构文档架构的独立副本,仅用于内置数据类型的模式,位于单独的命名空间中、和模式文档DTD的独立副本.另请参见翻译.


摘要

XML架构:数据类型是XML规范的第2部分模式语言。它定义了用于定义要使用的数据类型的工具在XML模式以及其他XML规范中。数据类型语言,它本身表示为XML 1.0提供了XML 1.0中功能的超集用于在元素上指定数据类型的文档类型定义(DTD)和属性。

本文件的状态

本节描述了本文档在发布时间。其他文件可能取代本文件。当前W3C出版物和最新出版物的列表本技术报告的修订版本见W3C技术报告索引http://www.w3.org/TR/。

这是一个W3C公司建议,它是XML第二版的一部分模式。本文档已由W3C成员和其他相关方,并已由董事批准为W3C建议。它是一个稳定的文档,可以用作参考资料或作为规范性参考文献引用来自另一个文档。W3C在制定建议中的作用是引起人们的注意并促进其广泛部署。这个增强了Web的功能和互操作性。

本文件由W3C XML架构工作组作为W3C的一部分XML格式活动中讨论了XML模式语言的目标这个XML架构要求文档。本文档的作者是XML模式工作组成员。这个的不同部分规范有不同的编辑器。

本文件是根据242002年1月现行专利实践(CPP)经修订W3C专利政策过渡程序工作组保持公众的专利披露清单与本文件相关;该页还包括披露专利的说明。一个人对个人相信的专利拥有实际知识包含与本规范相关的重要声明根据截面W3C专利政策第6条.

本规范的英文版是唯一的规范性文件版本。有关本文档翻译的信息可用http://www.w3.org/2001/05/xmlschema-translations网站.

第二版是新版本,它仅仅包含了更正所指示的更改在中发现的错误第一版本经XML模式工作组同意,作为方便读者。所有此类更正的单独列表如下可在获取http://www.w3.org/2001/05/xmlschema-errata.

第二版的勘误表可在http://www.w3.org/2004/03/xmlschema-errata.

请将此文档中的错误报告给www-xml-schema-comments@w3.org(档案文件).

注:Ashok Malhotra的自完成第二版的编辑工作。他现在在甲骨文公司,可以联系时间:<ashok.malhotra@oracle.com>.

目录

1介绍
    1.1目的
    1.2要求
    1.3范围
    1.4术语
    1.5制约因素和贡献
2类型系统
    2.1资料型态
    2.2价值空间
    2.3词汇空间
    2.4方面
    2.5数据类型二分法
内置数据类型
    3.1命名空间注意事项
    3.2基本数据类型
    3.3派生数据类型
4数据类型组件
    4.1简单类型定义
    4.2基本面
    4.3约束方面
5一致性

附录

A类数据类型定义架构(规范)
B类数据类型定义的DTD(非规范性)
C类数据类型和方面
C.1条款基本面
D类ISO 8601日期和时间格式
D.1款ISO 8601惯例
D.2款截断和精简格式
D.3款与ISO 8601格式的偏差
E类向dateTimes添加持续时间
E.1类算法
E.2类交换性和关联性
F类正则表达式
图1角色类
G公司词汇表(非规范性)
H(H)工具书类
H.1段规范
H.2段非正常
确认(非规范性)


1引言

下一小节1.1目的

这个[XML 1.0(第二版)]规范定义了有限将数据类型应用于文档内容的工具可以包含或引用为元素和属性分配类型的DTD。然而,文档作者,包括传统文件和那些运输数据在XML中,通常需要更高程度的类型检查,以确保文档理解和数据交换。

下表提供了两个典型的XML实例示例其中数据类型是隐式的:左边的实例表示帐单发票用XML编写备忘录或电子邮件。

面向数据面向文档
<发票><订单日期>1999-01-21</订单日期><发货日期>1999-01-25<发货日期><账单地址>阿肖克·马霍特拉微软大街123号霍桑纽约州<zip>10532-0000</zip></billingAddress><语音>555-1234<传真>555-4321</发票>
<备忘录重要性=“高”日期='1999-03-23'>保罗·V·拜伦阿肖克·马尔霍特拉<subject>最新草稿</subject><body>我们需要讨论最新的立即拔模。请发送电子邮件至<email>邮寄地址:paul.v.biron@kp.org网站</email>或致电555-9876</body></备忘录>

发票上有几个日期和电话号码州的缩写(来自已批准值的枚举列表)和邮政编码(采用可定义的正则形式)。备忘录包含许多相同类型的信息:日期、电话号码、电子邮件地址和“重要性”值(来自枚举列表,如“低”、“中”或“高”)。处理的应用程序发票和备忘录需要提出例外,如果应该是日期或电话号码不符合规定获取有效日期或电话号码。

在这两种情况下在XML DTD中不可表达的实例。有限的数据类型XML中的工具阻止验证XML处理器提供在这些情况下需要进行严格的类型检查。结果是单个应用程序编写器必须实现类型以特别的方式进行检查。本规范涉及文档作者和应用程序作者都需要一个健壮的,可集成到XML处理器。如下文所述,这些数据类型可以用于其他与XML相关的标准。

上一小节 下一小节1.2要求

这个[XML架构要求]文件详细说明本规范应满足的具体要求,其中规定XML模式语言必须:

  1. 提供基本数据类型,包括字节、日期、,整数、序列、SQL和Java原语数据类型等。;
  2. 定义适合导入/导出的类型系统来自数据库系统(例如,关系、对象、OLAP);
  3. 区分与词汇数据表示相关的要求与那些管理底层信息集的信息相比;
  4. 允许创建用户定义的数据类型,例如从现有数据类型派生的数据类型以及可能会限制其某些属性(例如范围、,精度、长度、格式)。

上一小节 下一小节1.3范围

XML模式语言的这一部分讨论了可以在XML架构中使用。可以为元素指定这些数据类型指定为的内容#PCDATA公司和属性的值各种各样的类型在DTD中。这是本规范的目的它可以在XML模式的上下文之外广泛使用其他与XML相关的活动,例如【XSL】[RDF架构].

上一小节 下一小节1.4术语

用于描述XML架构数据类型的术语在本规范正文。下表中定义的术语如下用于构建这些定义和描述数据类型处理器:

[定义:]为了兼容性
本规范的一个功能仅用于确保模式使用此功能的[XML 1.0(第二版)]
[定义:]可以
允许符合要求的文件和处理者,但需要不按描述行事。
[定义:]比赛
(字符串或名称:)要比较的两个字符串或名称必须是完全相同。ISO/IEC 10646中具有多种可能表示形式的字符(例如。预编和基本+音调符号形式的字符)只有在具有两个字符串中的相同表示。不进行箱子折叠。(字符串和语法中的规则:)如果字符串属于由该产品生成的语言。
[定义:]必须
符合要求的文件和处理者必须描述;否则他们在·错误·.
[定义:]错误
违反本规范的规定;结果未定义。合格软件·可以·检测并报告错误·可以·从中恢复过来。

上一小节 1.5限制和贡献

本规范提供了三种不同的规范关于模式组件、它们在XML中的表示以及它们对信息项的模式验证的贡献:

[定义:] 对模式的约束
模式组件本身的约束,即条件组件·必须·满足于成为组件。主要位于数据类型组件(§4).
[定义:] 模式表示约束
对XML中模式组件表示的约束。有些但是并非所有这些都用数据类型定义模式(规范)(§A)数据类型定义的DTD(非规范性)(§B).
[定义:] 验证规则
由模式组件表示的约束信息项目·必须·满足方案有效性。很大程度上将在中找到数据类型组件(§4).

2类型系统

本节描述了类型系统背后的概念框架在本规范中定义。框架受到了【ISO 11404】独立于语言的数据类型标准以及的数据类型【SQL】和用于编程Java等语言。

本规范中讨论的数据类型是计算机众所周知的抽象概念的表示,例如整数日期.它不是这个地方定义这些抽象概念的规范;许多其他出版物提供出色的定义。

下一小节2.1数据类型

[定义:]在本规范中,数据类型是一个三元组,由a) 一组不同的值,称为its·价值空间·,b) 一组词汇表示,称为its·词法空间·和c)一套·方面·表征·价值空间·,单个值或词汇项。

上一小节 下一小节2.2价值空间

[定义:]A类价值空间是给定数据类型的值集。中的每个值价值空间数据类型的其中的一个或多个文字·词法空间·.

这个·价值空间·给定数据类型的可通过以下方式之一进行定义:

·价值空间·s具有某些属性。例如,他们总是拥有·基数·,关于…的一些定义平等而且可能是·命令·,由哪个人中的值·价值空间·可以与一个接一个。的属性·价值空间·就是那个被本规范认可,定义见基本面(§2.4.1).

上一小节 下一小节2.3词汇空间

除此之外·价值空间·,每个数据类型也有一个词汇空间。

[定义:]A类词法空间该集合是否有效字面量对于数据类型。

例如,“100”和“1.0E2”是来自·词法空间·属于浮动这两者都是表示相同的值。本规范中定义的类型系统为模式设计器提供了一种控制值集的机制以及这些值的相应可接受文本集数据类型。

注:中的文字·词法空间·本规范中定义的具有以下特征:
互操作性:
每个值的文本数都保持较小;对许多人来说数据类型文字和值之间存在一对一的映射。这使得在不同系统之间交换值变得容易。在许多情况下,从依赖于区域的表示转换将发端方和接收方都需要计算机处理以及与人类的交互。
基本可读性:
使用文字,而不是二进制文字。这使得手工编辑、调试和类似的活动成为可能。
易于解析和序列化:
在可能的情况下,文字对应于常见的文字编程语言和库。

2.3.1规范词汇表示

虽然本规范中定义的数据类型在大多数情况下,单个词汇表示,即数据类型中的每个值·价值空间·由其·词法空间·,情况并非总是如此。这个前一节中的示例显示了数据类型的两个文本浮动表示相同的值。同样,这里·可以·表示使用不同时区指示器的相同值。

[定义:]A类规范词汇表征是有效文本集中的一组文本对于这样的数据类型,文本之间存在一对一映射在中规范词汇表征中的值·价值空间·.

上一小节 下一小节2.4平面

[定义:]A类方面是单身定义的方面·价值空间·.概述一般来说,每个方面都是·价值空间·沿着独立的轴或尺寸。

数据类型的方面用于区分一种数据类型相异来自其他数据类型。而不是仅仅用散文描述来定义本规范中的数据类型定义如下这个合成共同决定·价值空间·和数据类型的属性。

面有两种类型:基本的定义的面数据类型和非基本的约束约束数据类型允许值的方面。

2.4.1基本面

[定义:]A类基本面是一个抽象属性用于对·价值空间·.

全部基本面详细描述见基本面(§4.2).

2.4.2约束面或非基本面

[定义:]A类约束方面是可选属性,可以是应用于数据类型以约束其·价值空间·.

约束·价值空间·从而限制这个·词法空间·.正在添加·约束方面·s到a·基本类型·如所述限制衍生(§4.1.2.1).

全部约束镶嵌面详细描述见约束面(§4.3).

上一小节 2.5数据类型二分法

对本规范中定义的数据类型进行分类很有用沿着不同的维度,形成了一套表征二分法。

2.5.1原子数据类型、列表数据类型和联合数据类型

要做的第一个区别是·原子的·,·列表··联盟·数据类型。

例如,单个令牌·比赛·名字符号[XML 1.0(第二版)]可以是·原子的·数据类型(NMTOKEN公司); 而这样的令牌序列可以是·列表·数据类型(NMTOKENS公司).

2.5.1.1原子数据类型

·原子的·数据类型可以是·原始的··派生的·. The·价值空间··原子的·数据类型是一组“原子”值,就本规范而言,不能进一步分解。这个·词法空间·属于一个·原子的·数据类型是一组字面量其内部结构特定于所讨论的数据类型。

2.5.1.2列出数据类型

几种类型的系统(如【ISO 11404】)处理·列表·数据类型为聚合或集合的更一般概念的特殊情况数据类型。

·列表·数据类型总是·派生的·.这个·价值空间··列表·数据类型是一组有限长的序列·原子的·值。这个·词法空间··列表·数据类型是一组文本,其内部结构是一个空间分隔的的文字序列·原子的·中项目的数据类型·列表·.

[定义:]这个·原子的··联盟·参与定义的数据类型·列表·数据类型被称为itemType(项目类型)·列表·数据类型。

例子
<simpleType name='sizes'><list itemType='decimal'/></simpleType>
<cerealSizes xsi:type='sizes'>8 10.5 12</cerealSizes>

A类·列表·数据类型可以是·派生的·来自·原子的·其数据类型·词法空间·允许空间(例如一串任意URI)或a·联盟·数据类型任何其{成员类型定义}·词法空间·允许空间。在这种情况下,无论输入是什么,都会列出项目将在空间边界处分开。

例子
<simpleType name='listOfString'><list itemType=“字符串”/></simpleType>
<someElement xsi:type='listOfString'>这不是列表项1这不是清单项目2这不是清单项目3</someElement>
在上面的示例中some元素要素不是·列表·属于·长度·三;相反,它是一个·列表·属于·长度·18

当数据类型为·派生的·来自·列表·数据类型,如下·约束方面·s适用:

对于每个·长度·,·最大长度··最小长度·,的长度单位以列表项的数量度量。的价值·空格符·固定为该值崩溃.

对于·列表·数据类型·词法空间·由空间分隔的其文字·itemType(项目类型)·因此,任何·图案·当新数据类型为·派生的·来自·列表·数据类型与匹配的每个文字·列表·数据类型和不与用作其·itemType(项目类型)·.

例子
<xs:simpleType name='myList'><xs:list itemType='xs:integer'/></xs:simpleType><xs:simpleType name='myRestrictedList'><xs:restriction base='myList'><xs:pattern value='123(\d+\s)*456'/></xs:restriction></xs:simpleType>123 456<someElement xsi:type='myRestrictedList'>123 987 456</someElement>123 987 567 456

这个规范-现有重新表示对于·列表·数据类型定义为词汇形式,其中中的每个项目·列表·具有规范的词汇其代表·itemType(项目类型)·.

2.5.1.3联合数据类型

这个·价值空间··词法空间··联盟·数据类型是·价值空间·s和·词法空间·第s个,共s个它的·成员类型·.·联盟·数据类型总是·派生的·.目前,没有·内置的· ·联盟·数据类型。

例子
一个典型的·联盟·类型是maxOccurs属性元素元素在XML模式本身中:它是非负整数的并集和包含单个成员的枚举,字符串“unbounded”,如下所示。
<attributeGroup name=“occurs”><attribute name=“minOccurs”type=“nonNegativeInteger”use=“optional”default=“1”/><attribute name=“maxOccurs”use=“optional”default=“1”><simpleType><联合><simpleType><restriction base='nonNegativeInteger'/></simpleType><simpleType><限制基=“字符串”><枚举值=“unbounded”/></限制></simpleType></联合></simpleType></属性></attributeGroup(属性组)>

任意数量(大于1)·原子的··列表· ·数据类型·s可以参与·联盟·类型。

[定义:]参与a的定义·联盟·数据类型称为成员类型·联盟·数据类型。

The order in which the·成员类型·定义(即<union>的<simpleType>子级的顺序元素,或限定名中的成员类型属性)是重要的。在验证期间,根据·成员类型·按照它们在定义,直到找到匹配项。可以覆盖评估顺序使用xsi:type(类型).

例子
例如,给定下面的定义,<size>元素的第一个实例作为整数(§3.3.13),第二个和第三个作为字符串(§3.2.1).
<xsd:element name='size'><xsd:simpleType><xsd:union(联合)><xsd:simpleType><xsd:restriction base='integer'/></xsd:simpleType><xsd:simpleType><xsd:restriction base='string'/></xsd:simpleType></xsd:union></xsd:simpleType></xsd:element>
<size>1</size><size>大</size><size xsi:type='xsd:string'>1</size>

这个规范-现有重新表示对于·联盟·数据类型定义为词汇形式,其中这些值具有规范的词汇表示适当的·成员类型·.

注:数据类型是·原子的·在本规范中在任何用于实现这个规范。同样,数据类型是·列表·本规范中不需要“列表”用于实现此规范的任何编程语言中的数据类型。此外,数据类型是·联盟·在这个在任何编程中,规范都不必是“union”数据类型用于实现此规范的语言。

2.5.2原语与派生数据类型

接下来,我们区分·原始的··派生的·数据类型。

  • [定义:]基本体数据类型是指那些没有根据其他数据类型定义的数据类型;它们存在从头算.
  • [定义:]派生数据类型是根据其他数据类型定义的数据类型。

例如,在本规范中,浮动是一个定义明确的数学的不能用其他数据类型定义的概念,而整数是更通用的数据类型的特例十进制的.

[定义:]简单的ur-type定义是ur类型定义他的名字是任意简单类型在XML模式命名空间中。任意简单类型可以是被视为·基本类型·所有的·原始的·数据类型。任意简单类型被认为具有不受约束的词汇空间和·价值空间··价值空间·所有的·原始的·数据类型和所有成员的所有列表集·价值空间·所有的·原始的·数据类型。

本规范定义的数据类型分为两种这个·原始的··派生的·类别。人们认为,一套明智选择的·原始的·数据类型将提供最广泛的服务通过提供一组方便的数据类型可以按原样使用,也可以从模式设计者所需的各种数据类型可以是·派生的·.

在上面的示例中,整数·派生的·十进制的.

注:数据类型是·原始的·在本规范中在任何用于实现这个规范。同样,数据类型·派生的·在本规范中用于实现的任何编程语言中的“派生”数据类型本规范。

如中所述简单类型定义模式组件的XML表示(§4.1.2),每个·用户衍生的·数据类型·必须·以三种方式之一根据另一数据类型进行定义:1)通过赋值·约束方面·服务于限制这个·价值空间··用户衍生的·数据类型的子集·基本类型·; 2) 通过创建·列表·其数据类型·价值空间·由其值的有限长序列组成·itemType(项目类型)·; 或3)通过创建·联盟·其数据类型·价值空间··价值空间·第个,共个·成员类型·.

2.5.2.1由限制派生

[定义:]数据类型称为·派生的·通过限制来自其他数据类型当值为零或更多时·约束方面·指定了s这有助于限制其·价值空间·和/或其·词法空间·到其子集·基本类型·.

[定义:]数据类型,即·派生的·通过限制是根据现有数据类型定义的,称为基本类型.基本类型s可以是·原始的··派生的·.

2.5.2.2列表导出

A类·列表·数据类型可以是·派生的·从另一个数据类型(它的·itemType(项目类型)·)通过创建·价值空间·由有限长序列组成的其值的·itemType(项目类型)·.

2.5.2.3由联合导出

一种数据类型可以是·派生的·来自一个或多个数据类型依据·联盟·使用他们的·价值空间·因此,他们·词法空间·第条。

2.5.3内置与用户派生数据类型

从概念上讲·内置的· ·派生的·数据类型包括在本规范和·用户衍生的·将由单个模式设计者创建的数据类型。这个·内置的· ·派生的·数据类型是那些被认为很常见的,如果不是的话在本规范中定义了许多模式设计者“重塑”它们。此外,包括这些·派生的·本规范中的数据类型用于演示数据类型生成的机制和实用性本规范的设施。

注:数据类型是·内置的·在本规范中在任何使用的编程语言中都不需要是“内置”数据类型以实现该规范。同样,数据类型·用户衍生的·在本规范中无需是任何编程语言中的“用户派生”数据类型,用于实现这个规范。

3种内置数据类型

内置类型层次结构图anyTypeanySimpleTypedurationdateTimetimedategYearMonthgYeargMonthDaygDaygMonthbooleanbase64BinaryhexBinaryfloatdoubleanyURIQNameNOTATIONstringdecimalnormalizedStringintegertokennonPositiveIntegerlongnonNegativeIntegerlanguageNameNMTOKENnegativeIntegerintunsignedLongpositiveIntegerNCNameNMTOKENSshortunsignedIntIDIDREFENTITYbyteunsignedShortIDREFSENTITIESunsignedByteBuilt-in Datatypes

本规范中的每个内置数据类型(·原始的··派生的·)可以通过URI引用构造如下:

  1. 基本URI是XML架构命名空间的URI
  2. 片段标识符是数据类型的名称

例如,要解决整数数据类型,URI为:

此外,每个方面定义元素可以是唯一的通过如下构造的URI寻址:

  1. 基本URI是XML架构命名空间的URI
  2. 片段标识符是方面的名称

例如,要处理maxInclusive方面,URI是:

此外,内置数据类型定义中的每个方面的用法可以通过如下构造的URI进行唯一寻址:

  1. 基本URI是XML架构命名空间的URI
  2. 片段标识符是数据类型的名称,后跟由句点(“.”)后跟方面的名称

例如,要解决中maxInclusive方面的用法int的定义,URI为:

下一小节3.1命名空间注意事项

这个·内置的·本规范定义的数据类型设计用于XML模式定义语言以及其他XML规范。为了便于在XML模式定义语言中使用·内置的·此规范中的数据类型具有命名空间名称:

  • http://www.w3.org/2001/XMLSchema(http://www.w3.org/2001/XMLSchema)

为了便于在XML模式定义语言以外的规范中使用,比如那些不想了解数据类型以外的XML模式定义语言,每个·内置的·数据类型也在URI为的命名空间中定义:

  • http://www.w3.org/2001/XMLSchema-datatypes

这适用于两者·内置的· ·原始的··内置的· ·派生的·数据类型。

每个·用户衍生的·数据类型还与唯一的命名空间。然而,·用户衍生的·数据类型不要来自本规范定义的名称空间;相反,它们来自定义它们的模式的名称空间(请参见的XML表示架构在里面[XML模式第1部分:结构]).

上一小节 下一小节3.2原始数据类型

        3.2.1一串
        3.2.2布尔值
        3.2.3十进制的
        3.2.4浮动
        3.2.5双重的
        3.2.6期间
        3.2.7dateTime(日期时间)
        3.2.8时间
        3.2.9日期
        3.2.10g年-月
        3.2.11g年份
        3.2.12g月日
        3.2.13g天
        3.2.14g月份
        3.2.15十六进制二进制
        3.2.16base64二进制
        3.2.17任意URI
        3.2.18限定名
        3.2.19符号

这个·原始的·本规范定义的数据类型如下所述。对于每个数据类型·价值空间··词法空间·定义,·约束方面·适用的将列出数据类型和任何数据类型·派生的·从此数据类型指定。

·原始的·数据类型只能通过修订添加符合本规范。

3.2.1字符串

[定义:]这个一串数据类型表示XML中的字符串。这个·价值空间·属于一串是有限长序列的集合性格s(定义见[XML 1.0(第二版)])那个·比赛·这个烧焦生产来源[XML 1.0(第二版)].A类性格是的原子单位沟通;除了注意到每个性格具有相应的通用字符集代码点,它是一个整数。

注:许多人类语言的书写系统需要用于控制方面的子元素,例如双向格式化或ruby注释(请参见[红宝石]和第8.2.4节覆盖双向算法:BDO元素属于[HTML 4.01]).因此,一串,作为只能包含字符而不是子元素通常不适合表示文本。在这种情况下,应该考虑允许混合内容的复杂类型。有关更多信息,请参阅第5.5节任何元素、任何属性属于[XML模式语言:第0部分入门].
注:如中所述命令,事实上,本规范不指定·顺序关系·对于·一串·不排除其他应用程序将字符串视为有序。

3.2.3小数

[定义:]十进制的表示实数的子集,可以用十进制数字表示。这个·价值空间·属于十进制的是一组可以通过将整数乘以非正数得到的数字十次方,即可表示为i×10^-n哪里n个是整数n>=0.精度不反映在该值空间中;数字2.0与数字2.00没有区别。这个·顺序关系·十进制的是实数上的顺序关系,受限制到这个子集。

注:全部·最小一致性·处理器·必须·支持最少18位十进制数字的十进制数字(即·totalDigits(总位数)·第页,共18页)。然而,·最小一致性·处理器·可以·设置应用程序定义的小数位数上限他们准备支持,在这种情况下,应用程序定义了最大数量·必须·明确记录。
3.2.3.2规范表示

的规范表示十进制的由定义禁止某些选项词汇表示(§3.2.3.1)具体来说,前面禁止使用可选的“+”符号。小数点是必需的。领导和根据以下规定,禁止使用尾随零:必须至少有小数点左右各一位,小数点可以是零。

3.2.4浮子

[定义:]浮动以IEEE单精度32位浮点类型为模式[IEEE 754-1985].基本·价值空间·属于浮动由值组成米×2^e,其中是绝对值小于的整数2^24、和e(电子)是一个整数-149至104之间(含)。除了基本的·价值空间·如上所述·价值空间·属于浮动还包含下列的特殊值:正负无穷大与非数字(NaN)。这个·顺序关系·浮动是:当y-x时x<y是肯定的对于值空间中的x和y。正无穷大大于所有其他非NaN值。NaN等于自身,但·无与伦比的·带有(既不大于也不小于)中的任何其他值·价值空间·.

注:本建议中的“平等”定义为“身份”(即·价值空间·相等,反之亦然)。身份必须用于本建议中定义的少数操作。使用本建议中定义的任何数据类型的应用程序可以使用不同的用于计算目的的等式定义;[IEEE 754-1985]-基于计算系统都是示例。本建议中的任何内容都不应被解释为要求此类应用程序在计算时使用标识作为其相等关系。

任何值·无与伦比的·使用用于四个边界面的值(·最小非独占·,·最大非独占·,·minExclusive(最小独占)·、和·maxExclusive(最大独占)·)将是从由此产生的限制中排除·价值空间·特别是,当“NaN”用作边界方面的方面值时,因为没有其他浮动值为·可比的·有了它,结果是·价值空间·将NaN作为其唯一成员(包含在内的情况)或为空(独家案例)。如果任何其他值被用于边界面,NaN将被排除在由此产生的限制范围之外·价值空间·;要将NaN添加回中,需要与仅NaN空格的并集。

此数据类型与的数据类型不同[IEEE 754-1985]只有一个NaN和只有一个零。这使得数据中的值相等且有序空间不同于[IEEE 754-1985]仅用于模式目的NaN=NaN。

中的文字·词法空间·表示十进制数d日映射到规格化值在中·价值空间·属于浮动那就是最接近d日在定义的意义上[克林格,WD(1990)]; 如果d日正好介于两个这样的值之间,然后选择偶数值。

3.2.4.1词汇表示

浮动值具有词汇表示由尾数后跟字符组成(可选)“E”或“E”,后跟指数。指数·必须·成为整数。尾数必须是十进制的数字。陈述对于指数和尾数,必须遵循整数十进制的如果“E”或“E”和省略以下指数,假设指数值为0。

这个特殊值积极的负无穷和非数字有词汇表示INF(信息),-INF(信息)NaN公司分别是。零的词汇表示可以是正号或负号。

例如,-1E4、1267.43233E12、12.78e-2、12 , -0, 0INF(信息)都是法律文字浮动.

3.2.4.2标准表示

的规范表示浮动由定义禁止某些选项词汇表示(§3.2.4.1)具体来说,指数必须用“E”表示。前导零和前面的可选“+”号指数中禁止。如果指数为零,则必须用“E0”表示。对于尾数,禁止使用前面的可选“+”号并且需要小数点。根据以下规定,禁止使用前导零和尾随零:数字表示必须进行规范化,以便只有一个数字非零小数点左边,至少一个数字小数点右边除非所表示的值为零。典范零的表示为0.0E0。

3.2.5双

[定义:]这个双重的数据类型IEEE双精度64位浮点类型[IEEE 754-1985].基本·价值空间·属于双重的由值组成米×2^e,其中是绝对值小于的整数2^53、和e(电子)是一个-1075到970之间的整数,包括在内。除了基本的·价值空间·如上所述·价值空间·属于双重的还包含以下内容特殊值:正负无穷大与非数字(NaN)。这个·顺序关系·双重的是:当y-x时x<y是肯定的对于值空间中的x和y。正无穷大大于所有其他非NaN值。NaN等于自身,但·无与伦比的·带有(既不大于也不小于)中的任何其他值·价值空间·.

注:本建议中的“平等”定义为“身份”(即·价值空间·相等,反之亦然)。身份必须用于本建议中定义的少数操作。使用本建议中定义的任何数据类型的应用程序可以使用不同的用于计算目的的等式定义;[IEEE 754-1985]-基于计算系统都是示例。本建议中的任何内容都不应被解释为要求此类应用程序在计算时使用标识作为其相等关系。

任何值·无与伦比的·使用用于四个边界面的值(·最小非独占·,·最大非独占·,·minExclusive(最小独占)·、和·maxExclusive(最大独占)·)将是从由此产生的限制中排除·价值空间·特别是,当“NaN”用作边界方面的方面值时,因为没有其他双重的值为·可比的·有了它,结果是·价值空间·将NaN作为其唯一成员(包含在内的情况)或为空(独家案例)。如果任何其他值被用于边界面,NaN将被排除在由此产生的限制范围之外·价值空间·;要将NaN添加回中,需要与仅NaN空格的并集。

此数据类型与的数据类型不同[IEEE 754-1985]只有一个NaN和只有一个零。这使得数据中的值相等且有序空间不同于[IEEE 754-1985]仅用于模式目的NaN=NaN。

中的文字·词法空间·表示十进制数d日映射到规格化值在中·价值空间·属于双重的那就是最接近d日; 如果d日正好介于两个这样的值之间,然后选择偶数值。这是最佳近似值属于d日([克林格,WD(1990)],[同性恋,DM(1990)]),哪个更重要比所需的映射精确[IEEE 754-1985].

3.2.5.1词汇表示

双重的值具有词汇表示由尾数后跟字符“E”或“e”,后面跟着一个指数。指数·必须·一个整数。尾数必须是十进制数。陈述对于指数和尾数,必须遵循整数十进制的如果“E”或“E”并且省略以下指数,假设指数值为0。

这个特殊值积极的负无穷和非数字有词汇表示INF(信息),-INF(信息)NaN公司分别是。零的词汇表示可以是正号或负号。

例如,-1E4、1267.43233E12、12.78e-2、12 , -0, 0INF(信息)都是法律文字双重的.

3.2.5.2标准表示

的规范表示双重的由定义禁止某些选项词汇表示(§3.2.5.1)具体来说,指数必须用“E”表示。前导零和前面的可选“+”号指数中禁止。如果指数为零,则必须用“E0”表示。对于尾数,禁止使用前面的可选“+”号并且需要小数点。根据以下规定,禁止使用前导零和尾随零:数字表示必须进行规范化,以便只有一个数字非零小数点左边,至少一个数字小数点右边除非所表示的值为零。典范零的表示为0.0E0。

3.2.6持续时间

[定义:] 期间表示持续时间。这个·价值空间·属于期间一个六维空间,其中坐标指定在第5.5.3.2节,共【ISO 8601】,分别是。这些组件已订购按其出现顺序,即年、月、日,小时、分钟和秒。

注:

全部
·最小一致性·处理器·必须·支持最少4位数字的年份值(即。,YYYY年)最小小数秒精度为毫秒或三个十进制数字(即。不锈钢). 然而,·最小一致性·处理器·可以·设置应用程序定义的最大位数限制他们准备在这两种情况下支持,在这种情况下,应用程序定义了最大数量·必须·明确记录。
3.2.6.1词汇表示

的词汇表示期间【ISO 8601】扩展格式Pn个Y(Y)n个M(M)n个DT公司n个H(H)n个M(M)n个S、 其中n个Y代表年份,n个M的月数,n个D是天数,“T”是日期/时间分隔符,n个H小时数,n个M分钟数和n个S是秒数。秒数可以包括十进制数字任意精度。

的值年、月、日、小时和分钟组件不受限制,但允许任意无符号整数,即符合模式[0-9]+..类似地,Seconds组件的值允许任意无符号十进制。以下【ISO 8601】,必须至少有一个数字如果出现小数点,请跟随它。即Seconds组件的值必须符合模式[0-9]+(\.[0-9]+)?.因此期间不遵循替代方案§5.5.3.2.1的格式【ISO 8601】.

前面可选的减号('-)是允许,表示负持续时间。如果省略符号,则显示正持续时间。另请参见ISO 8601日期和时间格式(§D).

例如,表示持续时间为1年、2个月、3天、10小时和30分钟,人们会写下:P1Y2M3DT10H30M.也可以将负120天的持续时间表示为:-第120D页.

允许此格式的精度降低和截断表示只要符合以下要求:

  • 如果任何表达式等于零,数字及其相应的指示符·可以·省略。然而,至少有一个数字及其指示符·必须·出席。
  • 第二部分·可以·有一个小数。
  • 指示符“T”必须当且仅当所有时间项都不存在时,才缺席。指示器“P”必须始终存在。

例如,P1347Y、P1347M和P1Y2MT2H都是允许的;允许使用P0Y1347M和P0Y1347M0D。虽然不允许P-1347M-允许使用P1347M。不允许使用P1Y2MT。

3.2.6.2工期顺序关系

一般来说·顺序关系·期间是部分顺序,因为在某些持续时间,例如一个月(P1M)和30天(P30D)。这个·顺序关系·共两个期间x个x<y当其时s+x<s+y对于每个合格的dateTime(日期时间) 在下面的列表中。这些值用于在添加日期时间和持续时间。定义了对时间瞬间添加持续时间在里面将持续时间添加到dateTimes(§E).

  • 1696-09-01时间0:00:00Z
  • 1697-02-01T00:00:00Z
  • 1903-03-01T00:00:00Z
  • 1903-07-01T00:00:00Z(1903-07-01T00:00:00Z)

下表显示了可以确定的最强关系示例持续时间之间。符号<>表示订单关系为不确定。请注意,由于跳跃秒数,秒字段可能会发生变化从59到60。然而,由于加法的定义方式将持续时间添加到dateTimes(§E),它们仍然完全有序。

 关系
P(P)1年>P(P)364万<>P365天 <>P366天<P367天
P(P)100万>P(P)27天<>P28天<>P29天<>P30天<>P31天<P32天
P(P)5米>P(P)149D年<>P150天<>P151D年<>P152D(152D)<>P153D年<P154D年

实现可以自由优化排序关系的计算。例如,下表可用于比较几个月和几天的持续时间。

 1245678910111213...
最小值285989120150181212242273303334365393...
最大值316292123153184215245276306337366397...
3.2.6.4总订购持续时间

某些派生的持续时间数据类型可以保证具有总顺序。对于这样,它们必须只有下表中一行的字段和时区必须被要求或禁止。

例如,可以定义一个数据类型来对应于【SQL】数据类型需要四位数字的年-月间隔年份字段和两位数的月份字段,但要求所有其他字段都未指定。此数据类型可以定义如下,并具有总顺序。

<simpleType name='SQL-Year-Month-Interval'><限制基数=“持续时间”><模式值='P\P{Nd}{4} Y(Y)\p{Nd}{2} M(M)'/></限制></simpleType>

3.2.7日期时间

[定义:] dateTime(日期时间)可以将值视为具有整数值的对象年、月、日、小时和分钟属性,十进制第二属性,和布尔时区属性。每个这样的对象也有一个十进制值方法或计算属性timeOnTimeline,其值始终为十进制数量;这些值以秒为单位,整数0为0001-01-01T00:00:00和其他的timeOnTimeline值dateTime(日期时间)值是使用经过跳跃秒修改的Gregorian算法计算的。timeOnTimeline值形成两个相关的“时间线”,一个用于时间分区值和一个用于非时间分区值。每个时间线都是·价值空间·属于十进制的,以秒为单位的整数。

这个·价值空间·属于dateTime(日期时间)与ISO 8601中描述的日期和时间密切相关。为了清楚起见,上面的文本为时间线。但是,应该注意的是,模式处理器不需要公开timeOnTimeline值,并且不要求基于时间的实现使用此处描述的特定来源它的内部表示。其他解释·价值空间·这导致了当然可以接受相同的结果(即同构)。

所有时区时间均为协调世界时(UTC,有时也称为“格林威治标准时间”)。词汇表示中指示的其他时区在文字到值的转换过程中转换为UTC。“本地”或未划分时区的时间被假定为某些国家或地区的时区时间相关法律机构规定的未指定地点;目前,法律上没有规定时区的持续时间震级大于14小时。每个数值属性的值(timeOnTimeline除外)限制为间隔内的最大值由下一个更高的属性决定。例如,日值永远不能是32,02月和2002年(2002年2月)甚至不能达到29岁。

注:

本建议中描述的日期和时间数据类型受到启发通过
【ISO 8601】“0001”是共同时代第一年的词汇表示(1CE,有时写为“AD 1”或“1 AD”)。没有年份0,“0000”不是有效的词汇表示-0001’是1年之前的词汇表示共同纪元(公元前1年,有时写为“公元前1”)。

使用本建议(1.0)版本的人员代表负年份应注意词汇的解释以开头的表示'-'很可能会发生变化后续版本。

【ISO 8601】未提及0年;在里面[ISO 8601:1998修订草案]表格“0000”不允许使用,本建议也不允许使用。然而,[ISO 8601:2000第二版],就在我们完成版本时可用1.0,允许使用“0000”形式,表示公元前1年。一些外部评论员还建议“0000”是允许,作为BCE 1的词汇表示,这是天文背景。这是XML模式的意图工作组允许在dateTime(日期时间),日期,g年份、和g年-月后续版本中的数据类型0000’将是1的词汇表示BCE(闰年),“-0001”将成为2的词汇表示BCE(不是此(1.0)版本中的1 BCE)、3 BCE中的“-0002”等。

注:请参阅中的一致性注释(§3.2.6)哪一个也适用于此数据类型。
3.2.7.1词汇表示

这个·词法空间·属于dateTime(日期时间)包括形式的有限长度字符序列:'-'? yyyy'-'mm'-'dd'T'hh':'mm':'ss('.'s+)?(zzzzz)?,哪里

  • '-'?年份是一个四位数或更多位数,可选带负号表示年份的数字;如果超过四位数,则前导零禁止使用,禁止使用“0000”(参见上述注释(§3.2.7); 还要注意,加号是允许);
  • 其余的'-是日期部分之间的分隔符;
  • 第一个毫米是表示月份的两位数数字;
  • 是表示日期的两位数数字;
  • “T”是一个分隔符,表示接下来的时间;
  • 小时是表示小时的两位数数字;'如果表示的分钟和秒为零dateTime(日期时间)价值如此表示的是第二天的第一个瞬间(dateTime(日期时间)中的对象·价值空间·不能有大于23);
  • “:”是日时间部分各部分之间的分隔符;
  • 第二个毫米是表示分钟的两位数数字;
  • 不锈钢是表示整秒;
  • '.'秒+(如果存在)代表分数秒;
  • 嘶嘶作响(如果存在)表示时区(如下所述)。

例如,2002-10-10T12:00:00-05:00(2002年10月10日中午,中央日光节省时间以及美国东部标准时间)为2002-10-10T17:00:00Z,比2002-10-10T12:00:00Z晚五个小时。

有关使用dateTime(日期时间)s和持续时间,看见将持续时间添加到dateTimes(§E).

3.2.7.4 dateTime上的订单关系

dateTime(日期时间)任何一个时间线上的值对象都完全按时间OnTimeline排序价值观;在两条时间线之间,dateTime(日期时间)值对象按其当timeOnTimeline值相差超过14小时,与持续时间相差14小时或更短的时间存在·无与伦比的·.

一般来说·顺序关系·dateTime(日期时间)是部分顺序,因为在某些瞬间。例如,没有确定性订购介于(a)2000-01-20T12:00:00和(b)2000-01-20 T12:00.00Z轴.基于当前使用的时区,(c)可能在2000-01-20T12:00:00+12:00到2000-01-20T12:00:00-13:00。然而,此范围可能会扩大或未来根据当地法律签订合同。因此,以下内容定义使用了更大范围的不确定值:+14:00..-14:00。

以下定义使用符号S[年]表示年份S的字段,S[month]表示月份字段,依此类推。符号(Q&“-14:00”)表示将时区-14:00添加到Q,其中Q没有已经有时区了。这是对这个过程的逻辑解释。实际实现可以自由优化,只要它们产生相同的结果。

二者之间的排序dateTime(日期时间)s P和Q定义如下算法:

A.规范化P和Q。也就是说,如果存在时区,但它不是Z,请使用中定义的加法运算将其转换为Z将持续时间添加到dateTimes(§E)

  • 因此,2000-03-04T23:00:00+03:00标准化为2000-03-4T20:00:00Z

B.如果P和Q都有时区或都没有时间区域,逐个字段比较P和Q从年份字段到第二个字段,并在确定后立即返回结果。即:

  1. 对于{年、月、日、小时、分钟、秒}中的每个i
    1. 如果没有指定P[i]和Q[i],则继续到下一个i
    2. 如果未指定P[i]而Q[i]为,或反之亦然,则停止并返回P<>Q
    3. 如果P[i]<Q[i],停止并返回P<Q
    4. 如果P[i]>Q[i],停止并返回P>Q
  2. 停止并返回P=Q

C.否则,如果P包含时区而Q不包含,则比较如下:

  1. 如果P<(Q时区+14:00),则P<Q
  2. 如果P>,则为P>Q(时区为Q-14:00)
  3. P<>Q否则,即如果(Q带时区+14:00)<P<(Q带时区-14:00)

D.否则,如果P不包含时区而Q包含时区,则比较如下:

  1. P<Q if(P带时区-14:00)<Q。
  2. P>Q如果(P与时区+14:00)>Q。
  3. P<>Q否则,即如果(P与时区+14:00)<Q<(P与时区-14:00)

示例:

确定不确定
2000年1月15日00时00分<2000年2月15日00:00:002000年1月1日12:00:00<>1999-12-31T23:00:00Z
2000年1月15日12:00:00<2000年1月16日12:00:00Z2000年1月16日12:00:00<>2000年1月16日12:00:00Z
 2000年1月16日00时00分<>2000年1月16日12:00:00Z

3.2.8时间

[定义:]时间表示每天重复出现的时间瞬间。这个·价值空间·属于时间是空格属于一天中的某个时间的§5.3中定义的值【ISO 8601】具体来说,它是一组每天零持续时间时间实例。

因为词汇表示允许一个可选的时区指示器,时间值是部分排序的,因为它可能无法确定两个值的顺序,其中一个值具有时区,而另一个没有。上的订单关系时间值是订单日期时间关系(§3.2.7.4)使用任意日期。另请参见将持续时间添加到dateTimes(§E).成对时间带有或不带时区指示器的值是完全有序的。

注:请参阅中的一致性注释(§3.2.6)哪一个也适用于此数据类型的秒部分。
3.2.8.1词汇表示

的词汇表示时间在左边吗的截断词法表示dateTime(日期时间):hh:mm:ss.sss,带有可选的以下时区指示器。例如,东部标准时间晚5小时,下午1:20协调世界时(UTC),可以写下:13:20:00-05:00。另请参见ISO 8601日期和时间格式(§D).

3.2.8.2规范表示

的规范表示时间已定义通过禁止来自词汇表示(§3.2.8.1)具体来说,时区必须省略,或者如果存在,时区必须为协调通用时间(UTC)由“Z”表示。此外,午夜的规范表示为00:00:00。

3.2.9日期

[定义:]这个·价值空间·属于日期由时间线上正好一天的开放时间间隔组成dateTime(日期时间),从每天的开始时刻开始(in每个时区),即“00:00:00”,直到但不包括“24:00:00与第二天的“00:00:00”相同)。对于非时区值,top-open间隔不连续地覆盖非时间分区的时间线,每天一次。用于时区值时,间隔从每分钟开始,因此重叠。

“日期对象”是具有年、月和日属性的对象属于dateTime(日期时间)对象,加上一个可选时区值时区属性。(与值相同dateTime(日期时间)时区是持续时间的特殊情况。)就像一个dateTime(日期时间)对象对应于时间表,a日期对象对应于1上的间隔正如刚才所描述的那样。

时间分区日期值跟踪一天的开始时刻,如由时区决定;所述时区通常可恢复规范表示。[定义:]这个可恢复时区持续时间是是减去时间分区的第一个时刻(或任何时刻)的结果日期从UTC在相同的日期. ·可恢复时区·持续时间始终介于“+12:00”和“-11:59”之间。这种“时区标准化”(自动遵循日期 ·价值空间·)中有详细说明词汇表示(§3.2.9.1).

例如:2002-10-10+13:00的第一个时刻是2002-10-10T00:00:00+13,即2002-10-09T11:00:00Z,也是2002-10-09-11:00的第一刻。因此,2002-10-10+13:00是2002-10-09-11:00;它们是相同的间隔.

注:对于大多数时区,一天中的第一刻或最后一刻(adateTime(日期时间)值,始终为UTC)将具有日期部分日期它自己!然而,那天中午日期(区间中点)(标准化)时区将始终相同日期部分作为日期本身,即使中午时间点标准化为联合技术公司。例如,2002-10-10-05:00开始于2002-10-09Z和2002-10-10+05:00在2002-10-11Z期间结束,但2002-10-10-05:00和2002-10-10+05:00的中午在2002-10-10Z的间隔内下降。
注:请参阅中的一致性注释(§3.2.6)哪一个也适用于此数据类型的年份部分。
3.2.9.1词汇表示

对于下面的讨论,让dateTime(日期时间)日期对象是类似于dateTime(日期时间)日期对象,具有类似的年、月和日属性,但没有其他属性的值与原始属性的值相同dateTime(日期时间)日期对象。

这个·词法空间·属于日期由有限长组成形式的字符序列:'-'? yyyy'-'mm'-'dd zzzzzz?其中日期和可选时区精确表示为和他们一样dateTime(日期时间). The first moment of the间隔由以下内容表示:‘-‘yyyy’-‘mm’-‘dd’T00:00:00’zzzzz?并且区间的最小上界是所表示的时间线点(非匿名)签署人:'-'yyyy'-'mm'-'dd'T24:00:00'zzzzzz?.

注:这个·可恢复时区·日期将永远是“+12:00”和“11:59”之间的持续时间。时区词汇表示,如解释为dateTime(日期时间),范围从“+14:00”到“-14:00”。结果是日期s与非常大或非常大负时区将映射到“标准化”日期值,带有·可恢复时区·与原文不同表示,以及中+/-1天的匹配差异日期自身。
3.2.9.2标准表示

给定的成员日期 ·价值空间·,的日期规范表示的一部分(整个表示对于非时区值,以及时区值的时区表示除外)总是日期的一部分dateTime(日期时间)规范的区间中点的表示(dateTime(日期时间)代表,在右侧截断以消除“T”和所有后续字符)。对于时间分区值,请附加·可恢复时区·.

3.2.10 g年/月

[定义:] g年-月表示特定公历年中的特定公历月份。这个·价值空间·属于g年-月是公历月的集合,如【ISO 8601】具体地说,它是一组一个月长的,非周期性实例例如,1999-10代表1999-10的整个月份,独立于这个月有多少天。

因为词汇表示允许一个可选的时区指示器,g年-月值是部分排序的,因为它可能无法明确确定两个值的顺序其中一个具有时区,而另一个没有。如果g年-月值被视为时间段g年-月值是其开始瞬间的顺序关系。这在中进行了讨论订单日期时间关系(§3.2.7.4)。另请参阅将持续时间添加到dateTimes(§E).成对g年-月带有或不带时区指示器的值是完全有序的。

注:因为一个日历中的月/年组合很少对应到其他日历中的月/年组合,此类型的值通常不可转换为与月/年对应的简单值其他日历中的组合。因此,应谨慎使用此类型在需要转换为其他日历的上下文中。
注:请参阅中的一致性注释(§3.2.6)哪一个也适用于此数据类型的年份部分。
3.2.10.1词汇表示

的词汇表示g年-月减少了吗(右截断)的词汇表示dateTime(日期时间):CCYY-MM。不允许左截断。可选的后续时间允许使用区域限定符。为了适应0001到9999范围之外的年份值,需要添加数字可以添加到此表示的左侧,并且前面允许使用“-”号。

例如,要指明1999年5月,可以写下:1999-05。另请参见ISO 8601日期和时间格式(§D).

3.2.11 g年

[定义:] g年份表示格里高利历年。这个·价值空间·属于g年份是中定义的一组公历年份第5.2.1条【ISO 8601】具体来说,是一年一套长期非周期性实例例如,词汇1999代表1999年全年,独立于今年有多少个月和几天。

因为词汇表示允许一个可选的时区指示器,g年份值是部分排序的,因为它可能无法明确确定两个值的顺序,其中一个值具有时区,而另一个没有。如果g年份值被视为时间段,即顺序关系g年份值是其开始瞬间的顺序关系。这在中进行了讨论订单日期时间关系(§3.2.7.4)。另请参阅将持续时间添加到dateTimes(§E).成对g年份带有或不带时区指示器的值是完全有序的。

注:因为一个日历中的年份很少对应年份在其他日历中,此类型的值通常不可转换为与年份对应的简单值在其他日历中。因此,应谨慎使用此类型在需要转换为其他日历的上下文中。
注:请参阅中的一致性注释(§3.2.6)哪一个也适用于此数据类型的年份部分。
3.2.11.1词汇表示

的词汇表示g年份是减少的(右截断)的词法表示dateTime(日期时间):CCYY。不允许左截断。可选的后续时间对于,允许使用区域限定符dateTime(日期时间).至适应0001到9999范围之外的年份值,另外数字可以添加到此表示法和前面的允许使用“-”符号。

例如,为了表示1999年,可以这样写:1999年。另请参见ISO 8601日期和时间格式(§D).

3.2.12 g月日

[定义:] g月日是重复出现的格里高利日期,特别是5月3日等年份。不允许任意重复出现日期受此数据类型支持。这个·价值空间·属于g月日是一组日历日期,定义见【ISO 8601】具体来说,它是一组为期一天、每年定期的实例。

因为词汇表示允许一个可选的时区指示器,g月日值是部分排序的,因为它可能无法明确确定两个值的顺序,其中一个值具有时区,而另一个没有。如果g月日值被视为时间段,在任意闰年,订单关系g月日值是其开始瞬间的顺序关系。这在中进行了讨论订单日期时间关系(§3.2.7.4)。另请参阅将持续时间添加到dateTimes(§E).成对g月日带有或不带时区指示器的值是完全有序的。

注:因为一个日历中的日/月组合很少对应到其他日历中的日/月组合,此类型的值不会,一般来说,具有任何直接或直观的表示就大多数其他日历而言。因此,该类型应为在转换为其他日历的上下文中小心使用需要。
3.2.12.1词汇表示

的词汇表示g月日在左边吗的截断词法表示日期:--毫米-天。可选的后续时间对于,允许使用区域限定符日期.不允许使用前面的符号。不允许使用其他格式。另请参见ISO 8601日期和时间格式(§D).

此数据类型可用于表示一个月中的特定日期。举个例子,我的生日是在每年的9月14日。

3.2.13 g天

[定义:] g天是一个反复出现的公历日,特别是一天月的第五天。任意重复天数此数据类型不支持。这个·价值空间·属于g天是一组日历日期定义见【ISO 8601】具体来说,它是一组为期一天的每月定期实例。

此数据类型可用于表示一个月的特定日期。比如说,我在每个月15号拿到薪水。

因为词汇表示允许一个可选的时区指示器,g天值是部分排序的,因为它可能无法明确确定两个值的顺序其中一个具有时区,而另一个没有。如果g天值被视为时间段,在任意一个有31天的月份,顺序关系g天值是其开始瞬间的顺序关系。这在中进行了讨论订单日期时间关系(§3.2.7.4)。另请参阅将持续时间添加到dateTimes(§E).成对g天带有或不带时区指示器的值是完全有序的。

注:因为一个日历中的日子很少对应到其他日历中的天,此类型的值不会,一般来说,具有任何直接或直观的表示就大多数其他日历而言。因此,该类型应为在转换为其他日历的上下文中小心使用需要。
3.2.13.1词汇表示

的词汇表示g天在左边吗的截断词法表示日期:---日期。可选的后续时间对于,允许使用区域限定符日期。前面没有符号允许。不允许使用其他格式。另请参见ISO 8601日期和时间格式(§D).

3.2.14 g月

[定义:] g月份是一个每年重复出现的阴历月。这个·价值空间·属于g月份是一组日历定义见【ISO 8601】具体来说,它是一组为期一个月、每年定期的实例。

此数据类型可用于表示特定月份。比如说,感恩节在十一月。

因为词汇表示允许一个可选的时区指示器,g月份值是部分排序的,因为它可能无法明确确定两个值的顺序,其中一个值具有时区,而另一个没有。如果g月份值被视为时间段,即顺序关系g月份是它们开始时刻的顺序关系。这在中进行了讨论订单日期时间关系(§3.2.7.4)。另请参阅将持续时间添加到dateTimes(§E).成对g月份带有或不带时区指示器的值是完全有序的。

注:因为一个日历中的月份很少对应到其他日历中的月份,此类型的值不会,一般来说,具有任何直接或直观的表示就大多数其他日历而言。因此,该类型应为在转换为其他日历的上下文中小心使用需要。
3.2.14.1词汇表示

的词汇表示g月份在左边吗和右截断词法表示日期:--MM。可选的后续时间对于,允许使用区域限定符日期。前面没有符号允许。不允许使用其他格式。另请参见ISO 8601日期和时间格式(§D).

3.2.16 base64二进制

[定义:] base64二进制表示以Base64编码的任意二进制数据。这个·价值空间·属于base64二进制是二进制有限长序列的集合八位字节。对于base64二进制数据整个二进制流使用Base64编码字母输入[RFC 2045].

的词汇形式base64二进制值限制为65个字符中定义的Base64字母[RFC 2045]即。,a-z,A-Z(A-Z),0-9、加号(+)、正斜杠(/)和等号(=),以及中定义的字符[XML 1.0(第二版)]作为空白。不允许使用其他字符。

为了与旧邮件网关兼容,[RFC 2045]表明base64数据的行长度应限制为最多76个字符。这个单词形式中没有规定行长限制base64二进制数据,不能由XML模式处理器强制执行。

词汇空间base64二进制由以下语法给出(符号用于[XML 1.0(第二版)]); 合法的词汇形式必须匹配这个Base64二进制生产。

Base64二进制::=((B64S B64S B64S B64 B64S)*
((B64S、B64S和B64S B64)|
(B64S B64S B16S“=”)|
(B64S B04S’=’x20?’=’))?

B64S::=B64#x20?

B16S:=B16#x20?

B04S::=B04x20?


B04::=[AQgw]
B16::=[AEIMQUYcgkosw048]
B64::=[A-Za-z0-9+/]

请注意,此语法要求词汇中的非空白字符数形式是四的倍数,等号只出现在词汇形式;不满足这些约束的字符串不是合法的词汇形式属于base64二进制因为它们不能被base64成功解码解码器。

注:以上对词汇空间的定义比这更具限制性在中给出[RFC 2045]至于空白--这不是问题在实践中。任何与RFC兼容的字符串都可以出现在此类型验证的元素或属性,因为·空格符·此类型的方面是固定的崩溃,这意味着所有前导和尾随空白将被剥离,并且所有内部空白折叠为单个空间字符,之前执行上述语法。

规范的词汇形式base64二进制数据值是base64与Canonical-base64二进制产品匹配的值的编码如下语法:

规范基64二进制::=(B64B64 B64 B44)*
((B64 B64 B16’=')|(B64 B04’==’)?

注:对于某些值,上面定义的规范形式不符合[RFC 2045],这需要以适当的间隔使用换行符中断。

a的长度base64二进制value是它包含的八位字节数。这可以通过删除空白和填充字符从词法形式中计算出来并执行以下伪代码中所示的计算:

lex2:=killwhitespace(lexform)--删除空白字符
lex3:=strip_equals(lex2)--在末尾去除填充字符
长度:=地板(长度(lex3)*3/4)--计算长度

编码注意事项:[RFC 2045]显式引用US-ASCII编码。然而,解码base64二进制XML实体中的数据将在按照指定的字符编码处理后获得的Unicode字符[XML 1.0(第二版)]

3.2.17任意URI

[定义:] 任意URI表示统一资源标识符引用(URI)。任意URI值可以是绝对值或相对值,并且可以具有可选的片段标识符(即,它可能是URI引用)。这个类型应用于指定值实现的意图URI的角色由定义[RFC 2396],经修订[RFC 2732].

来自的映射任意URIURI的值为由URI引用转义过程定义定义于第5.4节定位器属性属于[XML链接语言](另见第8节URI引用中的字符编码属于[角色模型]). 这意味着可以指定广泛的国际化资源标识符任意URI被要求,并且仍然被理解为每个URI[RFC 2396],经修订[RFC 2732],在适当的情况下确定资源。

注:第5.4节定位器属性属于[XML链接语言]要求相对URI引用绝对化定义见[XML基础]使用前。这是特定于XLink的并且不适用于XML模式,因为·词法空间·也不是·价值空间·任意URI类型被限制为绝对URI。因此绝对化不能作为模式的一部分由模式处理器执行验证。
注:每个URI方案都为中的URI强加了专门的语法规则该方案,包括对allowed的语法的限制片段标识符。因为它是处理器检查值是否为上下文适当的URI引用,此规范遵循的引线[RFC 2396](经修订[RFC 2732])在这个问题上:这样的规则和限制不是类型有效性的一部分和未经检查·最小一致性·处理器。因此,在实践中,上述定义只规定了非常适度的义务·最小一致性·处理器。
3.2.17.1词汇表示

这个·词法空间·属于任意URI当算法定义为第5.4节[XML链接语言]应用于它们,产生字符串根据[RFC 2396],经修订[RFC 2732].

注:原则上,允许在·词法空间·属于任意URI然而,强烈反对使用它们(除非它们由%20编码)。

3.2.18 Q名称

[定义:] 限定名代表XML限定名称.这个·价值空间·属于限定名是一组元组{命名空间名称,局部零件},哪里命名空间名称是一个任意URI局部零件一个NC名称.这个·词法空间·属于限定名是布景吗字符串的·比赛·这个限定名生产[XML中的命名空间].

注:中文本之间的映射·词法空间·中的值·价值空间·属于限定名要求在上下文范围内的命名空间声明,其中限定名使用。
3.2.18.1约束面

限定名下列的·约束镶嵌面·:

使用·长度·,·最小长度··最大长度·关于数据类型·派生的·限定名已弃用。本规范的未来版本可能删除此数据类型的这些方面。

3.2.19符号

[定义:] 符号代表符号属性类型来自[XML 1.0(第二版)]. The·价值空间·属于符号是一组限定名当前架构中声明的符号。这个·词法空间·属于符号是布景吗的所有名称符号在当前模式中声明(格式为限定名s) ●●●●。

模式组件约束:NOTATION所需的枚举方面值
它是一个·错误·对于符号以便在模式中直接使用。只有以下数据类型·派生的·符号通过指定的值·枚举·可以使用在模式中。

有关兼容性(请参见术语(§1.4))符号应仅用于属性并且只应在没有目标命名空间。

3.2.19.1约束面

符号下列的·约束镶嵌面·:

使用·长度·,·最小长度··最大长度·关于数据类型·派生的·符号已弃用。本规范的未来版本可能删除此数据类型的这些方面。

上一小节 3.3派生数据类型

        3.3.1normalizedString(标准化字符串)
        3.3.2代币
        3.3.3语言
        3.3.4NMTOKEN公司
        3.3.5NMTOKENS公司
        3.3.6姓名
        3.3.7NC名称
        3.3.8身份证件
        3.3.9国际数据参考
        3.3.10IDREFS公司
        3.3.11实体
        3.3.12实体
        3.3.13整数
        3.3.14非正整数
        3.3.15负整数
        3.3.16长的
        3.3.17整数
        3.3.18短的
        3.3.19字节
        3.3.20非负整数
        3.3.21unsignedLong(无符号长)
        3.3.22未签名Int
        3.3.23无符号短
        3.3.24无符号字节
        3.3.25正整数

本节给出了所有·内置的· ·派生的·数据类型由本规范定义。用于定义·派生的·数据类型(是否·内置的··用户衍生的·)是第节中给出简单类型定义模式组件的XML表示(§4.1.2)和完整的定义·内置的· ·派生的·附录A中提供了数据类型数据类型定义模式(规范)(§A).

3.3.1规范化字符串

[定义:] normalizedString(标准化字符串)表示空白规范化字符串。这个·价值空间·属于normalizedString(标准化字符串)没有的字符串集包含回车(#xD)、换行(#xA)或制表符(#x9)字符。这个·词法空间·属于normalizedString(标准化字符串)没有的字符串集包含回车符(#xD),换行(#xA)或制表符(#x9)字符。这个·基本类型·属于normalizedString(标准化字符串)一串.

3.3.1.2派生数据类型

以下内容·内置的·数据类型是·派生的·normalizedString(标准化字符串):

3.3.2令牌

[定义:] 代币表示标记化字符串。这个·价值空间·属于代币没有的字符串集包含回车(#xD),换行(#xA)或制表符(#x9)字符,没有前导或尾随空格(&#x20),并且没有内部序列两个或多个空格。这个·词法空间·属于代币不包含回车(#xD),换行(#xA)或制表符(#x9)字符,没有前导或尾随空格(&#x20),并且没有内部序列两个或多个空格。这个·基本类型·属于代币normalizedString(标准化字符串).

3.3.3语言

[定义:] 语言表示由定义的自然语言标识符通过[副本请求3066].这个·价值空间·属于语言定义为有效语言标识符的所有字符串的集合[副本请求3066].这个·词法空间·属于语言是所有字符串的集合符合模式[α-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*.这个·基本类型·属于语言代币.

3.3.5非代币

[定义:] NMTOKENS公司代表NMTOKENS属性类型[XML 1.0(第二版)]. The·价值空间·属于NMTOKENS公司是有限的非零长序列的集合·NMTOKEN公司·s·词法空间·属于NMTOKENS公司是一组以空格分隔的标记列表,其中每个标记都位于·词法空间·属于NMTOKEN公司. The·itemType(项目类型)·属于NMTOKENS公司NMTOKEN公司.

有关兼容性(请参见术语(§1.4))NMTOKENS公司应仅用于属性。

3.3.8身份证

[定义:] 身份证件代表ID属性类型[XML 1.0(第二版)]. The·价值空间·属于身份证件是所有字符串的集合·比赛·这个NC名称生产[XML中的命名空间]. The·词法空间·属于身份证件是全部的集合字符串·比赛·这个NC名称生产[XML中的命名空间].这个·基本类型·属于身份证件NC名称.

有关兼容性(请参见术语(§1.4))身份证件应仅用于属性。

3.3.9 IDREF(IDREF)

[定义:] 国际数据参考代表IDREF属性类型[XML 1.0(第二版)]. The·价值空间·属于国际数据参考是所有字符串的集合·比赛·这个NC名称生产[XML中的命名空间]. The·词法空间·属于国际数据参考是一组字符串·比赛·这个NC名称生产[XML中的命名空间].这个·基本类型·属于国际数据参考NC名称.

有关兼容性(请参见术语(§1.4))此数据类型应仅用于属性。

3.3.10 IDREFS公司

[定义:] IDREFS公司代表IDREFS属性类型[XML 1.0(第二版)]. The·价值空间·属于IDREFS公司是有限的非零长序列的集合国际数据参考第条。这个·词法空间·属于IDREFS公司一组以空格分隔的标记列表,其中每个标记都位于·词法空间·属于国际数据参考.这个·itemType(项目类型)·属于IDREFS公司国际数据参考.

有关兼容性(请参见术语(§1.4))IDREFS公司应仅用于属性。

3.3.11实体

[定义:] 实体代表实体属性类型来自[XML 1.0(第二版)]. The·价值空间·属于实体是所有字符串的集合·比赛·这个NC名称生产[XML中的命名空间]并被宣布为未分析的实体在里面文档类型定义.这个·词法空间·属于实体是布景吗所有字符串中·比赛·这个NC名称生产[XML中的命名空间].这个·基本类型·属于实体NC名称.

注:这个·价值空间·属于实体已确定范围到特定实例文档。

有关兼容性(请参见术语(§1.4))实体应仅用于属性。

3.3.12实体

[定义:] 实体代表ENTITIES属性类型[XML 1.0(第二版)]. The·价值空间·属于实体是有限的非零长序列的集合·实体·已声明为未分析的实体在一个文档类型定义.这个·词法空间·属于实体一组以空格分隔的标记列表,其中每个标记都位于·词法空间·属于实体.这个·itemType(项目类型)·属于实体实体.

注:这个·价值空间·属于实体已确定范围到特定实例文档。

有关兼容性(请参见术语(§1.4))实体应仅用于属性。

4数据类型组件

以下部分提供了有关属性和数据类型中涉及的每种模式组件的重要性定义。对于每个属性,允许的值类型为明确规定。任何未标识为可选的属性都需要出席;不存在的可选属性有缺席的作为他们的价值。标识为具有集合、子集或·列表·除非明确排除,否则值可能为空:这是不同于缺席的.标识为某个集合的超集或子集的任何属性值都可能等于该集合,除非显式地存在适当的超集或子集要求。

有关数据类型(模式)组件概念的更多信息,看见架构组件详细信息属于[XML模式第1部分:结构].

下一小节4.1简单类型定义

简单类型定义提供了:

4.1.1简单类型定义模式组件

简单类型定义架构组件具有以下属性:

{名称}
可选。NCName定义如下[XML中的命名空间].
{目标命名空间}
要么缺席的或a命名空间名称,如中所定义[XML中的命名空间].
{品种}
其中之一{原子的,列表,联盟}. 取决于的值{品种},其他属性定义如下:
原子的
{基元类型定义}
A类·内置的· ·原始的·数据类型定义)。
列表
{项目类型定义}
·原子的··联盟·简单类型定义。
联盟
{成员类型定义}
简单类型定义的非空序列。
{刻面}
一组可能为空的小面(§2.4).
{基本面}
一套基本面(§2.4.1)
{基类型定义}
如果数据类型已经·派生的·通过·限制·然后简单类型定义成分它来自哪个·派生的·,否则这个任意SimpleType的简单类型定义(§4.1.6).
{最终}
的子集{限制,列表,联合}.
{注释}
可选。注释.

数据类型由其{名称}{目标命名空间}.除对于匿名数据类型(没有{名称}),数据类型定义·必须·被唯一识别在模式中。

如果{品种}·原子的·然后·价值空间·定义的数据类型将·价值空间·属于{基类型定义}(它是·价值空间·属于{基元类型定义}).如果{品种}·列表·然后·价值空间·定义的数据类型将是来自·价值空间·属于{项目类型定义}.如果{品种}·联盟·然后·价值空间·定义的数据类型的工会·价值空间·中每个数据类型的{成员类型定义}.

如果{品种}·原子的·然后{品种}属于{基类型定义}必须是·原子的·.如果{品种}·列表·然后{品种}属于{项目类型定义}必须是其中之一·原子的··联盟·.如果{品种}·联盟·然后{成员类型定义}必须是数据类型定义列表。

的价值{刻面}由一组·方面·直接在数据类型定义中指定与可能为空的{刻面}属于{基类型定义}.

的价值{基本面}由一组·基本面·s及其值。

如果{最终}是空集,则可以使用类型在派生其他类型时;显式值限制,列表联盟防止进一步衍生通过·限制·,·列表··联盟·分别是。

4.1.2简单类型定义模式组件的XML表示

的XML表示简单类型定义模式组件是一个<simpleType>元素信息项。这个信息项属性与组件的属性如下:

XML表示摘要simpleType(简单类型)要素信息项

<简单类型
最终=(#全部|的列表(列表|联盟|限制))
标识=身份证件
  名称=NC名称
  {具有非模式命名空间的任何属性…}>
内容:(注释?, (限制|列表|联盟))
</simpleType>

数据类型定义架构组件
财产代表
{名称}这个实际值名称 [属性],如果存在,否则无效的
{最终}对应于实际值最终的 [属性],如果存在,否则这个实际值最终默认值 [属性]祖先的模式元素信息项(如果存在),否则为空字符串,如下所示:
空字符串
空集;
#全部
{限制,列表,联合};
否则
包含从上述集合中抽取的成员的集合,每个成员都存在或不存在,具体取决于字符串是否包含等效名称的空格分隔的子字符串。
注:虽然最终默认值 [属性]属于模式可能包括值,而不是限制,列表联盟,这些值在确定{最终}
{目标命名空间}这个实际值目标命名空间 [属性]家长的模式元素信息项。
{注释}对应于<注释>中的元素信息项[儿童],如果存在,否则无效的

A类·派生的·数据类型可以是·派生的·来自·原始的·数据类型或其他·派生的·通过以下三种方式之一表示数据类型:通过限制,由列表或通过联盟.

4.1.2.1限制衍生
例子
电子商务模式可以定义一个名为Sku公司(产品上显示的条形码编号)·内置的·数据类型一串通过为提供值·图案·方面。
<simpleType name='Sku'><限制基=“字符串”><模式值='\d{3}-[A-Z]{2}'/></限制></simpleType>
在这种情况下,Sku公司是新的名称·用户衍生的·数据类型,一串它的·基本类型··图案·是方面。
4.1.2.2列表推导

<列表
标识=身份证件
itemType(项目类型)=限定名
  {具有非模式命名空间的任何属性…}>
内容:(注释?,simpleType(简单类型)?)
</list>

简单类型定义架构组件
财产代表
{品种}列表
{项目类型定义}这个简单类型定义组件解析为实际值itemType(项目类型) [属性]<simpleType> [儿童],以存在者为准。

A类·列表·数据类型必须为·派生的·来自·原子的·或a·联盟·数据类型,被称为·itemType(项目类型)··列表·数据类型。这将生成一个数据类型,该数据类型·价值空间·由以下部分组成来自·价值空间··itemType(项目类型)·和谁的·词法空间·由空格分隔的文字列表组成·itemType(项目类型)·.

例子
系统可能希望存储浮点值的列表。
<simpleType name='listOfFloat'><list itemType='float'/></simpleType>
在这种情况下,浮动列表是新的名称·用户衍生的·数据类型,浮动是它的吗·itemType(项目类型)··列表·推导法。

如中所述列出数据类型(§2.5.1.2),当数据类型为·派生的·来自·列表·数据类型,如下·约束方面·s可以用于:

无论·约束方面·适用的·原子的·用作·itemType(项目类型)··列表·.

对于每个·长度·,·最大长度··最小长度·,的长度单位以列表项的数量衡量。的价值·空格符·固定为该值崩溃.

4.1.2.3联合推导

<联合
标识=身份证件
memberTypes=列表限定名
  {具有非模式命名空间的任何属性…}>
内容:(注释?,simpleType(简单类型)*)
</联合>

简单类型定义架构组件
财产代表
{品种}联盟
{成员类型定义}的顺序简单类型定义组件解析为中的项目实际值成员类型 [属性]如果有,按顺序,然后是简单类型定义组件解析为<simpleType> [儿童](如有)。如果{品种}联盟对于任何简单类型定义组件解析为上述值,然后这个简单类型定义被替换为其{成员类型定义}.

A类·联盟·数据类型可以是·派生的·来自一个或多个·原子的·,·列表·其他·联盟·数据类型,称为·成员类型··联盟·数据类型。

例子
例如,以典型的面向显示的文本标记语言为例,人们可能希望将字体大小表示为8到72之间的整数,或者使用标记“小”、“中”或“大”之一。这个·联盟·下面的类型定义可以实现这一点。
<xsd:attribute name=“size”><xsd:simpleType><xsd:union(联合)><xsd:simpleType><xsd:restriction base=“xsd:positiveInteger”><xsd:minInclusive value=“8”/><xsd:maxInclusive value=“72”/></xsd:restriction></xsd:simpleType><xsd:simpleType><xsd:restriction base=“xsd:NMTOKEN”><xsd:enumeration value=“small”/><xsd:enumeration value=“medium”/><xsd:enumeration value=“large”/></xsd:restriction></xsd:simpleType></xsd:union></xsd:simpleType></xsd:attribute>
<p>标题</p><p>这是一个测试</p>

如中所述联合数据类型(§2.5.1.3),当数据类型为·派生的·来自·联盟·数据类型,只有以下内容·约束方面·s可以用于:

无论·约束方面·是的适用于参与·联盟·

4.1.4简单类型定义验证规则

验证规则:方面有效
A中的值·价值空间·是facet-valid with尊重·约束方面·组件,如果:
1该值对于特定的·约束方面·如下所述。
验证规则:数据类型有效
在以下情况下,字符串相对于数据类型定义而言是数据类型有效的:
1·比赛·是中的文字·词法空间·数据类型,确定如下:
1.1如果·图案·是的成员{刻面},那么字符串必须是模式有效(§4.3.4.4);
1.2如果·图案·不是的成员{刻面},然后
1.2.1 如果{品种}·原子的·然后字符串必须·比赛·中的文字·词法空间·属于{基类型定义}
1.2.2 如果{品种}·列表·那么字符串必须是一系列空间分隔的标记,每个标记·比赛·是中的文字·词法空间·属于{项目类型定义}
1.2.3 如果{品种}·联盟·然后字符串必须·比赛·中的文字·词法空间·的至少一个成员{成员类型定义}
2文字表示的值·比赛·上一步中的ed是的成员·价值空间·数据类型的通过它的存在有效面(§4.1.4)关于{刻面}(除对于·图案·).

4.1.5对简单类型定义模式组件的约束

模式组件约束:适用的方面
这个·约束方面·允许的成为的成员{刻面}依赖于{基类型定义}如下表所示:
{基类型定义}可应用的{刻面}
如果{品种}列表,然后
[所有数据类型]长度,最小长度,最大长度,图案,枚举,空格符
如果{品种}联盟,然后
[所有数据类型]图案,枚举
否则,如果{品种}原子的,然后
一串长度,最小长度,最大长度,图案,枚举,空格符
布尔值图案,空格符
浮动图案,枚举,空格符,最大非独占,maxExclusive(最大独占),最小非独占,minExclusive(最小独占)
双重的图案,枚举,空格符,最大非独占,maxExclusive(最大独占),最小非独占,minExclusive(最小独占)
十进制的totalDigits(总位数),分数位数,图案,空格符,枚举,最大非独占,maxExclusive(最大独占),最小非独占,minExclusive(最小独占)
期间图案,枚举,空格符,最大非独占,maxExclusive(最大独占),最小非独占,minExclusive(最小独占)
dateTime(日期时间)图案,枚举,空格符,最大非独占,maxExclusive(最大独占),最小非独占,minExclusive(最小独占)
时间图案,枚举,空格符,最大非独占,maxExclusive(最大独占),最小非独占,minExclusive(最小独占)
日期图案,枚举,空格符,最大非独占,maxExclusive(最大独占),最小非独占,minExclusive(最小独占)
g年-月图案,枚举,空格符,最大非独占,maxExclusive(最大独占),最小非独占,minExclusive(最小独占)
g年份图案,枚举,空格符,最大非独占,maxExclusive(最大独占),最小非独占,minExclusive(最小独占)
g月日图案,枚举,空格符,最大非独占,maxExclusive(最大独占),最小非独占,minExclusive(最小独占)
g天图案,枚举,空格符,最大非独占,maxExclusive(最大独占),最小非独占,minExclusive(最小独占)
g月份图案,枚举,空格符,最大非独占,maxExclusive(最大独占),最小非独占,minExclusive(最小独占)
十六进制二进制长度,最小长度,最大长度,图案,枚举,空格符
base64二进制长度,最小长度,最大长度,图案,枚举,空格符
任意URI长度,最小长度,最大长度,图案,枚举,空格符
限定名长度,最小长度,最大长度,图案,枚举,空格符
符号长度,最小长度,最大长度,图案,枚举,空格符

4.1.6 anySimpleType的简单类型定义

有一个简单的类型定义几乎等同于简单版本ur类型定义目前根据定义在每个模式中。它具有以下属性:

架构组件任意简单类型
{名称}
任意简单类型
{目标命名空间}
http://www.w3.org/2001/XMLSchema(http://www.w3.org/2001/XMLSchema)
{基类型定义}
ur-type定义
{最终}
空的集合
{品种}
缺席的

上一小节 下一小节4.2基本面

        4.2.1平等的
        4.2.2命令
        4.2.3有界的
        4.2.4基数
        4.2.5数字

4.2.1等同

·价值空间·支持平等的概念,遵循以下规则:

在每个数据类型上,操作Equal都是根据等式定义的的属性·价值空间·:对于任何值a、 b从中提取·价值空间·,等于(a,b)如果为truea=b,否则为false。

注意,由于上述原因:

注:没有与对应的架构组件平等的 ·基本面·.

4.2.2订购

[定义:]订单关系在上·价值空间·是一种数学关系,它将·总订单·或a·部分订单·的成员·价值空间·.

[定义:]A类·价值空间·,因此数据类型称为命令如果存在·顺序关系·为此定义·价值空间·.

[定义:]A类部分订单是一个·顺序关系·那就是不灵活的,不对称可传递的.

A类·部分订单·具有以下属性:

符号a<>b用于指示case时间a!=b两者都没有a<b也不是b<a.对于任何值b来自不同的·原始的· ·价值空间·第页,a<>b.

[定义:]什么时候?a<>b,b无与伦比的,[定义:]否则他们就是可比的.

[定义:]A类总订单是一个·部分订单·这样就不会b是这样吗a<>b.

A类·总订单·已指定所有属性上面的·部分订单·,加以下属性:

注:本规范没有定义·顺序关系·对于某些数据类型不意味着其他应用程序无法将该数据类型视为通过强加自己的秩序关系而被秩序化。

·命令·规定:

4.2.2.1有序模式组件
{值}
什么之中的一个{false、partial、total}.

{值}取决于{品种},{刻面}{成员类型定义}在中简单类型定义组件,其中·命令·组件显示为的成员{基本面}.

什么时候?{品种}·原子的·,{值}继承自{值}属于{基类型定义}.对于所有人·原始的·类型{值}如表中所示基本面(§C.1).

什么时候?{品种}·列表·,{值}.

什么时候?{品种}·联盟·,{值}部分除非其中一个以下内容:

4.2.3有界

[定义:]A值u个在中·命令· ·价值空间· U型据说是一个包含上限·价值空间· V(V)(其中V(V)是的子集U型)如果是所有人v(v)在里面V(V),u个>=v(v).

[定义:]A值u个在中·命令· ·价值空间· U型据说是一个排他上限·价值空间· V(V)(其中V(V)是的子集U型)如果是所有人v(v)在里面V(V),u个>v(v).

[定义:]A值在中·命令· ·价值空间· L(左)据说是一个包含下限·价值空间· V(V)(其中V(V)是的子集L(左))如果是所有人v(v)在里面V(V),<=v(v).

[定义:]A值在中·命令· ·价值空间· L(左)据说是一个排他下限·价值空间· V(V)(其中V(V)是的子集L(左))如果是所有人v(v)在里面V(V),<v(v).

[定义:]数据类型为有界的如果是·价值空间·有一个·包含上限·或者·排他上限·和一个·包含下限·一个·排他下限·.

·有界的·规定:

4.2.3.1有界模式组件

{值}取决于{品种},{刻面}{成员类型定义}在中简单类型定义组件,其中·有界的·组件显示为的成员{基本面}.

什么时候?{品种}·原子的·,如果其中一个·最小非独占··minExclusive(最小独占)·和其中一个·最大非独占··maxExclusive(最大独占)·是其中之一{刻面},然后{值}真实的; 其他的{值}.

什么时候?{品种}·列表·,如果·长度·或两者兼而有之·最小长度··最大长度·是其中之一{刻面},然后{值}真实的; 其他的{值}.

什么时候?{品种}·联盟·,如果{值}真实的对于的每个成员{成员类型定义}以及的所有成员{成员类型定义}分享一个共同点祖先,那么{值}真实的;其他的{值}.

4.2.4基数

[定义:]·价值空间·与之相关联的概念是基数.一些·价值空间·是有限的,一些是可数无限的,而另一些则可以可以想象是无限的(尽管没有·价值空间·本规范定义为不可数无限)。数据类型为据说具有其基数·价值空间·.

有时对分类很有用·价值空间·(以及数据类型)的基数。有两个重大案例:

·基数·规定:

4.2.4.1基数模式组件
{值}
什么之中的一个{有限,可数无限}.

{值}取决于{品种},{刻面}{成员类型定义}在中简单类型定义组件,其中·基数·组件显示为的成员{基本面}.

什么时候?{品种}·原子的·{值}属于{基类型定义}有限的,有限的,然后{值}有限的,有限的.

什么时候?{品种}·原子的·{值}属于{基类型定义}可数无限任何一个以下各项条件为真,那么{值}有限的,有限的; 其他的{值}可数无限:

  1. 什么之中的一个·长度·,·最大长度·,·totalDigits(总位数)·是其中之一{刻面},
  2. 全部的以下是正确的:
    1. 什么之中的一个·最小非独占··minExclusive(最小独占)·是其中之一{刻面}
    2. 什么之中的一个·最大非独占··maxExclusive(最大独占)·是其中之一{刻面}
    3. 任何一个以下是正确的:
      1. ·分数位数·是其中之一{刻面}
      2. {基类型定义}是其中之一日期,g年-月,g年份,g月日,g天g月份或任何类型·派生的·从他们那里

什么时候?{品种}·列表·,如果·长度·或两者兼而有之·最小长度··最大长度·是其中之一{刻面},然后{值}有限的,有限的; 其他的{值}可数无限.

什么时候?{品种}·联盟·,如果{值}有限的,有限的对于的每个成员{成员类型定义},然后{值}有限的,有限的;其他的{值}可数无限.

4.2.5数字

[定义:]数据类型称为数字如果它的值是概念上的量(在某些数学数字系统)。

[定义:]其值为的数据类型不是·数字·据说是非数字.

·数字·规定:

4.2.5.1数字模式组件

{值}取决于{品种},{刻面},{基类型定义}{成员类型定义}在中简单类型定义成分其中·基数·组件显示为的成员{基本面}.

什么时候?{品种}·原子的·,{值}继承自{值}属于{基类型定义}.对于所有人·原始的·类型{值}如表中所示基本面(§C.1).

什么时候?{品种}·列表·,{值}.

什么时候?{品种}·联盟·,如果{值}真实的对于的每个成员{成员类型定义},然后{值}真实的;其他的{值}.

上一小节 4.3约束面

        4.3.1长度
        4.3.2最小长度
        4.3.3最大长度
        4.3.4图案
        4.3.5枚举
        4.3.6空格符
        4.3.7最大非独占
        4.3.8maxExclusive(最大独占)
        4.3.9minExclusive(最小独占)
        4.3.10最小非独占
        4.3.11totalDigits(总位数)
        4.3.12分数位数

4.3.1长度

[定义:] 长度是数字属于长度单位,其中长度单位取决于正在使用的类型·派生的·来自。的价值长度 ·必须·成为非负整数.

对于一串和数据类型·派生的·一串,长度单位为性格s定义见[XML 1.0(第二版)].对于任意URI,长度单位为字符(与一串).对于十六进制二进制base64二进制和数据类型·派生的·从他们那里,长度以二进制数据的八位字节(8位)进行测量。对于数据类型·派生的·通过·列表·,长度以列表项的数量衡量。

注:对于一串和数据类型·派生的·一串,长度并不总是与“字符串长度”一致由一些用户或用一些数字表示的存储单元的数量。因此,在指定长度并尝试从给定的值推断存储需求长度.

·长度·规定:

例子
以下是·用户衍生的·表示产品代码的数据类型,必须长度正好为8个字符。通过固定长度方面,我们确保从productCode派生的类型可以更改或设置其他方面的值,例如图案,但是无法更改长度。
<simpleType name='productCode'><限制基=“字符串”><长度值='8'固定='true'/></限制></simpleType>
4.3.1.1长度模式组件

如果{固定}真实的,然后为其键入当前类型是{基类型定义}无法指定的值长度{值}.

4.3.1.2长度模式组件的XML表示

的XML表示长度模式组件是一个<长度>元素信息项。这个信息项属性与组件的属性如下:

XML表示摘要长度要素信息项

<长度
固定的,固定的=布尔值:false(错误)
标识=身份证件
  价值=非负整数
  {具有非模式命名空间的任何属性…}>
内容:(注释?)
</长度>

长度架构组件
财产代表
{值}这个实际值价值 [属性]
{固定}这个实际值固定的 [属性],如果存在,否则为假
{注释}与所有<注释>中的元素信息项[儿童],如果有。
4.3.1.3长度验证规则
验证规则:长度有效
A中的值·价值空间·是facet-valid with尊重·长度·,确定如下:
1如果{品种}·原子的·然后
1.1如果{基元类型定义}一串任意URI,然后是值的长度,以性格·必须·等于{值};
1.2如果{基元类型定义}十六进制二进制base64二进制,然后是值的长度,以二进制数据的八位字节为单位测量,·必须·等于{值};
1.3如果{基元类型定义}限定名符号,然后任何{值}是面有效的。
2如果{品种}·列表·,然后是测量值的长度在列表项中,·必须·等于{值}

使用·长度·关于数据类型·派生的·限定名符号已弃用。此的未来版本规范可能会删除这些数据类型的这一方面。

4.3.1.4长度模式组件的约束
模式组件约束:length和minLength或maxLength
如果长度是的成员{刻面}然后
1这是一个错误最小长度成为{刻面}除非
1.1{值}属于最小长度<={值}属于长度
1.2有一个类型定义,该定义由一个或多个限制步骤,其中最小长度有相同的{值}长度未指定。
2这是一个错误最大长度成为{刻面}除非
2.1{值}属于长度<={值}属于最大长度
2.2有一个类型定义,该定义由一个或多个限制步骤,其中最大长度有相同的{值}长度未指定。

4.3.2最小长度

[定义:] 最小长度最小数量长度单位,其中长度单位取决于正在使用的类型·派生的·来自。的价值最小长度 ·必须·成为非负整数.

对于一串和数据类型·派生的·一串,最小长度单位为性格s定义见[XML 1.0(第二版)].对于十六进制二进制base64二进制和数据类型·派生的·从他们那里,最小长度以二进制数据的八位字节(8位)进行测量。对于数据类型·派生的·通过·列表·,最小长度以列表项的数量衡量。

注:对于一串和数据类型·派生的·一串,最小长度并不总是与“字符串长度”一致由一些用户或用一些数字表示的存储单元的数量。因此,在指定最小长度并尝试从给定的值推断存储需求最小长度.

·最小长度·规定:

例子
以下是·用户衍生的·要求字符串至少有一个字符(即。,空字符串不在·价值空间·此数据类型的)。
<simpleType name='no-empty-string'><限制基=“字符串”><minLength值=“1”/></限制></simpleType>
4.3.2.1 minLength模式组件

如果{固定}真实的,然后为其键入当前类型是{基类型定义}无法指定的值最小长度{值}.

4.3.2.2 minLength模式组件的XML表示

的XML表示最小长度模式组件是一个<最小长度>元素信息项。这个信息项属性与组件的属性如下:

XML表示摘要最小长度要素信息项

<最小长度
固定的,固定的=布尔值:false(错误)
标识=身份证件
  价值=非负整数
  {具有非模式命名空间的任何属性…}>
内容:(注释?)
</minLength>

最小长度架构组件
财产代表
{值}这个实际值价值 [属性]
{固定}这个实际值固定的 [属性],如果存在,否则为假
{注释}与所有<注释>中的元素信息项[儿童],如果有。
4.3.2.3最小长度验证规则
验证规则:minLength Valid
A中的值·价值空间·是facet-valid with尊重·最小长度·,确定如下:
1如果{品种}·原子的·然后
1.1如果{基元类型定义}一串任意URI,然后是值的长度,以性格·必须·大于或等于{值};
1.2如果{基元类型定义}十六进制二进制base64二进制,然后是值的长度,以二进制数据的八位字节为单位测量,·必须·大于或等于{值};
1.3如果{基元类型定义}限定名符号,然后任何{值}是面有效的。
2如果{品种}·列表·,然后是测量值的长度在列表项中,·必须·大于或等于{值}

使用·最小长度·关于数据类型·派生的·限定名符号已弃用。此的未来版本规范可能会删除这些数据类型的这一方面。

4.3.3最大长度

[定义:] 最大长度最大数量长度单位,其中长度单位变化取决于正在使用的类型·派生的·来自。的价值最大长度 ·必须·成为非负整数.

对于一串和数据类型·派生的·一串,最大长度单位为性格s定义见[XML 1.0(第二版)].对于十六进制二进制base64二进制和数据类型·派生的·从他们那里,最大长度以二进制数据的八位字节(8位)进行测量。对于数据类型·派生的·通过·列表·,最大长度以列表项的数量衡量。

注:对于一串和数据类型·派生的·一串,最大长度并不总是与“字符串长度”一致由一些用户或用一些数字表示的存储单元的数量。因此,在指定最大长度并尝试从给定的值推断存储需求最大长度.

·最大长度·规定:

例子
以下是·用户衍生的·可能用于接受具有上限的表单输入的数据类型可接受的字符数。
<simpleType name='form-input'><限制基=“字符串”><maxLength值='50'/></限制></simpleType>
4.3.3.1 maxLength模式组件

如果{固定}真实的,然后为其键入当前类型是{基类型定义}无法指定的值最大长度{值}.

4.3.3.2 maxLength模式组件的XML表示

的XML表示最大长度模式组件是一个<最大长度>元素信息项。这个信息项属性与组件的属性如下:

XML表示摘要最大长度要素信息项

<最大长度
固定的,固定的=布尔值:false(错误)
标识=身份证件
  价值=非负整数
  {具有非模式命名空间的任何属性…}>
内容:(注释?)
</maxLength>

最大长度架构组件
财产代表
{值}这个实际值价值 [属性]
{固定}这个实际值固定的 [属性],如果存在,否则为假
{注释}与所有<注释>中的元素信息项[儿童],如果有。
4.3.3.3 maxLength验证规则
验证规则:maxLength Valid
A中的值·价值空间·是facet-valid with尊重·最大长度·,确定如下:
1如果{品种}·原子的·然后
1.1如果{基元类型定义}一串任意URI,然后是值的长度,以性格·必须·小于或等于{值};
1.2如果{基元类型定义}十六进制二进制base64二进制,然后是值的长度,以二进制数据的八位字节为单位测量,·必须·小于或等于{值};
1.3如果{基元类型定义}限定名符号,然后任何{值}是面有效的。
2如果{品种}·列表·,然后是测量值的长度在列表项中,·必须·小于或等于{值}

使用·最大长度·关于数据类型·派生的·限定名符号已弃用。此的未来版本规范可能会删除这些数据类型的这一方面。

4.3.4图案

[定义:] 图案是对·价值空间·数据类型的约束·词法空间·到文字与特定模式相匹配。的价值图案 ·必须·成为·正则表达式·.

·图案·规定:

例子
以下是·用户衍生的·数据类型,它是邮政编码在美国,通过将字符串限制为匹配的字符串特定的·正则表达式·.
<simpleType name='better-us-zipcode'><限制基=“字符串”><模式值=“[0-9]{5}(-[0-9]})?”/></限制></simpleType>
4.3.4.2模式模式组件的XML表示

的XML表示图案模式组件是一个<模式>元素信息项。这个信息项属性与组件的属性如下:

XML表示摘要图案要素信息项

<图案
标识=身份证件
  价值=一串
  {具有非模式命名空间的任何属性…}>
内容:(注释?)
</pattern>

图案架构组件
财产代表
{值}这个实际值价值 [属性]
{注释}与所有<注释>中的元素信息项[儿童],如果有。
4.3.4.3模式的XML表示约束
模式表示约束:多个模式
如果有多个<模式>元素信息项显示为[儿童]<simpleType>,的[值]s应该将它们组合在一起,就像它们出现在一个单独的·正则表达式·作为单独的·分支·锿。
注:这是模式表示约束的结果多种模式(§4.3.4.3)以及的规则·限制·那个·图案·上指定的刻面相同的在类型中单步执行推导是在一起,而·图案·指定的镶嵌面不同的类型派生的步骤我们在一起。

因此,强加两个·图案·同时受到约束,模式作者可以编写单个·图案·哪一个表示两者的交集·图案·他们愿意吗强加或定义每个·图案·关于一个单独的类型派生步骤。

4.3.5枚举

[定义:] 枚举约束·价值空间·设置为指定的一组值。

枚举不会将订单关系强加给·价值空间·它创造;的值·命令·的属性·派生的·数据类型仍然是其来源的数据类型·派生的·.

·枚举·规定:

例子
以下示例是·用户衍生的·限制值的数据类型所列举的三个美国假日的日期。此数据类型定义将出现在由“最终用户”编写的模式中,并且显示如何通过枚举数据类型中的值来定义数据类型·价值空间·。枚举值必须为的类型有效文本·基本类型·.
<simpleType name=“假日”><注释><文档>一些美国假日</documentation></注释><限制基数='gMonthDay'><枚举值='--01-01'><注释><文档>元旦</documentation></注释></枚举><枚举值=“--07-04”><注释><documentation>7月4日</documentation></注释></枚举><枚举值='--12-25'><注释><文档>圣诞节</documentation></注释></枚举></限制></simpleType>
4.3.5.2枚举模式组件的XML表示

的XML表示枚举模式组件是一个<枚举>元素信息项。这个信息项属性与组件的属性如下:

XML表示摘要枚举要素信息项

<枚举
标识=身份证件
  价值=任意简单类型
  {具有非模式命名空间的任何属性…}>
内容:(注释?)
</枚举>

枚举架构组件
财产代表
{值}这个实际值价值 [属性]
{注释}与所有<注释>中的元素信息项[儿童],如果有。
4.3.5.3枚举的XML表示约束
模式表示约束:多重枚举
如果有多个<枚举>出现元素信息项作为[儿童]<simpleType>这个{值}枚举组件应该是所有这些组件的集合[值]第条。
4.3.5.4枚举验证规则
验证规则:枚举有效
A中的值·价值空间·是facet-valid with尊重·枚举·如果该值是中指定的值之一{值}

4.3.6空白

[定义:] 空格符约束·价值空间·类型的·派生的·一串这样的话各种行为在中指定属性值规范化在里面[XML 1.0(第二版)]实现。的价值空格符必须是{preserve、replace、collapse}之一。

保存
未进行规范化,值未更改(这是行为要求[XML 1.0(第二版)]元素含量)
代替
#x9(tab)、#xA(换行)和#xD(回车)的所有出现替换为#x20(空格)
崩溃
经过以下暗示的处理代替,连续将#x20的序列折叠为单个#x20,并且前导和删除尾部#x20。
注:此处(以及本规范其他地方)使用的符号#xA表示通用字符集(UCS)代码点十六进制A(换行),表示为U+000A。此符号与&#xA;,哪个是XML字符引用到同一UCS代码点。

空格符适用于所有·原子的··列表·数据类型。对于所有人·原子的·数据类型,而不是一串(和类型·派生的·通过·限制·从中)的价值空格符崩溃并且不能由模式作者更改;对于一串的价值空格符保存; 对于任何类型·派生的·通过·限制·一串的价值空格符可以是三种法律价值中的任何一种。对于所有数据类型·派生的·通过·列表·这个的值空格符崩溃而且不能由模式作者更改。对于所有数据类型·派生的·通过·联盟· 空格符不直接适用;然而规范化行为·联盟·类型由控制的价值空格符在其中一个·成员类型·与之相对的·联盟·已成功验证。

注:有关的详细信息空格符,请参阅关于中空白归一化的讨论架构组件详细信息在里面[XML模式第1部分:结构].

·空格符·规定:

例子
以下示例是的数据类型定义这个代币 ·内置的· ·派生的·数据类型。
<simpleType name='token'><restriction base='normalizedString'><whiteSpace value='collapse'/></限制></simpleType>
4.3.6.1空白模式组件
{值}
什么之中的一个{保留、替换、折叠}.
{固定}
A类布尔值.
{注释}
可选。注释.

如果{固定}真实的,然后为其键入当前类型是{基类型定义}无法指定的值空格符{值}.

4.3.6.2空白模式组件的XML表示

的XML表示空格符模式组件是一个<空白>元素信息项。这个信息项属性与组件的属性如下:

XML表示摘要空格符要素信息项

<空白
固定的,固定的=布尔值:false(错误)
标识=身份证件
  价值= (崩溃|保存|代替)
  {具有非模式命名空间的任何属性…}>
内容:(注释?)
</whiteSpace>

空格符架构组件
财产代表
{值}这个实际值价值 [属性]
{固定}这个实际值固定的 [属性],如果存在,否则为假
{注释}与所有<注释>中的元素信息项[儿童],如果有。
4.3.6.3空白验证规则
注:没有·验证规则·s关联·空格符·.有关更多信息,请参阅关于中空白归一化的讨论架构组件详细信息在里面[XML模式第1部分:结构].
4.3.6.4对空白模式组件的约束
架构组件约束:空白有效限制
它是一个·错误·如果空格符是的成员之一{刻面}属于{基类型定义}并且下列任何一种情况是正确:
1{值}代替保存{值}家长的空格符崩溃
2{值}保存{值}家长的空格符代替

4.3.7最大包容性

[定义:] 最大非独占·包含上限··价值空间·对于具有·命令·属性。的价值最大非独占 ·必须·在中·价值空间··基本类型·.

·最大非独占·规定:

例子
以下是·用户衍生的·将值限制为小于或等于的整数的数据类型100,使用·最大非独占·.
<simpleType name='one-hundred-or-less'><限制基数=‘整数’><maxInclusive value='100'/></限制></simpleType>
4.3.7.2 maxInclusive Schema组件的XML表示

的XML表示最大非独占模式组件是一个<最大包容性>元素信息项。这个信息项属性与组件的属性如下:

XML表示摘要最大非独占要素信息项

<最大非独占
固定的,固定的=布尔值:false(错误)
标识=身份证件
  价值=任意简单类型
  {具有非模式命名空间的任何属性…}>
内容:(注释?)
</maxInclusive>

最大非独占架构组件
财产代表
{值}这个实际值价值 [属性]
{固定}这个实际值固定的 [属性],如果存在,否则为假,如果存在,否则为假
{注释}与所有<注释>中的元素信息项[儿童],如果有。
4.3.7.3 maxInclusive验证规则
验证规则:maxInclusive Valid
中的值·命令· ·价值空间·在以下方面是面有效的·最大非独占·,确定为跟随:
1如果·数字·中的属性{基本面}真实的,然后是值·必须·数值小于或等于{值};
2如果·数字·中的属性{基本面}(即。,{基类型定义}是与日期和时间相关的数据类型),然后是值·必须·按时间顺序小于或等于{值};

4.3.8最大独占

[定义:] maxExclusive(最大独占)·排他上限··价值空间·对于具有·命令·属性。的价值maxExclusive(最大独占) ·必须··价值空间··基本类型·或等于{值}在里面{基类型定义}.

·maxExclusive(最大独占)·规定:

例子
以下是·用户衍生的·将值限制为小于或等于的整数的数据类型100,使用·maxExclusive(最大独占)·.
<simpleType name='less-than-one-fundred-and-one'><限制基数=‘整数’><maxExclusive value='101'/></限制></simpleType>
请注意·价值空间·此数据类型的与前一个(名为“百分之一或更少”)。
4.3.8.2 maxExclusive模式组件的XML表示

的XML表示maxExclusive(最大独占)模式组件是一个<maxExclusive>元素信息项。这个信息项属性与组件的属性如下:

XML表示摘要maxExclusive(最大独占)要素信息项

<最大独占
固定的,固定的=布尔值:false(错误)
标识=身份证件
  价值=任意简单类型
  {具有非模式命名空间的任何属性…}>
内容:(注释?)
</maxExclusive>

maxExclusive(最大独占)架构组件
财产代表
{值}这个实际值价值 [属性]
{固定}这个实际值固定的 [属性],如果存在,否则为假
{注释}与所有<注释>中的元素信息项[儿童],如果有。
4.3.8.3 maxExclusive验证规则
验证规则:maxExclusive Valid
中的值·命令· ·价值空间·在以下方面是面有效的·maxExclusive(最大独占)·,已确定如下:
1如果·数字·中的属性{基本面}真实的,然后是价值·必须·数值小于{值};
2如果·数字·中的属性{基本面}(即。,{基类型定义}是与日期和时间相关的数据类型),然后是值·必须·按时间顺序小于{值};

4.3.9最小独占

[定义:] minExclusive(最小独占)·排他下限··价值空间·对于具有·命令·属性。的价值minExclusive(最小独占) ·必须··价值空间··基本类型·或等于{值}在里面{基类型定义}.

·minExclusive(最小独占)·规定:

例子
以下是·用户衍生的·将值限制为大于或等于的整数的数据类型100,使用·minExclusive(最小独占)·.
<simpleType name='more-than-ninety-9en'><限制基数=‘整数’><minExclusive值='99'/></限制></simpleType>
请注意·价值空间·此数据类型的与前一个(名为“百分之一或更多”)。
4.3.9.2 minExclusive模式组件的XML表示

的XML表示minExclusive(最小独占)模式组件是一个<最小独占>元素信息项。这个信息项属性与组件的属性如下:

XML表示摘要minExclusive(最小独占)要素信息项

<最小独占
固定的,固定的=布尔值:false(错误)
标识=身份证件
  价值=任意简单类型
  {具有非模式命名空间的任何属性…}>
内容:(注释?)
</minExclusive>

minExclusive(最小独占)架构组件
财产代表
{值}这个实际值价值 [属性]
{固定}这个实际值固定的 [属性],如果存在,否则为假
{注释}与所有<注释>中的元素信息项[儿童],如果有。
4.3.9.3 minExclusive验证规则
验证规则:minExclusive Valid
中的值·命令· ·价值空间·在以下方面是面有效的·minExclusive(最小独占)·如果:
1如果·数字·中的属性{基本面}真实的,然后是价值·必须·数值大于{值};
2如果·数字·中的属性{基本面}(即。,{基类型定义}是与日期和时间相关的数据类型),然后是值·必须·按时间顺序大于{值};

4.3.10最小包容性

[定义:] 最小非独占·包含下限··价值空间·对于具有·命令·属性。的价值最小非独占 ·必须··价值空间··基本类型·.

·最小非独占·规定:

例子
以下是·用户衍生的·将值限制为大于或等于的整数的数据类型100,使用·最小非独占·.
<simpleType name='one-hundred-or-more'><限制基数=‘整数’><minInclusive value='100'/></限制></simpleType>
4.3.10.2 minInclusive Schema组件的XML表示

的XML表示最小非独占模式组件是一个<minInclusive>元素信息项。这个信息项属性与组件的属性如下:

XML表示摘要最小非独占要素信息项

<最小非独占
固定的,固定的=布尔值:false(错误)
标识=身份证件
  价值=任意简单类型
  {具有非模式命名空间的任何属性…}>
内容:(注释?)
</minInclusive>

最小非独占架构组件
财产代表
{值}这个实际值价值 [属性]
{固定}这个实际值固定的 [属性],如果存在,否则为假
{注释}与所有<注释>中的元素信息项[儿童],如果有。
4.3.10.3最小包容性验证规则
验证规则:minInclusive Valid
中的值·命令· ·价值空间·在以下方面是面有效的·最小非独占·如果:
1如果·数字·中的属性{基本面}真实的,然后是价值·必须·数值大于或等于{值};
2如果·数字·中的属性{基本面}(即。,{基类型定义}是与日期和时间相关的数据类型),然后是值·必须·按时间顺序大于或等于{值};

4.3.11总位数

[定义:] totalDigits(总位数)控制中的最大值数这个·价值空间·数据类型的·派生的·十进制的,通过将其限制为可以表示为i×10^-n哪里n个是整数,因此|i|<10^总位数0<=n<=总位数.的价值totalDigits(总位数) ·必须·成为正整数.

术语totalDigits(总位数)是为了反映一个事实限制·价值空间·到那些可以最多使用词汇表示totalDigits(总位数)数字。请注意,它不限制·词法空间·直接;添加了附加的前导零位或尾随的小数零位是仍然允许。

4.3.11.2 totalDigits架构组件的XML表示

的XML表示totalDigits(总位数)模式组件是一个<totalDigits>元素信息项。这个信息项属性与组件的属性如下:

XML表示摘要totalDigits(总位数)要素信息项

<总位数
固定的,固定的=布尔值:false(错误)
标识=身份证件
  价值=正整数
  {具有非模式命名空间的任何属性…}>
内容:(注释?)
</totalDigits>

totalDigits(总位数)架构组件
财产代表
{值}这个实际值价值 [属性]
{固定}这个实际值固定的 [属性],如果存在,否则为假
{注释}与所有<注释>中的元素信息项[儿童],如果有。
4.3.11.3 totalDigits验证规则
验证规则:totalDigits Valid
A中的值·价值空间·是facet-valid with尊重·totalDigits(总位数)·如果:
1该值可以表示为i×10^-n哪里n个是整数,因此|i|<10^{值}0≤n<={值}.

4.3.12分数位数

[定义:] 分数位数控制最小差异的大小值之间在中·价值空间·数据类型的·派生的·十进制的,通过限制·价值空间·到以下数字可表示为i×10^-n哪里n个是整数和0<=n<=分数位数.的价值分数位数 ·必须·成为非负整数.

术语分数位数是为了反映一个事实限制·价值空间·到那些可以最多使用词汇表示分数位数小数点右边。请注意,它不限制·词法空间·直接;非-·规范词汇表征·这增加了额外的仍然允许前导零位或尾随零位。

例子
以下是·用户衍生的·可用于表示震级的数据类型一个人体温的摄氏度。此定义将出现在由“最终用户”编写的架构中并展示了如何通过指定方面值来定义数据类型约束的范围·基本类型·.
<simpleType name='celsiusBodyTemp'><限制基数='decimal'><totalDigits value='4'/><fractionDigits value='1'/><minInclusive值=“36.4”/><maxInclusive value='40.5'/></限制></simpleType>
4.3.12.1 fractionDigits架构组件

如果{固定}真实的,然后为其键入当前类型是{基类型定义}无法指定的值分数位数{值}.

4.3.12.2 fractionDigits模式组件的XML表示

的XML表示分数位数模式组件是一个<fractionDigits>元素信息项。这个信息项属性与组件的属性如下:

XML表示摘要分数位数要素信息项

<分数位数
固定的,固定的=布尔值:false(错误)
标识=身份证件
  价值=非负整数
  {具有非模式命名空间的任何属性…}>
内容:(注释?)
</fractionDigits>

分数位数架构组件
财产代表
{值}这个实际值价值 [属性]
{固定}这个实际值固定的 [属性],如果存在,否则为假
{注释}与所有<注释>中的元素信息项[儿童],如果有。
4.3.12.3 fractionDigits验证规则
验证规则:fractionDigits Valid
A中的值·价值空间·是facet-valid with尊重·分数位数·如果:
1该值可以表示为i×10^-n哪里n个是整数和0≤n<={值}.

5合规性

本规范描述了以下两个级别的一致性数据类型处理器。第一个是所有处理器都是必需的。对另一方的支持将取决于处理器适用的应用程序环境。

[定义:] 最低合规性处理器·必须·完全正确地实施·对模式的约束··验证规则·.

[定义:]接受XML文档形式的模式的处理器在里面简单类型定义模式组件的XML表示(§4.1.2)(以及其他相关部分数据类型组件(§4))据说还可以提供符合模式的XML表示,·必须·,在处理架构文档时,完全和正确执行所有·模式表示约束·在本规范中,以及·必须·严格遵守中的规范简单类型定义模式组件的XML表示(§4.1.2)(以及其他相关部分数据类型组件(§4))用于映射这样的内容文件到模式组件用于验证。

注:通过分离与混凝土相关的符合性要求XML模式文档的语法,该规范允许处理器它使用存储在优化二进制表示中的模式进行验证,动态创建的模式表示为编程语言数据编译特定模式的结构或实现转换为诸如C或Java之类的可执行代码。这样的处理器可以说·最小一致性·但不一定在·符合模式的XML表示·.

数据类型定义模式(规范)

<!DOCTYPE xs:schema PUBLIC“-//W3C//DTD XMLSCHEMA 200102//EN”“XMLSCHEMA.DTD”[<!--保持此模式XML1.0 DTD有效--><!ENTITY%schemaAttrs的xmlns:hfp CDATA#IMPLIED'><!元素hfp:hasFacet为空><!ATTLIST hfp:hasFacet(附件hfp)name NMTOKEN#REQUIRED(名称NMTOKEN#必需)><!ELEMENT hfp:hasProperty EMPTY>元素hfp:hasProperty空><!ATTLIST hfp:hasProperty(附件hfp)name NMTOKEN#必需value CDATA#必需><!--确保不读取外部子集将了解我们声明的各种ID--><!ATTLIST xs:simpleType id id#IMPLIED><!ATTLIST xs:maxExclusive id id#IMPLIED><!ATTLIST xs:minExclusive id id#IMPLIED><!ATTLIST xs:maxInclusive id id#隐含><!ATTLIST xs:minInclusive id id#IMPLIED><!ATTLIST xs:totalDigits id id#IMPLIED><!ATTLIST xs:fractionDigits id id#IMPLIED><!ATTLIST xs:length id id#IMPLIED><!ATTLIST xs:minLength id id#IMPLIED><!ATTLIST xs:maxLength id id#IMPLIED><!ATTLIST xs:枚举id#IMPLIED><!ATTLIST xs:pattern id id#IMPLIED><!ATTLIST xs:appinfo id id#隐含><!ATTLIST xs:文档id#IMPLIED><!ATTLIST xs:list id id#隐含><!ATTLIST xs:联合id#IMPLIED>]><?xml版本=“1.0”?><xs:schema xmlns:hfp=“http://www.w3.org/2001/XMLSchema-hasFacetAndProperty网站"xmlns:xs=“http://www.w3.org/2001/XMLSchema(http://www.w3.org/2001/XMLSchema)“blockDefault=”#all“elementFormDefault=“qualified”xml:lang=“en”targetNamespace=“http://www.w3.org/2001/XMLSchema(http://www.w3.org/2001/XMLSchema)"version=“Id:datatypes.xsd,v 1.4 2004/05/29 10:26:33 ht Exp”><xs:annotation><xs:documentation source=“../datatypes/datatypes-with-errata.html”>与本文件相对应的模式是规范的,关于它在XML模式语言。文档(在&lt;documentation>中元素),不是规范性的,而是强调了重要的这是W3C建议书的一部分</xs:documentation></xs:annotation><xs:annotation><xs:documentation>首先是内置的原始数据类型。这些定义适用于只有信息,真正的内置定义才是神奇的。</xs:documentation><xs:documentation>对于此模式中的每个内置数据类型(原语和派生的)可以通过构造的URI唯一寻址如下:1) 基本URI是XML架构命名空间的URI2) 片段标识符是数据类型的名称例如,要处理int数据类型,URI为:http://www.w3.org/2001/XMLSchema#int此外,每个方面定义元素可以是唯一的通过如下构造的URI寻址:1) 基本URI是XML架构命名空间的URI2) 片段标识符是方面的名称例如,要处理maxInclusive方面,URI是:http://www.w3.org/2001/XMLSchema#maxInclusive(http://www.w3.org/2001/XMLSchema#maxInclusive)此外,内置数据类型定义中的每个方面的用法可以通过如下构造的URI进行唯一寻址:1) 基本URI是XML架构命名空间的URI2) 片段标识符是数据类型的名称,后跟由句点(“.”)后跟方面的名称例如,要解决中maxInclusive方面的用法int的定义,URI为:http://www.w3.org/2001/XMLSchema#int.maxInclusive(包含)</xs:documentation></xs:annotation><xs:simpleType name=“string”id=“string“><xs:annotation><xs:appinfo><hfp:hasFacet name=“length”/><hfp:hasFacet name=“minLength”/><hfp:hasFacet name=“maxLength”/><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasProperty name=“ordered”value=“false”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#string"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace value=“preserve”id=“string.preserve”/></xs:restriction></xs:simpleType><xs:simpleType name=“boolean”id=“booleal”><xs:annotation><xs:appinfo><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasProperty name=“ordered”value=“false”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“finited”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#boolean"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“boolean.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“float”id=“float“><xs:annotation><xs:appinfo><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasFacet name=“maxInclusive”/><hfp:hasFacet name=“maxExclusive”/><hfp:hasFacet name=“minInclusive”/><hfp:hasFacet name=“minExclusive”/><hfp:hasProperty name=“ordered”value=“partial”/><hfp:hasProperty name=“bounded”value=“true”/><hfp:hasProperty name=“cardinality”value=“finited”/><hfp:hasProperty name=“numeric”value=“true”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#float"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“float.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“double”id=“doubel”><xs:annotation><xs:appinfo><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasFacet name=“maxInclusive”/><hfp:hasFacet name=“maxExclusive”/><hfp:hasFacet name=“minInclusive”/><hfp:hasFacet name=“minExclusive”/><hfp:hasProperty name=“ordered”value=“partial”/><hfp:hasProperty name=“bounded”value=“true”/><hfp:hasProperty name=“cardinality”value=“finited”/><hfp:hasProperty name=“numeric”value=“true”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#double"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“double.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“decimal”id=“decical”><xs:annotation><xs:appinfo><hfp:hasFacet name=“totalDigits”/><hfp:hasFacet name=“fractionDigits”/><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“maxInclusive”/><hfp:hasFacet name=“maxExclusive”/><hfp:hasFacet name=“minInclusive”/><hfp:hasFacet name=“minExclusive”/><hfp:hasProperty name=“ordered”value=“total”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“true”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#decimal网站"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“decimal.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“duration”id=“duration”><xs:annotation><xs:appinfo><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasFacet name=“maxInclusive”/><hfp:hasFacet name=“maxExclusive”/><hfp:hasFacet name=“minInclusive”/><hfp:hasFacet name=“minExclusive”/><hfp:hasProperty name=“ordered”value=“partial”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#duration"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“duration.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“dateTime”id=“dateTime”><xs:annotation><xs:appinfo><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasFacet name=“maxInclusive”/><hfp:hasFacet name=“maxExclusive”/><hfp:hasFacet name=“minInclusive”/><hfp:hasFacet name=“minExclusive”/><hfp:hasProperty name=“ordered”value=“partial”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#dateTime(http://www.w3.org/TR/xmlschema-2/#dateTime)"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“dateTime.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“time”id=“time“><xs:annotation><xs:appinfo><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasFacet name=“maxInclusive”/><hfp:hasFacet name=“maxExclusive”/><hfp:hasFacet name=“minInclusive”/><hfp:hasFacet name=“minExclusive”/><hfp:hasProperty name=“ordered”value=“partial”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#time网站"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“time.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“date”id=“date”><xs:annotation><xs:appinfo><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasFacet name=“maxInclusive”/><hfp:hasFacet name=“maxExclusive”/><hfp:hasFacet name=“minInclusive”/><hfp:hasFacet name=“minExclusive”/><hfp:hasProperty name=“ordered”value=“partial”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#日期"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“date.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“gYearMonth”id=“gYearMonth”><xs:annotation><xs:appinfo><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasFacet name=“maxInclusive”/><hfp:hasFacet name=“maxExclusive”/><hfp:hasFacet name=“minInclusive”/><hfp:hasFacet name=“minExclusive”/><hfp:hasProperty name=“ordered”value=“partial”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#gYearMonth网址"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“gYearMonth.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“gYear”id=“gYear><xs:annotation><xs:appinfo><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasFacet name=“maxInclusive”/><hfp:hasFacet name=“maxExclusive”/><hfp:hasFacet name=“minInclusive”/><hfp:hasFacet name=“minExclusive”/><hfp:hasProperty name=“ordered”value=“partial”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#gYear"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“gYear.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“gMonthDay”id=“gMonhDay”><xs:annotation><xs:appinfo><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasFacet name=“maxInclusive”/><hfp:hasFacet name=“maxExclusive”/><hfp:hasFacet name=“minInclusive”/><hfp:hasFacet name=“minExclusive”/><hfp:hasProperty name=“ordered”value=“partial”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#gMonthDay网站"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“gMonthDay.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“gDay”id=“gDay><xs:annotation><xs:appinfo><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasFacet name=“maxInclusive”/><hfp:hasFacet name=“maxExclusive”/><hfp:hasFacet name=“minInclusive”/><hfp:hasFacet name=“minExclusive”/><hfp:hasProperty name=“ordered”value=“partial”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#gDay网站"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“gDay.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“gMonth”id=“gMonth”><xs:annotation><xs:appinfo><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasFacet name=“maxInclusive”/><hfp:hasFacet name=“maxExclusive”/><hfp:hasFacet name=“minInclusive”/><hfp:hasFacet name=“minExclusive”/><hfp:hasProperty name=“ordered”value=“partial”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#gMonth网站"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“gMonth.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“hexBinary”id=“hex二进制”><xs:annotation><xs:appinfo><hfp:hasFacet name=“length”/><hfp:hasFacet name=“minLength”/><hfp:hasFacet name=“maxLength”/><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasProperty name=“ordered”value=“false”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#binary"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“hexBinary.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“base64Binary”id=“base64二进制”><xs:annotation><xs:appinfo><hfp:hasFacet name=“length”/><hfp:hasFacet name=“minLength”/><hfp:hasFacet name=“maxLength”/><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasProperty name=“ordered”value=“false”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#base64二进制"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“base64Binary.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“anyURI”id=“anyURL”><xs:annotation><xs:appinfo><hfp:hasFacet name=“length”/><hfp:hasFacet name=“minLength”/><hfp:hasFacet name=“maxLength”/><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasProperty name=“ordered”value=“false”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#anyURI"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“anyURI.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“QName”id=“QName”><xs:annotation><xs:appinfo><hfp:hasFacet name=“length”/><hfp:hasFacet name=“minLength”/><hfp:hasFacet name=“maxLength”/><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasProperty name=“ordered”value=“false”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#QName"/></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“QName.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“NOTATION”id=“NOTAITION”><xs:annotation><xs:appinfo><hfp:hasFacet name=“length”/><hfp:hasFacet name=“minLength”/><hfp:hasFacet name=“maxLength”/><hfp:hasFacet name=“pattern”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasProperty name=“ordered”value=“false”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#NOTATION(注释)"/><xs:documentation>NOTATION不能直接在模式中使用;而是一种类型必须通过指定至少一个枚举从中派生其值是在模式。</xs:documentation></xs:annotation><xs:restriction base=“xs:anySimpleType”><xs:whiteSpace fixed=“true”value=“collapse”id=“NOTATION.whiteSpace”/></xs:restriction></xs:simpleType><xs:annotation><xs:documentation>现在派生的基元类型</xs:documentation></xs:annotation><xs:simpleType name=“normalizedString”id=“normalistedString”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#normalizedString(http://www.w3.org/TR/xmlschema-2/#normalizedString)"/></xs:annotation><xs:restriction base=“xs:string”><xs:whiteSpace value=“replace”id=“normalizedString.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“token”id=“token><xs:annotation><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#令牌"/></xs:annotation><xs:restriction base=“xs:normalizedString”><xs:whiteSpace value=“collapse”id=“token.whiteSpace”/></xs:restriction></xs:simpleType><xs:simpleType name=“language”id=“language><xs:annotation><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#语言"/></xs:annotation><xs:restriction base=“xs:token”><xs:pattern value=“[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*”id=“language.pattern”><xs:annotation><xs:documentation source=“http://www.ietf.org/rfc/rfc3066.txt">模式指定了XML1.0e2第2.12节的内容和RFC 3066(RFC 1766的修订版)。</xs:documentation></xs:annotation></xs:pattern></xs:restriction></xs:simpleType><xs:simpleType name=“IDREFS”id=“IDREWS”><xs:annotation><xs:appinfo><hfp:hasFacet name=“length”/><hfp:hasFacet name=“minLength”/><hfp:hasFacet name=“maxLength”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasFacet name=“pattern”/><hfp:hasProperty name=“ordered”value=“false”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#IDREFS"/></xs:annotation><xs:restriction><xs:simpleType><xs:list itemType=“xs:IDREF”/></xs:simpleType><xs:minLength value=“1”id=“IDREFS.minLength”/></xs:restriction></xs:simpleType><xs:simpleType name=“ENTITIES”id=“ENTITES”><xs:annotation><xs:appinfo><hfp:hasFacet name=“length”/><hfp:hasFacet name=“minLength”/><hfp:hasFacet name=“maxLength”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasFacet name=“pattern”/><hfp:hasProperty name=“ordered”value=“false”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#ENTITIES(实体)"/></xs:annotation><xs:restriction><xs:simpleType><xs:list itemType=“xs:ENTITY”/></xs:simpleType><xs:minLength value=“1”id=“ENTITIES.minLengh”/></xs:restriction></xs:simpleType><xs:simpleType name=“NMTOKEN”id=“NMTOKEN”><xs:annotation><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#NMTOKEN网站"/></xs:annotation><xs:restriction base=“xs:token”><xs:pattern value=“\c+”id=“NMTOKEN.pattern”><xs:annotation><xs:documentation source=“http://www.w3.org/TR/REC-xml#NT-Nmtoken“>模式与XML规范中的production 7相匹配</xs:documentation></xs:annotation></xs:pattern></xs:restriction></xs:simpleType><xs:simpleType name=“NMTOKENS”id=“NMTOKENS”><xs:annotation><xs:appinfo><hfp:hasFacet name=“length”/><hfp:hasFacet name=“minLength”/><hfp:hasFacet name=“maxLength”/><hfp:hasFacet name=“enumeration”/><hfp:hasFacet name=“whiteSpace”/><hfp:hasFacet name=“pattern”/><hfp:hasProperty name=“ordered”value=“false”/><hfp:hasProperty name=“bounded”value=“false”/><hfp:hasProperty name=“cardinality”value=“countably infinite”/><hfp:hasProperty name=“numeric”value=“false”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#NMTOKENS"/></xs:annotation><xs:restriction><xs:simpleType><xs:list itemType=“xs:NMTOKEN”/></xs:simpleType><xs:minLength value=“1”id=“NMTOKENS.minLength”/></xs:restriction></xs:simpleType><xs:simpleType name=“name”id=“name”><xs:annotation><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#名称"/></xs:annotation><xs:restriction base=“xs:token”><xs:pattern value=“\i\c*”id=“Name.pattern”><xs:annotation><xs:documentation source=“http://www.w3.org/TR/REC-xml#NT-名称“>模式匹配XML规范中的产品5</xs:documentation></xs:annotation></xs:pattern></xs:restriction></xs:simpleType><xs:simpleType name=“NCName”id=“NCName“><xs:annotation><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#NCName"/></xs:annotation><xs:restriction base=“xs:Name”><xs:pattern value=“[\i-[:]][\c-[:]]*”id=“NCName.pattern”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/REC-xml-names/#NT-NCName“>模式匹配XML规范中命名空间的产品4</xs:documentation></xs:annotation></xs:pattern></xs:restriction></xs:simpleType><xs:simpleType name=“ID”ID=“ID”><xs:annotation><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#ID"/></xs:annotation><xs:restriction base=“xs:NCName”/></xs:simpleType><xs:simpleType name=“IDREF”id=“IDREV”><xs:annotation><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#IDREF"/></xs:annotation><xs:restriction base=“xs:NCName”/></xs:simpleType><xs:simpleType name=“ENTITY”id=“ENTITY”><xs:annotation><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#ENTITY(http://www.w3.org/TR/xmlschema-2/#ENTITY)"/></xs:annotation><xs:restriction base=“xs:NCName”/></xs:simpleType><xs:simpleType name=“integer”id=“intege”><xs:annotation><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#integer"/></xs:annotation><xs:restriction base=“xs:decimal”><xs:fractionDigits-fixed=“true”value=“0”id=“integer.refctionDigits”/><xs:pattern value=“[\-+]?[0-9]+”/></xs:restriction></xs:simpleType><xs:simpleType name=“nonPositiveInteger”id=“nonpositiveIntegrer”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#nonPositiveIntegrer网站"/></xs:annotation><xs:restriction base=“xs:integer”><xs:maxInclusive value=“0”id=“nonPositiveInteger.maxInclusive”/></xs:restriction></xs:simpleType><xs:simpleType name=“negativeIntegrer”id=“negateIntegrer”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#negativeInteger(http://www.w3.org/TR/xmlschema-2/#negativeInteger)"/></xs:annotation><xs:restriction base=“xs:nonPositiveIntegrer”><xs:maxInclusive value=“-1”id=“negativeInteger.maxInclusite”/></xs:restriction></xs:simpleType><xs:simpleType name=“long”id=“long“><xs:annotation><xs:appinfo><hfp:hasProperty name=“bounded”value=“true”/><hfp:hasProperty name=“cardinality”value=“finited”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#long"/></xs:annotation><xs:restriction base=“xs:integer”><xs:minInclusive value=“-9223372036854775808”id=“long.minInclustive”/><xs:maxInclusive value=“9223372036854775807”id=“long.maxInclustive”/></xs:restriction></xs:simpleType><xs:simpleType name=“int”id=“int”><xs:annotation><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#int"/></xs:annotation><xs:restriction base=“xs:long”><xs:minInclusive value=“-2147483648”id=“int.minInclusie”/><xs:maxInclusive value=“2147483647”id=“int.maxInclusite”/></xs:restriction></xs:simpleType><xs:simpleType name=“short”id=“short“><xs:annotation><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#short"/></xs:annotation><xs:restriction base=“xs:int”><xs:minInclusive value=“-32768”id=“short.minInclusive”/><xs:maxInclusive value=“32767”id=“short.maxInclusite”/></xs:restriction></xs:simpleType><xs:simpleType name=“字节”id=“字节”><xs:annotation><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#byte"/></xs:annotation><xs:restriction base=“xs:short”><xs:minInclusive value=“-128”id=“byte.minClusive”/><xs:maxInclusive value=“127”id=“byte.maxInclusite”/></xs:restriction></xs:simpleType><xs:simpleType name=“nonNegativeInteger”id=“nonNegativeInteger”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#nonNegativeInteger"/></xs:annotation><xs:restriction base=“xs:integer”><xs:minInclusive value=“0”id=“nonNegativeInteger.minClusive”/></xs:restriction></xs:simpleType><xs:simpleType name=“unsignedLong”id=“unsinnedLong”><xs:annotation><xs:appinfo><hfp:hasProperty name=“bounded”value=“true”/><hfp:hasProperty name=“cardinality”value=“finited”/></xs:appinfo><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#unsignedLong"/></xs:annotation><xs:restriction base=“xs:nonNegativeInteger”><xs:maxInclusive value=“18446744073709551615”id=“unsignedLong.maxInclusive”/></xs:restriction></xs:simpleType><xs:simpleType name=“unsignedInt”id=“unsinnedInt”><xs:annotation><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#unsignedInt网址"/></xs:annotation><xs:restriction base=“xs:unsignedLong”><xs:maxInclusive value=“4294967295”id=“unsignedInt.maxInclusite”/></xs:restriction></xs:simpleType><xs:simpleType name=“unsignedShort”id=“unsignedShort”><xs:annotation><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#unsignedShort"/></xs:annotation><xs:restriction base=“xs:unsignedInt”><xs:maxInclusive value=“65535”id=“unsignedShort.maxInclusite”/></xs:restriction></xs:simpleType><xs:simpleType name=“unsignedByte”id=“unsinnedByte”><xs:annotation><xs:documentation source=“http://www.w3.org/TR/xmlschema-2/#unsignedByte"/></xs:annotation><xs:restriction base=“xs:unsignedShort”><xs:maxInclusive value=“255”id=“unsignedByte.maxInclusite”/></xs:restriction></xs:simpleType><xs:simpleType name=“positionveInteger”id=“positiveIntege”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#positiveInteger"/></xs:annotation><xs:restriction base=“xs:nonNegativeInteger”><xs:minInclusive value=“1”id=“positiveInteger.minClusive”/></xs:restriction></xs:simpleType><xs:simpleType name=“derivationControl”><xs:annotation><xs:documentation>实用程序类型,不供公共使用</xs:documentation></xs:annotation><xs:restriction base=“xs:NMTOKEN”><xs:enumeration value=“substitution”/><xs:enumeration value=“extension”/><xs:enumeration value=“restriction”/><xs:enumeration value=“list”/><xs:enumeration value=“union”/></xs:restriction></xs:simpleType><xs:group name=“simpleDerivation”><xs:choice><xs:element ref=“xs:restriction”/><xs:element ref=“xs:list”/><xs:element ref=“xs:union”/></xs:choice></xs:group><xs:simpleType name=“simpleDerivationSet”><xs:annotation><xs:documentation>#{restriction,union,list}的全部或(可能为空)子集</xs:documentation><xs:documentation>实用程序类型,不供公共使用</xs:documentation></xs:annotation><xs:union(联合)><xs:simpleType><xs:restriction base=“xs:token”><xs:enumeration value=“#all”/></xs:restriction></xs:simpleType><xs:simpleType><xs:list><xs:simpleType><xs:restriction base=“xs:derivationControl”><xs:enumeration value=“list”/><xs:enumeration value=“union”/><xs:enumeration value=“restriction”/></xs:restriction></xs:simpleType></xs:list></xs:simpleType></xs:union(联合)></xs:simpleType><xs:complexType name=“simpleType”abstract=“true”><xs:complexContent><xs:extension base=“xs:annotated”><xs:group ref=“xs:simpleDerivation”/><xs:attribute name=“final”type=“xs:simpleDerivationSet”/><xs:attribute name=“name”type=“xs:NCName”><xs:annotation><xs:documentation>可以限制为要求或禁止</xs:documentation></xs:annotation></xs:attribute></xs:extension></xs:complexContent></xs:complexType><xs:complexType name=“topLevelSimpleType”><xs:complexContent><xs:restriction base=“xs:simpleType”><xs:sequence><xs:element ref=“xs:annotation”minOccurs=“0”/><xs:group ref=“xs:simpleDerivation”/></xs:sequence><xs:attribute name=“name”type=“xs:NCName”use=“required”><xs:annotation><xs:documentation>顶层需要</xs:documentation></xs:annotation></xs:attribute><xs:anyAttribute namespace=“##other”processContents=“lax”/></xs:restriction></xs:complexContent></xs:complexType><xs:complexType name=“localSimpleType”><xs:complexContent><xs:restriction base=“xs:simpleType”><xs:sequence><xs:element ref=“xs:annotation”minOccurs=“0”/><xs:group ref=“xs:simpleDerivation”/></xs:sequence><xs:attribute name=“name”use=“probited”><xs:annotation><xs:documentation>嵌套时禁止</xs:documentation></xs:annotation></xs:attribute><xs:attribute name=“final”use=“probited”/><xs:anyAttribute namespace=“##other”processContents=“lax”/></xs:restriction></xs:complexContent></xs:complexType><xs:element name=“simpleType”type=“xs:topLevelSimpleType”id=“simpletType”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#元素-simpleType“/></xs:annotation></xs:element><xs:group name=“facets”><xs:annotation><xs:documentation>我们应该使用facet的替换组,但是这被排除在外,因为它允许用户添加他们自己的,我们还没有准备好。</xs:documentation></xs:annotation><xs:choice><xs:element ref=“xs:minExclusive”/><xs:element ref=“xs:minInclusive”/><xs:element ref=“xs:maxExclusive”/><xs:element ref=“xs:maxInclusive”/><xs:element ref=“xs:totalDigits”/><xs:element ref=“xs:fractionDigits”/><xs:element ref=“xs:length”/><xs:element ref=“xs:minLength”/><xs:element ref=“xs:maxLength”/><xs:element ref=“xs:enumeration”/><xs:element ref=“xs:whiteSpace”/><xs:element ref=“xs:pattern”/></xs:choice></xs:group><xs:group name=“simpleRestrictionModel”><xs:sequence><xs:element name=“simpleType”type=“xs:localSimpleType”minOccurs=“0”/><xs:group ref=“xs:facets”minOccurs=“0”maxOccurs=“unbounded”/></xs:sequence></xs:group><xs:element name=“restriction”id=“restriction”><xs:complexType><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#元素-限制“>基本属性和simpleType子级是相互的独占,但需要一个或另一个</xs:documentation></xs:annotation><xs:complexContent><xs:extension base=“xs:annotated”><xs:group ref=“xs:simpleRestrictionModel”/><xs:attribute name=“base”type=“xs:QName”use=“optional”/></xs:extension></xs:complexContent></xs:complexType></xs:element><xs:element name=“list”id=“list“><xs:complexType><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#元素-列表“>itemType属性和simpleType子级是相互的独占,但需要一个或另一个</xs:documentation></xs:annotation><xs:complexContent><xs:extension base=“xs:annotated”><xs:sequence><xs:element name=“simpleType”type=“xs:localSimpleType”最小发生次数=“0”/></xs:sequence><xs:attribute name=“itemType”type=“xs:QName”use=“optional”/></xs:extension></xs:complexContent></xs:complexType></xs:element><xs:element name=“union”id=“union“><xs:complexType><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#元素-工会“>memberTypes属性必须为非空或必须有至少一个simpleType子级</xs:documentation></xs:annotation><xs:complexContent><xs:extension base=“xs:annotated”><xs:sequence><xs:element name=“simpleType”type=“xs:localSimpleType”minOccurs=“0”maxOccurs=“无界”/></xs:sequence><xs:attribute name=“memberTypes”use=“optional”><xs:simpleType><xs:list itemType=“xs:QName”/></xs:simpleType></xs:attribute></xs:extension></xs:complexContent></xs:complexType></xs:element><xs:complexType name=“facet”><xs:complexContent><xs:extension base=“xs:annotated”><xs:attribute name=“value”use=“required”/><xs:attribute name=“fixed”type=“xs:boolean”default=“false”use=“可选”/></xs:extension></xs:complexContent></xs:complexType><xs:complexType name=“noFixedFacet”><xs:complexContent><xs:restriction base=“xs:facet”><xs:sequence><xs:element ref=“xs:annotation”minOccurs=“0”/></xs:sequence><xs:attribute name=“fixed”use=“probited”/><xs:anyAttribute namespace=“##other”processContents=“lax”/></xs:restriction></xs:complexContent></xs:complexType><xs:element name=“minExclusive”type=“xs:facet”id=“minExcrusive”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#元素-minExclusive“/>(最小独占)</xs:annotation></xs:element><xs:element name=“minInclusive”type=“xs:facet”id=“minInclassive”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#元素-最小非独占“/></xs:annotation></xs:element><xs:element name=“maxExclusive”type=“xs:facet”id=“maxExcrusive”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#元素-maxExclusive“/>(最大独占)</xs:annotation></xs:element><xs:element name=“maxInclusive”type=“xs:facet”id=“maxInclassive”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#元素-maxInclusive“/>(最大非独占)</xs:annotation></xs:element><xs:complexType name=“numFacet”><xs:complexContent><xs:restriction base=“xs:facet”><xs:sequence><xs:element ref=“xs:annotation”minOccurs=“0”/></xs:sequence><xs:attribute name=“value”type=“xs:nonNegativeInteger”use=“required”/><xs:anyAttribute namespace=“##other”processContents=“lax”/></xs:restriction></xs:complexContent></xs:complexType><xs:element name=“totalDigits”id=“totalDigits”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#元素-totalDigits“/></xs:annotation><xs:complexType><xs:complexContent><xs:restriction base=“xs:numFacet”><xs:sequence><xs:element ref=“xs:annotation”minOccurs=“0”/></xs:sequence><xs:attribute name=“value”type=“xs:positiveInteger”use=“required”/><xs:anyAttribute namespace=“##other”processContents=“lax”/></xs:restriction></xs:complexContent></xs:complexType></xs:element><xs:element name=“fractionDigits”type=“xs:numFacet”id=“fractionGigits”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#元素-小数位数“/></xs:annotation></xs:element><xs:element name=“length”type=“xs:numFacet”id=“longth”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#元素-长度“/></xs:annotation></xs:element><xs:element name=“minLength”type=“xs:numFacet”id=“minLeng”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#元素-最小长度“/></xs:annotation></xs:element><xs:element name=“maxLength”type=“xs:numFacet”id=“maxLeng”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#元素-最大长度“/></xs:annotation></xs:element><xs:element name=“enumeration”type=“xs:noFixedFacet”id=“enumeration”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#元素-枚举“/></xs:annotation></xs:element><xs:element name=“whiteSpace”id=“whiteSpace”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#元素-空白“/></xs:annotation><xs:complexType><xs:complexContent><xs:restriction base=“xs:facet”><xs:sequence><xs:element ref=“xs:annotation”minOccurs=“0”/></xs:sequence><xs:attribute name=“value”use=“required”><xs:simpleType><xs:restriction base=“xs:NMTOKEN”><xs:enumeration value=“preserve”/><xs:enumeration value=“replace”/><xs:enumeration value=“collapse”/></xs:restriction></xs:simpleType></xs:attribute><xs:anyAttribute namespace=“##other”processContents=“lax”/></xs:restriction></xs:complexContent></xs:complexType></xs:element><xs:element name=“pattern”id=“patterm”><xs:annotation><xs:documentation(文档)source=“http://www.w3.org/TR/xmlschema-2/#元素-模式“/></xs:annotation><xs:complexType><xs:complexContent><xs:restriction base=“xs:noFixedFacet”><xs:sequence><xs:element ref=“xs:annotation”minOccurs=“0”/></xs:sequence><xs:attribute name=“value”type=“xs:string”use=“required”/><xs:anyAttribute namespace=“##other”processContents=“lax”/></xs:restriction></xs:complexContent></xs:complexType></xs:element></xs:schema>

B数据类型定义的DTD(非规范性)

<!--XML模式的DTD:第2部分:数据类型Id:datatypes.dtd,v 1.1 2003/08/28 13:30:52 ht实验请注意,此DTD不是规范性的,甚至是决定性的。--><!--此DTD不能单独使用,它是有意的仅用于纳入XMLSchema.dtd,q.v。--><!-- 使用可选前缀-->定义所有元素名称<!实体%simpleType“%p;simpleType”><!实体%限制“%p;限制”><!实体%list“%p;list”><!实体%union“%p;union”><!实体%maxExclusive“%p;maxExclussive”><!实体%minExclusive“%p;minExclussive”><!实体%maxInclusive“%p;maxIncludive”><!实体%minInclusive“%p;minIncludive”><!实体%totalDigits“%p;totalDigits”><!实体%fractionDigits“%p;fractionDigets”><!实体%length“%p;length”><!实体%minLength“%p;minLength><!实体%maxLength“%p;maxLengment”><!ENTITY%枚举“%p;enumeration”><!实体%whiteSpace“%p;whiteSpace”><!实体%图案“%p;图案”><!--每个元素的ATTLIST的自定义实体类型。如果您的模式占优势,请定义其中一个架构架构中的anyAttribute=“##other”--><!实体%simpleTypeAttrs“”><!实体%限制属性“”><!实体%listAttrs“”><!实体%unionAttrs“”><!实体%maxExclusiveAttrs“”><!实体%minExclusiveAttrs“”><!实体%maxInclusiveAttrs“”><!实体%minInclusiveAttrs“”><!实体%totalDigitsAttrs“”><!实体%分数DigitsAttrs“”><!实体%lengthAttrs“”><!实体%minLengthAttrs“”><!实体%最大长度属性“”><!ENTITY%枚举属性“”><!实体%whiteSpaceAttrs“”><!实体%patternAttrs“”><!-- 定义一些实体作为属性供参考类型--><!实体%URIref“CDATA”><!实体%XPathExpr“CDATA”><!实体%Q名称“NMTOKEN”><!实体%QNames“NMTOKENS”><!实体%NCName“NMTOKEN”><!ENTITY%非负整数“NMTOKEN”><!ENTITY%boolean“(true|false)”><!实体%simpleDerivationSet“CDATA”><!--#从derivationChoice中提取的全部或空格分隔列表--><!--请注意,下面“facet”的使用限制较少实际上应该没有minInclusive、minExclusive、,maxInclusive、maxExclusive、totalDigits、fractionDigits,数据类型中的length、maxLength、minLength,以及Inclusive和Exclusive的最小和最大变量相互排斥。另一方面,图案和枚举可能重复。--><!实体%minBound“(%minInclusive;|%minExclusive;)”><!实体%maxBound“(%maxInclusive;|%maxExclusive;)”><!ENTITY%边界“%minBound;|%maxBound;”><!ENTITY%numeric“%totalDigits;|%fractionDigits”><!ENTITY%有序“%bounds;|%numeric;”><!未排序的实体%“”%pattern;|%enumeration;|%whiteSpace;|%length;“|%maxLength;|%最小长度;"><!ENTITY%方面“%ordered;|%ordered;”><!实体%面属性“value CDATA#必需id id#隐含“><!ENTITY%fixedAttr“fixed%boolean;#IMPLIED”>(实体%固定属性)<!实体%facetModel“(%annotation;)?”><!元素%simpleType;((%annotation;)?,(%限制;|%list;|%union;)><!ATTLIST%simpleType;名称%NCName#暗指的最终%simpleDerivationSet#暗指的id id#隐含%simpleTypeAttrs;><!-- 顶层需要名称--><!元素%限制;((%annotation;)?,(%限制1|((%simpleType;)?,(%facet;)*),(%attrDecls;))><!ATTLIST%限制;基本%Q名称#暗指的id id#隐含%限制属性;><!--base和simpleType子级互斥,需要一个。限制在simpleType和之间共享simpleContent和complexContent(在XMLSchema.xsd中)。限制1适用于后一种情况,此时正在限制复杂类型,如attrDecls。--><!元素%列表;((%annotation;)?,(%simpleType;)?)><!ATTLIST%列表;项目类型%Q名称#暗指的id id#隐含%listAttrs;><!--itemType和simpleType子级互斥,需要一个--><!ELEMENT%联合;((%annotation;)?,(%simpleType;)*)><!ATTLIST%联合;id id#隐含成员类型%QNames#暗指的%unionAttrs;><!--memberTypes或simpleType中至少有一个项需要儿童--><!元素%maxExclusive;%facetModel;><!ATTLIST%最大独占;%面属性;%固定属性;%最大排除属性;><!元素%minExclusive;%facetModel;><!ATTLIST%最小独占;%面属性;%固定属性;%最小排除属性;><!元素%maxInclusive;%facetModel;><!ATTLIST%maxInclusive;属性列表%maxInclusive;%面属性;%固定属性;%maxInclusiveAttrs;><!元素%minInclusive;%facetModel;><!ATTLIST%最小包含;%面属性;%固定属性;%minInclusiveAttrs;><!元素%totalDigits;%facetModel;><!ATTLIST%totalDigits;%面属性;%固定属性;%总数字属性;><!元素%fractionDigits;%facetModel;><!ATTLIST%分数位数;%面属性;%固定属性;%分数数字属性;><!元素%长度;%facetModel;><!ATTLIST%长度;%面属性;%固定属性;%长度属性;><!元素%最小长度;%facetModel;><!ATTLIST%最小长度;%面属性;%固定属性;%最小长度属性;><!元素%maxLength;%facetModel;><!ATTLIST%最大长度;%面属性;%固定属性;%最大长度属性;><!-- 这个可以重复--><!ELEMENT%枚举;%facetModel;><!ATTLIST%枚举;%面属性;%枚举属性;><!元素%空白;%facetModel;><!ATTLIST%空格;%面属性;%固定属性;%whiteSpaceAttrs;><!-- 这个可以重复--><!元素%图案;%facetModel;><!ATTLIST%模式;%面属性;%patternAttrs;>

C数据类型和方面

C.1基本方面

下表显示了基本方面的值对于每个·内置的·数据类型。

 资料型态命令有界的基数数字
原始的一串可数无限
布尔值有限的,有限的
浮动部分真实的有限的,有限的真实的
双重的部分真实的有限的,有限的真实的
十进制的全部的可数无限真实的
期间部分可数无限
dateTime(日期时间)部分可数无限
时间部分可数无限
日期部分可数无限
g年-月部分可数无限
g年份部分可数无限
g月日部分可数无限
g天部分可数无限
g月份部分可数无限
十六进制二进制可数无限
base64二进制可数无限
任意URI可数无限
限定名可数无限
符号可数无限
派生的normalizedString(标准化字符串)可数无限
代币可数无限
语言可数无限
IDREFS公司可数无限
实体可数无限
NMTOKEN公司可数无限
NMTOKENS公司可数无限
姓名可数无限
NC名称可数无限
身份证件可数无限
国际数据参考可数无限
实体可数无限
整数全部的可数无限真实的
非正整数全部的可数无限真实的
负整数全部的可数无限真实的
长的全部的真实的有限的,有限的真实的
整数全部的真实的有限的,有限的真实的
短的全部的真实的有限的,有限的真实的
字节全部的真实的有限的,有限的真实的
非负整数全部的可数无限真实的
unsignedLong(无符号长)全部的真实的有限的,有限的真实的
未签名Int全部的真实的有限的,有限的真实的
无符号短全部的真实的有限的,有限的真实的
无符号字节全部的真实的有限的,有限的真实的
正整数全部的可数无限真实的

D ISO 8601日期和时间格式

下一小节D.1 ISO 8601惯例

这个·原始的·数据类型期间,dateTime(日期时间),时间,日期,g年-月,g月日,g天,g月份g年份使用受启发的词汇格式【ISO 8601】.以下【ISO 8601】,的词汇形式这些数据类型只能包含字符#20到#7F。本附录提供了ISO的更多详细信息格式化并讨论数据类型与它们的一些偏差在本规范中定义。

【ISO 8601】“指定序言公历和时间以及时间段的表示”。序言式的格里高利历包括1582年之前的日期用作教会日历)。应该指出规范并没有涵盖【ISO 8601】也不支持所有词汇这些类型的数据的表示。

【ISO 8601】词汇格式用“图片”描述其中使用字符代替十进制数字。允许的十进制数字为(#x30-#x39)。对于基本数据类型dateTime(日期时间),时间,日期,g年-月,g月日,g天,g月份g年份.这些字符具有以下含义:

  • C——表示千和百分量中使用的数字,时间元素“年”的“世纪”成分。法律价值是从0到9。
  • Y——表示时间的十位数和单位分量元素“年”。合法值为0到9。
  • M——表示时间元素“月”中使用的数字。这两个MM格式的数字的值可以是1到12。
  • D——表示时间元素“day”中使用的数字。两位数如果月份值等于2,DD格式中的值可以是1到28,1到29,如果月份值等于2并且年份是闰年,则为1到30如果月份值等于4、6、9或11,如果月份值等于1到31等于1、3、5、7、8、10或12。
  • h——表示时间元素“小时”中使用的数字。两位数hh格式中的值可以从0到24如果小时元素的值为24,则分钟的值元素,而seconds元素必须是00和00。
  • m——表示时间元素“分钟”中使用的数字。两位数mm格式中的值可以是0到59。
  • s——表示时间元素“秒”中使用的数字。这两个ss格式的数字的值可以是0到60。在格式中在本规范中描述了秒的整数·可以·后跟十进制秒,精确到任意级别。这在图中用“ss.sss”表示。值大于等于60表示仅在闰秒的情况下允许。

    严格来说,值为60或以上是不明智的,除非月份和日期可以代表3月31日、6月30日、9月30日或12月31日UTC格式.因为闰秒被加减为一天的最后一秒在UTC时间,长(或短)分钟可能发生在本地的其他时间时间。在闰秒与不合适的月份一起使用的情况下和日期,以及任何小数秒,应视为已添加或从接下来的一分钟中减去。

对于由上述字符表示的所有信息项,前导如有指示,则需要零。

除上述内容外,某些字符还用作指示符并以词法格式出现。

以词法格式期间以下内容字符也用作指示符,在词汇格式:

  • P——用作数据元素之前的持续时间指示符表示给定的持续时间。
  • Y——表示一段时间内的年数。
  • M——表示一段时间内的月数或分钟数。
  • D——表示持续时间中的天数。
  • H——表示一段时间内的小时数。
  • S——跟随一段时间内的秒数。

的值年、月、日、小时和分钟组件不受限制,但允许任意整数。类似地,Seconds组件的值允许任意小数。因此期间以及从中派生的数据类型不遵循替代方案§5.5.3.2.1的格式【ISO 8601】.

上一小节 下一小节D.2截断和精简格式

【ISO 8601】支持多种“截断”格式例如,特定格式左侧的某些字符,这个世纪,可以省略。截断格式为,单位为通用,不允许用于本规范中定义的数据类型有三个例外。这个时间数据类型使用的截断格式dateTime(日期时间)它表示每天重复出现的一个瞬间。类似地g月日g天数据类型使用左路格式日期.数据类型g月份对使用左右截断格式日期.

【ISO 8601】还支持各种“简化”或右转某些字符位于特定格式右侧的格式,例如时间规格,可以省略。右截断格式也为,in概述,不允许用于本规范中定义的数据类型但以下情况除外:的右截断表示dateTime(日期时间)用作的词汇表示日期,g月份,g年份.

E向dateTimes添加持续时间

给定一个dateTime(日期时间)S和a期间D、 这个附录指定了如何计算dateTime(日期时间)E,其中E是结束时间段,开始时间为S,持续时间为D,即e=S+D例如,使用计算来确定dateTime(日期时间)在特定时间段内。本附录还介绍了添加的期间s到数据类型日期,g年-月,g年份,g天g月份,可以作为一组dateTime(日期时间)第条。在这种情况下,添加到第一个或开始dateTime(日期时间)在集合中。

这是对这个过程的逻辑解释。实际实现可以自由优化,只要它们产生相同的结果结果。计算使用符号S[年]表示年份字段S,S[month]表示月份字段,依此类推。它还取决于以下功能:

31M=1月、3月、5月、7月、8月、10月或十二月
30M=四月、六月、九月或十一月
29M=二月AND(模(Y,400)=0 OR(模(Y,100)!=0)与模(Y,4)=0)
28否则

下一小节E.1算法

本质上,此计算相当于将D分为<年、月>和<day,hour,minute,second>字段。<年、月>添加到S中。如果当天超出范围,则为被钉住的在范围内。因此,四月31日变成4月30日。然后添加<日、时、分、秒>。这个后面的添加可能会导致年份和月份发生变化。

跳跃秒由计算处理,将其视为溢出。基本上,值为60S中的秒被视为60秒的持续时间加在S中(带有零秒字段)。所有计算然后每分钟使用60秒。

因此,在任何dateTime中添加PT1M或PT60S将始终产生相同的结果。这是加法的一个特殊定义其设计与常见做法相匹配,而且最重要的是保持稳定随着时间的推移。

试图考虑跳跃秒的定义需要不断更新,无法预测未来的结果实现的添加。决定在UTC中引入闰秒[国际地球自转服务社].它们使周期性关于何时发布的公告闰秒是要加上去的,但这在一年内还不知道前进。有关闰秒的详细信息,请参阅[美国海军天文台时间服务部].

以下是精确的规格。必须遵循以下步骤相同的顺序。如果未指定D中的字段,则将其视为零。如果未指定S中的字段,则在计算中将其视为然而,经过计算,它是该字段中允许的最小值结束时,删除E中的相应字段(设置为未指定)。

  • 月份(可在下文中额外修改)
    • 温度:=S[月]+D[月]
    • E[月]:=模数(温度,1,13)
    • 进位:=商(温度,1,13)
  • 年份(可在下文中进行额外修改)
    • E[年]:=S[年]+D[年]+进位
  • 区域
    • E[区域]:=S[区域]
    • 温度:=S[秒]+D[秒]
    • E[秒]:=模(温度,60)
    • 进位:=商(温度,60)
  • 会议记录
    • 温度:=S[分钟]+D[分钟]+进位
    • E[分钟]:=模数(温度,60)
    • 进位:=商(温度,60)
  • 小时
    • 温度:=S[小时]+D[小时]+进位
    • E[小时]:=模数(温度,24)
    • 进位:=商(温度,24)
    • 如果S[day]>maximumDayInMonthFor(E[年],E[月])
      • tempDays:=maximumDayInMonthFor(E[年],E[月])
    • 否则,如果S[天]<1
      • 临时天数:=1
    • 其他的
      • tempDays:=S[天]
    • E[day]:=tempDays+D[day]+进位
    • 启动回路
      • 国际单项体育联合会E[日]<1
        • E[日]:=E[日]+最大DayInMonthFor(E[年],E[月]-1)
        • 进位:=-1
      • ELSE IF公司E[天]>月最大天数(E[年],E[月])
        • E[日]:=E[日]-最大DayInMonthFor(E[年],E[月])
        • 进位:=1
      • ELSE出口回路
      • 温度:=E[月]+进位
      • E[月]:=模数(温度,1,13)
      • E[年]:=E[年]+f商(温度,1,13)
      • 转到开始循环

示例:

dateTime(日期时间)期间结果
2000-01-12T12:13:14Z第3天第5天第7天第10天第3秒2001-04-17T19:23:17.3Z
2000-01-第3页1999-10
2000-01-12PT33H型2000-01-13

F正则表达式

A类·正则表达式· R(右)是一个序列表示a的字符一组字符串 左(右).用于约束·词法空间·,一个正则表达式 R(右)断言只有字符串在里面左(右)是该类型值的有效文本。

注:与一些流行的正则表达式语言(包括由Perl和标准Unix实用程序定义),常规此处定义的表达式语言隐式锚定所有正则表达式头部和尾部的表达,作为正则表达式·图案·是匹配整个文字。例如,数据类型·派生的·一串这样的所有值都必须以字符开头A类(#x41)并以字符结尾Z轴(#x5a)的定义如下:
<simpleType name='myString'><限制基=“字符串”><图案值='A.*Z'/></限制></simpleType>
在不隐式锚定在头和尾的正则表达式语言中,通常将等价的正则表达式编写为:

   ^答*Z$

其中“^”在头部锚定图案,“$”在尾部锚定图案。

在一些罕见的情况下,需要非锚定匹配,包括.*在正则表达式的开头和结尾将达到预期效果。例如,数据类型·派生的·所有值必须至少包含3个连续的A类(#x41像素)值中某处的字符可以定义如下:

<simpleType name='myString'><限制基=“字符串”><模式值='.*AAA.*'/></限制></simpleType>

[定义:]A类正则表达式由零或更多组成·分支·es,由分隔|字符。

正则表达式
[1]   注册Exp   ::=    分支( '|'分支)*

对于所有人·分支·S公司,以及所有人·正则表达式·T型,有效·正则表达式·R(右)是:表示字符串集左(右)包含:
(空字符串)只包含空字符串的集合
S公司中的所有字符串L(S)
S公司|T型中的所有字符串L(S)中的所有字符串L(T)

[定义:]A类分支包含零或更多··s、 连接在一起。

分行
[2]   分支   ::=   *

对于所有人··S公司,以及所有人·分支·T型,有效·分支·R(右)是:表示字符串集左(右)包含:
S公司中的所有字符串L(S)
S公司T型所有字符串标准具有在里面L(S)t吨在里面L(T)

[定义:]A类是一个·原子·,后面可能跟一个·量词·.

工件
[3]      ::=   原子 量词?

对于所有人·原子·S公司和非负整数n个,这样的话n<=米,有效··R(右)是:表示字符串集左(右)包含:
S公司中的所有字符串L(S)
S公司?空字符串和中的所有字符串L(S).
S公司*中的所有字符串L(S?)和所有字符串标准具有在里面L(S*)t吨在里面L(S).(所有串联L(S)中的零个或多个字符串)
S公司+所有字符串标准具有在里面L(S)t吨在里面L(S*).(所有串联来自L(S)的一个或多个字符串)
S公司{n,m}所有字符串标准具有在里面L(S)t吨在里面L(S{n-1,m-1}).(全部来自L(S)的至少n个、最多m个字符串的序列)
S公司{无}中的所有字符串L(S{n,n}).(全部L(S)中n个字符串的序列)
S公司{n,}L(S)中的所有字符串{n} S公司*)(全部来自L(S)的至少n个字符串的序列)
S公司{0,m}所有字符串标准具有在里面L(S?)t吨在里面L(S{0,m-1}).(全部序列最多为m,字符串来自L(S))
S公司{0,0}仅包含空字符串的集合

注:Perl编程语言中的正则表达式语言[波尔]不包括形式的量词S{,m},因为它在逻辑上等价于S{0,m}.因此,我们将这种逻辑可能性排除在常规之外本规范定义的表达式语言。

[定义:]A类量词是其中之一?,*,+,{n,m}{n,},具有以下含义定义见上表。

Quantifer公司
[4]   量词   ::=   [?*+] | ( '{''}' )
[5]      ::=   数量范围|数量最小值|数量精确
[6]   数量范围   ::=   数量精确','数量精确
[7]   数量最小值   ::=   数量精确','
[8]   数量精确   ::=   [0-9]+

[定义:]原子是一个·正常字符·,一个·字符类·,或带括号的·正则表达式·.

原子
[9]   原子   ::=   烧焦|charClass(字符类)| ( '('注册Exp')' )

对于所有人·正常字符·c,·字符类·C类、和·正则表达式·S公司,有效·原子·R(右)是:表示字符串集左(右)包含:
c单个字符串仅包含c
C类中的所有字符串L(C)
(S公司)中的所有字符串L(S)

[定义:]A类元字符是其中之一.,\,?,*,+,{,} (,),[].这些字符在·正则表达式·第页,但可以逃脱·原子·s表示仅包含自身的字符串集,即转义字符串·元字符·表现得像·正常字符·.

[定义:]A类正常字符是任何非元字符。·正则表达式·s、 正常字符是表示仅包含其自身的字符串的单个集的atom。

普通字符
[10]   烧焦   ::=   [^.\?*+()|#x5B#x5D]

请注意·正常字符·可以表示为本身,或与性格参考.

F.1字符类

[定义:]A类字符类是一个·原子· R(右)标识了字符集 C(R).字符串集左(右)用a表示字符类R(右)包含一个单字符字符串"c“对于每个字符c在里面C(R).

字符类
[11]   charClass(字符类)   ::=    字符类别esc|字符类表达式|通配符Esc

字符类是·字符类转义·或a·字符类表达式·.

[定义:]A类字符类表达式是一个·字符组·包围通过[]字符。对于所有字符G公司, [G公司]是有效的字符类表达,识别字符集C类([G公司]) =C类(G公司).

字符类表达式
[12]   字符类表达式   ::=   '['charGroup(字符组)']'

[定义:]A类字符组是一个·积极字符组·,·否定字符组·,或a·字符类减法·.

字符组
[13]   charGroup(字符组)   ::=    posChar组|negCharGroup(否定字符组)|charClassSub(字符分类子)

[定义:]A类积极字符组由一个或多个·字符范围·s或·字符类转义·s、 串联的一起。A类积极字符组标识一组包含所有已标识集合中所有字符的字符通过其组成范围或逃逸。

积极字符组
[14]   posChar组   ::=   (charRange(字符范围)|字符类别esc)+

对于所有人·字符范围·R(右),全部·字符类转义·E类,以及所有·积极字符组·P(P),有效·积极字符组·G公司是:识别字符集C(G)包含:
R(右)中的所有字符C(R).
E类中的所有字符C(E)类.
RP公司中的所有字符C(R)以及所有中的个字符C(P).
欧洲药典中的所有字符C(E)类以及所有中的个字符C(P).

[定义:]A类否定字符组是一个·积极字符组·前面是^字符。对于所有人·积极字符组·P(P), ^P(P)是有效的否定字符组、和C(^P)包含以下所有XML字符在里面C(P).

否定字符组
[15]   negCharGroup(否定字符组)   ::=   '^'posChar组

[定义:]A类字符类减法是一个·字符类表达式·从中减去·积极字符组··否定字符组·,使用-字符。

字符类减法
[16]   charClassSub(字符分类子)   ::=   (posChar组|negCharGroup(否定字符组)) '-'字符类表达式

对于任何·积极字符组··否定字符组· G公司、以及任何·字符类表达式· C类,G-C公司是有效的·字符类减法·,标识中的所有字符集C(G)也不在C(C).

[定义:]A类字符范围 R(右)标识一组字符C(R)包含具有UCS的所有XML字符指定范围内的代码点。

字符范围
[17]   charRange(字符范围)   ::=    se范围|XmlCharInc短划线
[18]   se范围   ::=   字符或Esc'-'字符或Esc
[20]   字符或Esc   ::=   XML字符|单字符Esc
[21]   XML字符   ::=   [^\#x2D#x5B#x5D]
[22]   XmlCharInc短划线   ::=   [^\#x5B#x5D]

单个XML字符是·字符范围·确定只包含自身的字符集。所有XML字符都有效字符范围,以下情况除外:

注:的语法·字符范围·作为上面给出的是模糊的,但上面的第二个和第三个项目符号共同消除歧义。

A类·字符范围· ·可以·也要写在表单中南欧,标识包含所有XML字符的集UCS代码点大于或等于代码点属于,但不大于的代码点e(电子).

南欧是有效的字符范围iff:

注:的代码点·单字符转义·是的代码点它标识的字符集中的单个字符。

F.1.1字符类转义

[定义:]A类字符类转义是一个简短的字符序列其标识预定义的字符类。有效字符逃课是·单字符转义·s、 ·多字符转义·s、 和·类别转义·s(包括这个·闭塞逃生·s) ●●●●。

字符类转义
[23]   字符类别esc   ::=   (单字符Esc|多字符Esc|猫Esc|完成Esc)

[定义:]A类单字符转义标识仅包含一个字符--通常是因为这个字符很难或无法直接写入·正则表达式·.

单字符转义
[24]   单字符Esc   ::=   '\'[nrt\|.?*+(){}#x2D#x5B#x5D#x5 E]

有效的·单字符转义·是指:识别字符集C(R)包含:
\n个换行符(#xA)
\第页返回字符(#xD)
\t吨制表符(#x9)
\\\
\||
\..
\--
\^^
\??
\**
\++
\{{
\}}
\((
\))
\[[
\]]

[定义:] [统一码数据库]指定可能的数量“常规类别”属性的值并提供从代码点到特定字符属性的映射。包含所有具有属性的字符的集合X(X),可以用类别转义 \p{X}.此集合的补码用类别转义 \P{X}.([\P{X}]=[^\p{X}]).

类别退出
[25]   猫Esc   ::=   “\p{”字符属性'}'
[26]   完成Esc   ::=   “\P{”字符属性'}'
[27]   字符属性   ::=   IsCategory(Is类别)|IsBlock(IsBlock)
注: [统一码数据库]以未来修订为准。例如可能会更新从代码点到字符属性的映射。全部·最小一致性·处理器·必须·支持的版本中定义的字符属性[统一码数据库]这在本规范成为W3C时是最新的建议。然而,鼓励实施者支持任何未来版本中定义的字符属性。

下表指定了“General Category”属性。

类别财产含义
信件L(左)所有信件
大写
陆上通信线小写字母
书信电报标题酶
Lm(磅)修改器
Lo(低)其他
 
标志M(M)所有标记
无间隔
麦克间距合并
封闭
 
数字N个所有数字
十进制数字
其他
 
标点符号P(P)所有标点
个人连接器
短跑
Ps公司打开
体育课关闭
圆周率初始报价(根据使用情况,可能表现为Ps或Pe)
功率因数最终报价(根据使用情况,可能表现为Ps或Pe)
Po公司其他
 
分离器Z轴所有分隔符
Z轴空间
Zl公司线
Zp公司段落
 
符号S公司所有符号
数学
Sc公司货币
Sk公司修改器
所以其他
 
其他C类所有其他
复写的副本控制
囊性纤维变性格式
有限公司私人使用
抄送未指定的
类别
[28]   IsCategory(Is类别)   ::=    信件|标志|数字|标点符号|分离器|符号|其他
[29]   信件   ::=   “L”[ultmo]?
[30]   标志   ::=   “M”[nce]?
[31]   数字   ::=   'N'[dlo]?
[32]   标点符号   ::=   “P”[cdseinfo]?
[33]   分离器   ::=   “Z”[slp]?
[34]   符号   ::=   “S”[mcko]?
[35]   其他   ::=   “C”[cfon]?
注:上述属性不包括属性。这个属性标识“代理”字符发生在XML实例文档的“字符抽象”级别操作。

[定义:] [统一码数据库]将代码点分组为多个块例如基本拉丁语(即ASCII)、拉丁语-1补遗、朝鲜文Jamo、,CJK兼容性等。包含所有具有块名的字符的集合X(X)(去掉所有空白),可以用闭塞逃生 \p{IsX}.此集合的补码用闭塞逃生 \P{以色列}.([\P{IsX}]=[^\p{IsX}]).

街区逃生
[36]   IsBlock(IsBlock)   ::=   “是”[a-zA-Z0-9#x2D]+

下表指定了可识别的块名(有关更多信息信息,请参阅中的“Blocks.txt”文件[统一码数据库]).

开始代码结束代码块名称 开始代码结束代码块名称
#x0000个#x007英尺基础拉丁语 #x0080个#x00英尺拉丁语1补语
#x0100个#x017华氏度拉丁语扩展-A #x0180个#x024华氏度拉丁语扩展-B
#x0250个#x2英尺IPA扩展 #x02B0个#x02英尺间距修饰符字母
#x0300个#x036华氏度组合Diacritical标记 #x0370个#x03华氏度希腊人
#x0400个#x04英尺西里尔文 #x0530个#x058英尺亚美尼亚语
#x0590个#x05英尺希伯来语 #x0600个#x06英尺阿拉伯语
#x0700个#x074英尺叙利亚语 #x0780个#x07立方英尺塔安那文
#x0900个#x097英尺梵文 #x0980型#x09英尺孟加拉语
#x0A00#x0A7F型格鲁姆基语 #x0A80个#x0楼面竣工标高古吉拉特邦
#x0B00个#x0B7F型奥里亚语 #x0B80个#x0立方英尺泰米尔语
#x0C00型#x0C7F型泰卢固语 #x0C80个#x0CFF(立方英尺)卡纳达语
#x0D00个#x0D7F型马拉雅拉姆语 #x0D80像素#x0DFF(x万DFF)僧伽罗语
#x0E00个#x0E7F个泰国人 #x0E80个#x0EFF(效率)老挝语
#x0F00个#x0FFF藏语 #x1000像素#x109英尺缅甸
#×10A0#x10英尺格鲁吉亚语 #x1100个#x11英尺汉古尔贾莫
#x1200个#x137英尺埃塞俄比亚语 #x13A0像素#x13英尺切罗基语
#x1400个#x167英尺加拿大原住民印第安方言领音 #x1680像素#x169英尺奥格姆
#x16A0像素#x16英尺北欧古文 #x1780毫米#x17英尺高棉语
#x1800像素#x18自动对焦蒙古族 #x1E00个#x1效率拉丁语扩展附加
#x1F00个#x1自由流希腊语扩展 #x2000像素#x206英尺通用标点符号
#x2070像素#x209英尺上标和下标 #x20A0像素#20立方英尺货币符号
#x20D0像素#x20平方英尺符号的组合标记 #x2100像素#x214英尺类字母符号
#x2150像素#x218英尺数字形式 #x2190像素#x21英尺箭头
#x2200像素#x22英尺数学运算符 #x2300像素#x23平方英尺杂项技术
#x2400像素#x243英尺控制图片 #x2440像素#x245英尺光学字符识别
#x2460像素#x24平方英尺随附字母数字 #x2500像素#x257英尺方框绘图
#x2580像素#x259英尺块元素 #x25A0毫米#x25平方英尺几何图形
#x2600像素#x26平方英尺杂项符号 #x2700像素#x27立方英尺丁巴茨
#x2800像素#x28平方英尺Braille图案 #x2E80像素#x2EFF(x2EFF)CJKRadicals补充
#x2F00像素#x2英尺/平方英尺康熙字根 #x2FF0像素#x2英尺/平方英尺象形字描述字符
#x3000像素#x303英尺CJK符号和标点符号 #x3040像素#x309英尺平假名
#x30A0像素#x30平方英尺片假名 #x3100像素#x312英尺汉语拼音
#x3130像素#x318华氏度汉古尔兼容性Jamo #x3190像素#x319华氏度寛文
#x31A0像素#x31亿立方英尺扩展注音 #x3200个#x32英尺随附CJK字母和月份
#x3300像素#x33平方英尺CJK兼容性 #x3400像素#4个DB5中日韩统一象形文字扩展名A
#x4E00像素#x9法国队中日韩汉字 #xA000个#xA48F型彝语教学大纲
#xA490型#xA4CF型Yi字根 #xAC00型#xD7A3型汉古尔语教学大纲
 
 #xE000个#xF8英尺私人使用
#xF900像素#xFAFF公司CJK兼容性象形文字 #xFB00个#xFB4F型按字母顺序排列的演示表单
#xFB50像素#xFDFF公司阿拉伯展示形式-A #xFE20型#xFE2F型组合半标记
#xFE30型#xFE4F型CJK兼容性表单 #xFE50型#xFE6F型小型形式变体
#xFE70型#xFEFE公司阿拉伯语表达形式-B #xFEFF公司#xFEFF公司特价商品
#xFF00个#xFFEF公司半宽和全宽窗体 #xFFF0型#xFFFD公司特价商品
注:上述区块不包括高级代理,低代名词高级私有用户代理阻碍。这些块标识“代理”字符发生在XML实例文档的“字符抽象”级别操作。
注: [统一码数据库]以未来修订为准。例如将代码点分组为块可能会被更新。全部·最小一致性·处理器·必须·支持的版本中定义的块[统一码数据库]这在本规范成为W3C时是最新的建议。然而,鼓励实施者支持任何未来版本的Unicode标准中定义的块。

例如·闭塞逃生·用于识别ASCII字符是\p{IsBasicLatin}.

[定义:]A类多字符转义提供了一种简单的识别方法常用的字符集:

多字符转义
[37]   多字符Esc   ::=   '\'[sSiIcCdDwW]
[公元37a年]通配符Esc   ::=   '.'

字符序列等价物·字符类·
.[^\n\r]
\秒[#x20\t\n\r]
\S公司[^\s]
\我初始名称字符集·比赛·由编辑信件| '_' | ':'
\我[^\i]
\c(c)名称字符集,这些·比赛·由编辑NameChar(名称字符)
\C类[^\c]
\d日\p{Nd}
\D类[^\d]
\w个[#x0000-#x10FFFF]-[\p{p}\p{Z}\p}](除“标点符号”之外的所有字符,“分隔符”和“其他”字符)
\W公司[^\w]

注:这个·正则表达式·此处定义的语言不试图通过UCS字符序列。特别是,它不容易提供用于匹配基本字符序列和组合标记。该语言旨在支持中定义的“级别1”功能[Unicode正则表达式指南]。希望此版本的未来版本该规范将为“2级”功能提供支持。

G词汇表(非规范性)

下面的列表是为了读者的利益而编写的文档:它将出现在上面的文档。

原子的
原子数据类型是指那些具有本规范认为的值的是不可分割的。
基本类型
数据类型,即·派生的·通过限制是根据现有数据类型定义的,称为基本类型.基本类型s可以是·原始的··派生的·.
有界的
数据类型为有界的如果是·价值空间·有一个·包含上限·或者·排他上限·和一个·包含下限·一个·排他下限·.
内置的
内置数据类型是指本规范中定义的数据类型,也可以是·原始的··派生的·;
规范词汇表征
A类规范词汇表征是有效文本集中的一组文本对于这样的数据类型,文本之间存在一对一映射在中规范词汇表征中的值·价值空间·.
基数
·价值空间·与之相关联的概念是基数.一些·价值空间·是有限的,一些是可数无限的,而另一些则可以可以想象是无限的(尽管没有·价值空间·本规范定义为不可数无限)。数据类型为据说具有其基数·价值空间·.
可比的
否则他们就是可比的.
符合模式的XML表示
接受XML文档形式的模式的处理器在里面简单类型定义模式组件的XML表示(§4.1.2)(以及其他相关部分数据类型组件(§4))据说还可以提供符合模式的XML表示,·必须·,在处理架构文档时,完全和正确执行所有·模式表示约束·在本规范中,以及·必须·严格遵守中的规范简单类型定义模式组件的XML表示(§4.1.2)(以及其他相关部分数据类型组件(§4))用于映射这样的内容文件到模式组件用于验证。
约束方面
A类约束方面是可选属性,可以是应用于数据类型以约束其·价值空间·.
对模式的约束
对模式的约束
数据类型
在本规范中,数据类型是一个三元组,由a) 一组不同的值,称为its·价值空间·,b) 一组词汇表示,称为its·词法空间·和c)一套·方面·表征·价值空间·,单个值或词汇项。
派生的
派生数据类型是根据其他数据类型定义的数据类型。
错误
错误
排他下限
A值在中·命令· ·价值空间· L(左)据说是一个排他下限·价值空间· V(V)(其中V(V)是的子集L(左))如果是所有人v(v)在里面V(V),<v(v).
排他上限
A值u个在中·命令· ·价值空间· U型据说是一个排他上限·价值空间· V(V)(其中V(V)是的子集U型)如果是所有人v(v)在里面V(V),u个>v(v).
方面
A类方面是单身定义的方面·价值空间·.概述一般来说,每个方面都是·价值空间·沿着独立的轴或尺寸。
为了兼容性
为了兼容性
基本面
A类基本面是一个抽象属性用于对·价值空间·.
包含下限
A值在中·命令· ·价值空间· L(左)据说是一个包含下限·价值空间· V(V)(其中V(V)是的子集L(左))如果是所有人v(v)在里面V(V),<=v(v).
包含上限
A值u个在中·命令· ·价值空间· U型据说是一个包含上限·价值空间· V(V)(其中V(V)是的子集U型)如果是所有人v(v)在里面V(V),u个>=v(v).
无与伦比的
什么时候?a<>b,b无与伦比的,
itemType(项目类型)
这个·原子的··联盟·参与定义的数据类型·列表·数据类型被称为itemType(项目类型)·列表·数据类型。
词法空间
A类词法空间该集合是否有效字面量对于数据类型。
列表
列表数据类型是那些具有值的数据类型,每个值都由的有限长(可能为空)值序列·原子的·数据类型。
比赛
比赛
可以
可以
成员类型
参与a的定义·联盟·数据类型称为成员类型·联盟·数据类型。
最小一致性
最低合规性处理器·必须·完全正确地实施·对模式的约束··验证规则·.
必须
必须
非数字
其值为的数据类型不是·数字·据说是非数字.
数字
数据类型称为数字如果它的值是概念上的量(在某些数学数字系统)。
顺序关系
订单关系在上·价值空间·是一种数学关系,它将·总订单·或a·部分订单·的成员·价值空间·.
命令
A类·价值空间·,因此数据类型称为命令如果存在·顺序关系·为此定义·价值空间·.
部分订单
A类部分订单是一个·顺序关系·那就是不灵活的,不对称可传递的.
原始的
基本体数据类型是指那些没有根据其他数据类型定义的数据类型;它们存在从头算.
正则表达式
A类正则表达式由零或更多组成·分支·es,由分隔|字符。
限制
数据类型称为·派生的·通过限制来自其他数据类型当值为零或更多时·约束方面·指定了s这有助于限制其·价值空间·和/或其·词法空间·到其子集·基本类型·.
模式表示约束
模式表示约束
总订单
A类总订单是一个·部分订单·这样就不会b是这样吗a<>b.
联盟
工会数据类型是指那些·价值空间·s和·词法空间·s是这个·价值空间·s和·词法空间·一个或多个其他数据类型的。
用户衍生的
用户派生的数据类型是·派生的·由单个模式设计器定义的数据类型。
验证规则
验证规则
价值空间
A类价值空间是给定数据类型的值集。中的每个值价值空间数据类型的其中的一个或多个文字·词法空间·.

H参考文献

下一小节H.1规范

克林格,WD(1990)
威廉·德·克林格。如何准确读取浮点数字。编程语言设计和实施,第92-101页。网址:ftp://ftp.ccs.neu.edu/pub/people/will/howtoread.ps
IEEE 754-1985标准
电气与电子工程师协会。二进制浮点运算IEEE标准。请参见http://standards.ieee.org/reading/iee/std_public/description/busarch/754-1985_desc.html
XML中的命名空间
万维网联盟。XML中的命名空间。网址:http://www.w3.org/TR/1999/REC-xml-names-19990114/
RFC 1766号文件
H.Alvestrand编辑。RFC 1766:语言识别标签1995年。网址:http://www.ietf.org/rfc/rfc1766.txt
RFC 2045号文件
N.Freed和N.Borenstein。RFC 2045:多用途互联网邮件扩展(MIME)第一部分:互联网消息体的格式. 1996. 网址:http://www.ietf.org/rfc/rfc2045.txt
副本请求2396
Tim Berners-Lee等人。RFC 2396:统一资源标识符(URI):通用语法。. 1998. 网址:http://www.ietf.org/rfc/rfc2396.txt
RFC 2732号文件
副本请求2732:URL中文字IPv6地址的格式. 1999.网址:http://www.ietf.org/rfc/rfc2732.txt
副本请求3066
H.Alvestrand编辑。RFC 3066:语言识别标签1995年。网址:http://www.ietf.org/rfc/rfc3066.txt
Unicode数据库
Unicode联盟。Unicode字符数据库.网址:http://www.unicode.org/Public/3.1-Update/UnicodeCharacterDatabase-3.1.0.html
XML 1.0(第二版)
万维网联盟。可扩展标记语言(XML)1.0,第二版版本。网址:http://www.w3.org/TR/2000/WD-xml-2e-20000814
XML基础
万维网联盟。XML基础。网址:http://www.w3.org/TR/2001/REC-xmlbase-20010627/
XML链接语言
万维网联盟。XML链接语言(XLink)。网址:http://www.w3.org/TR/2001/REC-xlink-20010627/。注意:只有中定义的URI引用转义过程规范性引用第5.4节。
XML模式第1部分:结构
XML模式第1部分:结构。网址:http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/structures.html
XML架构要求
万维网联盟。XML架构要求。网址:http://www.w3.org/TR/1999/NOTE-xml-schema-req-19990215

上一小节 H.2非正常

角色模型
Martin J.Dürst和François Yergeau编辑。万维网的字符模型。万维网联盟工作草案。2001网址:http://www.w3.org/TR/2001/WD-charmond-20010126/
同性恋,DM(1990)
大卫·M·盖伊。正确舍入的二元-十进制和十进制-二进制转换。AT&T贝尔实验室数字分析手稿90-101990年11月。网址:http://cm.bell-labs.com/cm/cs/doc/90/4-10.ps.gz
HTML 4.01
万维网联盟。超文本标记语言,4.01版。网址:http://www.w3.org/TR/1999/REC-html401-19991224/
IETF互联网草案:IRI
M.Dürst和M.Suignard.国际化资源标识符2002.网址:http://www.w3.org/International/iri-edit/draft-duerst-iri-04.txt
国际地球自转服务
国际地球自转服务(IERS)。请参见http://maia.usno.navy.mil
ISO 11404标准
ISO(国际标准化组织)。语言相关数据类型。请参见网址:http://www.iso.ch/cae/d19346.html
ISO 8601标准
ISO(国际标准化组织)。日期和时间的表示,1988-06-15。
ISO 8601:1998修订草案
ISO(国际标准化组织)。日期和时间的表示,1998年修订草案。
ISO 8601:2000第二版
ISO(国际标准化组织)。日期和时间的表示,第二版,2000年12月15日。
波尔
Perl编程语言。请参见http://www.perl.com/pub/language/info/software.html
资源描述框架模式
万维网联盟。RDF模式规范。网址:http://www.w3.org/TR/2000/CR-rdf-schema-200000327/
红宝石
万维网联盟。Ruby注释。网址:http://www.w3.org/TR/2001/WD-ruby-20010216/
SQL语言
ISO(国际标准化组织)。ISO/IEC标准9075-2:1999,信息技术——数据库语言---SQL---第2部分:基础(SQL/Foundation).[日内瓦]:国际标准化组织,1999年。请参见网址:http://www.iso.ch/cate/d26197.html
美国海军天文台授时部
关于跳跃秒的信息网址:http://tycho.usno.navy.mil/leapse.990505.html
Unicode正则表达式准则
马克·戴维斯。Unicode正则表达式准则, 1988.网址:http://www.unicode.org/unicode/reports/tr18/
XML模式语言:第0部分入门
万维网联盟。XML模式语言:第0部分入门。网址:http://www.w3.org/TR/2004/REC-xmlschema-0-20041028/primer.html
XSL(XSL)
万维网联盟。可扩展样式表语言(XSL)。网址:http://www.w3.org/TR/2000/CR-xsl-20001121/

I确认(非规范性)

以下内容为本规范第一版提供了材料:

Asir S.Vedamuthu,网络方法公司
马克·戴维斯,IBM

联合编辑Ashok Malhotra于1999年3月至2001年2月得到IBM的支持。从2001年2月份到2004年5月Microsoft支持。

编辑们感谢XML模式工作组成员、其他W3C工作组成员以及其他领域的行业专家直接或间接参与以下过程或内容的论坛创建此文档。工作组特别感谢LotusDevelopment Corp.和IBM提供电话会议设施。

当时的第一版XML模式工作组成员是:

XML模式工作组在其工作中受益于一些人的参与和贡献工作组成员,包括尤其是下面提到的那些。所给的附属关系是当前的他们与工作组合作的时间。

上述清单适用于第一版。在第二版的工作完成时,工作组成员为:

我们悲伤地注意到马里奥·杰克尔的意外死亡本文件完成后不久。除了上面提到的那些开发期间工作组成员第二版: