属性的默认值和固定值
属性可拥有指定的默认值或固定值。
当没有其他的值被规定时,默认值就会自动分配给元素。
在下面的例子中,缺省值是 "EN":
<xs:attribute name="lang" type="xs:string" default="EN"/>
固定值同样会自动分配给元素,并且您无法规定另外的值。
在下面的例子中,固定值是 "EN":
<xs:attribute name="lang" type="xs:string" fixed="EN"/>
对值的限定
下面的例子定义了带有一个限定且名为 "age" 的元素。age 的值不能低于 0 或者高于 120:
<xs:element name="age">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="120"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
对一组值的限定
如需把 XML 元素的内容限制为一组可接受的值,我们要使用枚举约束(enumeration constraint)。
下面的例子定义了带有一个限定的名为 "car" 的元素。可接受的值只有:Audi, Golf, BMW:
<xs:element name="car">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Audi"/>
<xs:enumeration value="Golf"/>
<xs:enumeration value="BMW"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
上面的例子也可以被写为:
<xs:element name="car" type="carType"/>
<xs:simpleType name="carType">
<xs:restriction base="xs:string">
<xs:enumeration value="Audi"/>
<xs:enumeration value="Golf"/>
<xs:enumeration value="BMW"/>
</xs:restriction>
</xs:simpleType>
注释:
在这种情况下,类型 "carType" 可被其他元素使用,因为它不是 "car" 元素的组成部分。
对一系列值的限定
如需把 XML 元素的内容限制定义为一系列可使用的数字或字母,我们要使用模式约束(pattern constraint)。
下面的例子定义了带有一个限定的名为 "letter" 的元素。可接受的值只有小写字母 a - z 其中的一个:
<xs:element name="letter">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
下一个例子定义了带有一个限定的名为 "initials" 的元素。可接受的值是大写字母 A - Z 其中的三个:
<xs:element name="initials">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z][A-Z][A-Z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
下一个例子也定义了带有一个限定的名为 "initials" 的元素。可接受的值是大写或小写字母 a - z 其中的三个:
<xs:element name="initials">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
下一个例子定义了带有一个限定的名为 "choice 的元素。可接受的值是字母 x, y 或 z 中的一个:
<xs:element name="choice">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[xyz]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
下一个例子定义了带有一个限定的名为 "prodid" 的元素。可接受的值是五个阿拉伯数字的一个序列,且每个数字的范围是 0-9:
<xs:element name="prodid">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
对一系列值的其他限定
下面的例子定义了带有一个限定的名为 "letter" 的元素。可接受的值是 a - z 中零个或多个字母:
<xs:element name="letter">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-z])*"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
下面的例子定义了带有一个限定的名为 "letter" 的元素。可接受的值是一对或多对字母,每对字母由一个小写字母后跟一个大写字母组成。举个例子,"sToP"将会通过这种模式的验证,但是 "Stop"、"STOP" 或者 "stop" 无法通过验证:
<xs:element name="letter">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-z][A-Z])+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
下面的例子定义了带有一个限定的名为 "gender" 的元素。可接受的值是 male 或者 female:
<xs:element name="gender">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="male|female"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
下面的例子定义了带有一个限定的名为 "password" 的元素。可接受的值是由 8 个字符组成的一行字符,这些字符必须是大写或小写字母 a - z 亦或数字 0 - 9:
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z0-9]{8}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
对空白字符的限定
如需规定对空白字符(whitespace characters)的处理方式,我们需要使用 whiteSpace 限定。
下面的例子定义了带有一个限定的名为 "address" 的元素。这个 whiteSpace 限定被设置为 "preserve",这意味着 XML 处理器不会移除任何空白字符:
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="preserve"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
这个例子也定义了带有一个限定的名为 "address" 的元素。这个 whiteSpace 限定被设置为 "replace",这意味着 XML 处理器将移除所有空白字符(换行、回车、空格以及制表符):
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
这个例子也定义了带有一个限定的名为 "address" 的元素。这个 whiteSpace 限定被设置为 "collapse",这意味着
XML
处理器将移除所有空白字符(换行、回车、空格以及制表符会被替换为空格,开头和结尾的空格会被移除,而多个连续的空格会被缩减为一个单一的空格):
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
对长度的限定
如需限制元素中值的长度,我们需要使用 length、maxLength 以及 minLength 限定。
本例定义了带有一个限定且名为 "password" 的元素。其值必须精确到 8 个字符:
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
这个例子也定义了带有一个限定的名为 "password" 的元素。其值最小为 5 个字符,最大为 8 个字符:
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:minLength value="5"/>
<xs:maxLength value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
数据类型的限定
限定
描述
enumeration |
定义可接受值的一个列表 |
fractionDigits |
定义所允许的最大的小数位数。必须大于等于0。 |
length |
定义所允许的字符或者列表项目的精确数目。必须大于或等于0。 |
maxExclusive |
定义数值的上限。所允许的值必须小于此值。 |
maxLength |
定义所允许的字符或者列表项目的最大数目。必须大于或等于0。 |
minExclusive |
定义数值的下限。所允许的值必需大于此值。 |
minInclusiv |
定义数值的下限。所允许的值必需大于或等于此值。 |
minLength |
定义所允许的字符或者列表项目的最小数目。必须大于或等于0。 |
pattern |
定义可接受的字符的精确序列 |
totalDigits |
定义所允许的阿拉伯数字的精确位数。必须大于0。 |
whiteSpace |
定义空白字符(换行、回车、空格以及制表符)的处理方式。 |
相关推荐
* schema元素:XML Schema的根元素,用于描述XML文档的结构和内容。 * element元素:用于定义XML文档中的元素,例如greeting、customer等。 * complexType元素:用于定义复杂的数据类型,例如包含多个子元素的元素。...
- **关键字**:JSON Schema中用于定义规则的字段名称。 #### 三、概述 JSON Schema定义了一套词汇表,用于描述JSON文档的结构和内容,以及如何验证这些文档。这包括: - **独立关键字**:可以独立使用的关键字,...
2. **XML SCHEMA元素定义**:元素是XML文档的基本构建块,SCHEMA允许定义元素的名称、类型、出现次数(可选、单个或多个)、子元素和属性等。 3. **数据类型**:SCHEMA提供了一套内置数据类型,如字符串、整数、...
#### 二、XML Schema 的组成部分 - **XSD<schema> 元素**:这是 XML Schema 的根元素,用于声明一个 XML Schema 文档。它包含了所有其他用于定义元素、属性和类型的声明。 - **简单的类型**:简单类型定义了单一的...
8. **第二章 Schema**:这个文件名可能指的是学习XML Schema的一个章节,该章节可能详细讲解了Schema的某一部分,如数据类型的扩展、限制、枚举值、模式匹配等。 总之,XML基础实例和Schema是XML编程中的核心概念。...
### XML Schema 快速...通过以上步骤,读者可以了解到如何使用 XML Schema 来定义 XML 数据结构,并通过一个简单的实例学习如何实现 XML 分层的效果。希望这个指南能够帮助初学者更好地理解和应用 XML Schema 技术。
XML Schema定义了一系列的元素(element)、属性(attribute)和数据类型(data type),这些元素和属性规定了XML文档的结构。例如,`<element>`定义了一个命名的XML节点,可以是文档中的一个节点或子节点;`...
- **重用Schema元素**:使用`<xs:import>`导入外部Schema。 #### 五、XML Schema设计选择与最佳实践 - **设计选择**: - **元素与属性的选择**:确定哪些信息作为元素,哪些作为属性。 - **类型的选择**:决定...
**Schema 中文教程** Schema是XML的一个重要组成部分,...通过深入学习和熟练掌握Schema,可以更好地利用XML进行数据处理和交换。本教程提供的文档将帮助读者理解和应用Schema,以便于在实际工作中更好地处理XML文档。
6. `items`:用于定义数组中的元素Schema。 7. `$ref`:引用其他Schema,用于复用和组合。 转换过程通常包括以下步骤: 1. **选择库**:选择适合的Java库,例如`com.github.fge:json-schema-generator`,它提供API...
4. **模式组件**:XML Schema由一系列模式组件构成,包括元素、属性、类型、组、键和引用等,这些组件可以组合创建复杂的结构。 5. **约束和验证**:通过XML Schema,我们可以设置元素数量、顺序、内容模型等方面的...
例如,一个简单的Schema定义可能包含一个名为"Person"的元素,该元素有两个子元素"firstName"和"lastName",并且它们都必须是字符串类型。 接下来,我们将探讨如何创建和使用Schema。在WebService中,Schema通常...
XML Schema(也常称为XSD,即XML Schema Definition)允许开发者精确地指定XML文档中可以出现的元素、属性、数据类型以及其他结构规则。 **基础知识需求**:在深入学习XML Schema之前,建议读者具备以下基础知识: ...
在Java中,XML Schema的验证可以使用javax.xml.validation包,提供了独立于模式语言的验证服务接口。该包提供了三个类来验证文档:SchemaFactory、Schema和Validator。 在实际应用中,XML Schema可以用于: 1. ...
XML Schema 是 DTD 的继任者,我们认为 XML Schema 很快会在大部分网络应用程序中取代 DTD。理由如下: * XML Schema 可针对未来的发展 * XML Schema 比 DTD 更强大 XML Schema 的优点包括: * 支持数据类型 * ...
2. **注册Schema**: 在Spring的配置文件中,引入自定义的Schema,以便Spring能够识别并解析这些自定义元素。这通常通过在XML文件头部添加`<xs:schemaLocation>`属性来完成。 ```xml <beans xmlns="http://...
"XML Schema 学习笔记" XML Schema 是一种基于 XML 的语言,用于定义 XML 文档的结构和约束。它可以描述 XML 文档的格式、元素、属性、数据类型、默认值、固定值等信息。XML Schema 的作用类似于 DTD,但它具有更多...
局部元素和属性的限定可以通过schema元素的一对属性,elementFormDefault和attributeFormDefault来实现的。这些属性可以被设为"unqualified"或者"qualified",来指出局部声明的元素和属性是否必须为无限制的。 4. ...
2. **元素与属性**:XML Schema中的元素是文档的基本构建块,可以包含文本、其他元素或两者。属性则提供关于元素的附加信息,通常以键值对的形式存在。在Schema中,元素和属性都可以被定义为可选或必填,并可以设置...
### XML Schema 参考手册知识点...通过上述知识点的学习,你可以更加深入地理解 **XML Schema** 的作用及其在实际应用中的重要性。无论是在 Web 开发还是数据交换领域,掌握 **XML Schema** 都是一项非常有价值的技能。