`
marb
  • 浏览: 422269 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

schema学习系列二: schema中的简单元素

XML 
阅读更多

最常用的类型是:

  • xs:string
  • xs:decimal
  • xs:integer
  • xs:boolean
  • xs:date
  • xs:time

例子:

这是一些 XML 元素:

<lastname>Smith</lastname>
<age>28</age>
<dateborn>1980-03-27</dateborn>
 

这是相应的简易元素定义:

<xs:element name="lastname" type="xs:string"/>
<xs:element name="age" type="xs:integer"/>
<xs:element name="dateborn" type="xs:date"/>  

简易元素的默认值和固定值

简易元素可拥有指定的默认值或固定值。

当没有其他的值被规定时,默认值就会自动分配给元素。

在下面的例子中,缺省值是 "red":

<xs:element name="color" type="xs:string" default="red"/> 

固定值同样会自动分配给元素,并且您无法规定另外一个值。

在下面的例子中,固定值是 "red":

<xs:element name="color" type="xs:string" fixed="red"/>		 

简易元素的属性

定义属性的语法是:

<xs:attribute name="xxx" type="yyy"/> 

在此处,xxx 指属性名称,yyy 则规定属性的数据类型。XML Schema 拥有很多内建的数据类型。

属性的默认值和固定值

属性可拥有指定的默认值或固定值。

当没有其他的值被规定时,默认值就会自动分配给元素。

在下面的例子中,缺省值是 "EN":

<xs:attribute name="lang" type="xs:string" default="EN"/> 

固定值同样会自动分配给元素,并且您无法规定另外的值。

在下面的例子中,固定值是 "EN":

<xs:attribute name="lang" type="xs:string" fixed="EN"/> 

可选的和必需的属性

在缺省的情况下,属性是可选的。如需规定属性为必选,请使用 "use" 属性:

<xs:attribute name="lang" type="xs:string" use="required"/> 

对值的限定

下面的例子定义了带有一个限定且名为 "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 定义空白字符(换行、回车、空格以及制表符)的处理方式。
分享到:
评论

相关推荐

    XML详解----Schema(精讲)

    * schema元素:XML Schema的根元素,用于描述XML文档的结构和内容。 * element元素:用于定义XML文档中的元素,例如greeting、customer等。 * complexType元素:用于定义复杂的数据类型,例如包含多个子元素的元素。...

    JSON Schema验证规范-中文版

    - **关键字**:JSON Schema中用于定义规则的字段名称。 #### 三、概述 JSON Schema定义了一套词汇表,用于描述JSON文档的结构和内容,以及如何验证这些文档。这包括: - **独立关键字**:可以独立使用的关键字,...

    XML学习 练习SCHEMA

    2. **XML SCHEMA元素定义**:元素是XML文档的基本构建块,SCHEMA允许定义元素的名称、类型、出现次数(可选、单个或多个)、子元素和属性等。 3. **数据类型**:SCHEMA提供了一套内置数据类型,如字符串、整数、...

    XML Schema教程

    #### 二、XML Schema 的组成部分 - **XSD&lt;schema&gt; 元素**:这是 XML Schema 的根元素,用于声明一个 XML Schema 文档。它包含了所有其他用于定义元素、属性和类型的声明。 - **简单的类型**:简单类型定义了单一的...

    XML基础实例 Schema

    8. **第二章 Schema**:这个文件名可能指的是学习XML Schema的一个章节,该章节可能详细讲解了Schema的某一部分,如数据类型的扩展、限制、枚举值、模式匹配等。 总之,XML基础实例和Schema是XML编程中的核心概念。...

    XMLschema快速入門

    ### XML Schema 快速...通过以上步骤,读者可以了解到如何使用 XML Schema 来定义 XML 数据结构,并通过一个简单的实例学习如何实现 XML 分层的效果。希望这个指南能够帮助初学者更好地理解和应用 XML Schema 技术。

    根据xml schema生成xml

    XML Schema定义了一系列的元素(element)、属性(attribute)和数据类型(data type),这些元素和属性规定了XML文档的结构。例如,`&lt;element&gt;`定义了一个命名的XML节点,可以是文档中的一个节点或子节点;`...

    XML Schema

    - **重用Schema元素**:使用`&lt;xs:import&gt;`导入外部Schema。 #### 五、XML Schema设计选择与最佳实践 - **设计选择**: - **元素与属性的选择**:确定哪些信息作为元素,哪些作为属性。 - **类型的选择**:决定...

    Schema 中文教程

    **Schema 中文教程** Schema是XML的一个重要组成部分,...通过深入学习和熟练掌握Schema,可以更好地利用XML进行数据处理和交换。本教程提供的文档将帮助读者理解和应用Schema,以便于在实际工作中更好地处理XML文档。

    Java bean转换为Json Schema

    6. `items`:用于定义数组中的元素Schema。 7. `$ref`:引用其他Schema,用于复用和组合。 转换过程通常包括以下步骤: 1. **选择库**:选择适合的Java库,例如`com.github.fge:json-schema-generator`,它提供API...

    xml Schema学习

    4. **模式组件**:XML Schema由一系列模式组件构成,包括元素、属性、类型、组、键和引用等,这些组件可以组合创建复杂的结构。 5. **约束和验证**:通过XML Schema,我们可以设置元素数量、顺序、内容模型等方面的...

    WebService入门教程_Schema学习示例代码

    例如,一个简单的Schema定义可能包含一个名为"Person"的元素,该元素有两个子元素"firstName"和"lastName",并且它们都必须是字符串类型。 接下来,我们将探讨如何创建和使用Schema。在WebService中,Schema通常...

    XML_Schema 教程 详细版

    XML Schema(也常称为XSD,即XML Schema Definition)允许开发者精确地指定XML文档中可以出现的元素、属性、数据类型以及其他结构规则。 **基础知识需求**:在深入学习XML Schema之前,建议读者具备以下基础知识: ...

    XML文件XML Schema.docXML Schema.doc

    在Java中,XML Schema的验证可以使用javax.xml.validation包,提供了独立于模式语言的验证服务接口。该包提供了三个类来验证文档:SchemaFactory、Schema和Validator。 在实际应用中,XML Schema可以用于: 1. ...

    XML Schema 的简介

    XML Schema 是 DTD 的继任者,我们认为 XML Schema 很快会在大部分网络应用程序中取代 DTD。理由如下: * XML Schema 可针对未来的发展 * XML Schema 比 DTD 更强大 XML Schema 的优点包括: * 支持数据类型 * ...

    自定义 Schema 解析 Spring Bean

    2. **注册Schema**: 在Spring的配置文件中,引入自定义的Schema,以便Spring能够识别并解析这些自定义元素。这通常通过在XML文件头部添加`&lt;xs:schemaLocation&gt;`属性来完成。 ```xml &lt;beans xmlns="http://...

    xml schema 学习笔记

    "XML Schema 学习笔记" XML Schema 是一种基于 XML 的语言,用于定义 XML 文档的结构和约束。它可以描述 XML 文档的格式、元素、属性、数据类型、默认值、固定值等信息。XML Schema 的作用类似于 DTD,但它具有更多...

    理解XML Schema XML Schema进阶

    局部元素和属性的限定可以通过schema元素的一对属性,elementFormDefault和attributeFormDefault来实现的。这些属性可以被设为"unqualified"或者"qualified",来指出局部声明的元素和属性是否必须为无限制的。 4. ...

    XMLSchema.chm

    2. **元素与属性**:XML Schema中的元素是文档的基本构建块,可以包含文本、其他元素或两者。属性则提供关于元素的附加信息,通常以键值对的形式存在。在Schema中,元素和属性都可以被定义为可选或必填,并可以设置...

    XML Schema参考手册

    ### XML Schema 参考手册知识点...通过上述知识点的学习,你可以更加深入地理解 **XML Schema** 的作用及其在实际应用中的重要性。无论是在 Web 开发还是数据交换领域,掌握 **XML Schema** 都是一项非常有价值的技能。

Global site tag (gtag.js) - Google Analytics