XML Schema中的数据类型

         XML Schema可以将文档中的元素声明为特定的类型,准许解析器检查文档的内容及其结构。

一、简单类型

XML Schema的简单类型只能包含数据。分为两种:

1.XML Schema内置的简单数据类型(共40多种)

   优:可以把数据分的很具体

常用的简单类型
简单类型定义
string字符串数据
boolean二元类型的True或者 False
date历法日期,格式是 CCYY-MM-DD
dateTime历法日期和时间
time24小时格式的时间,可根据时区调节
decimal任意精度和位数的十进制数
integer整数
float

标准的32位浮点

   

2.用户自定义的简单数据类型

        自定义数据类型是指一个XML Schema类型为基础,添加一些限制条件,使之成为一个新的类型。

       自定义数据类型使用<simple Type>标记,通过这个标记可以给XML Schema提供的数据类型添加一些限制,从而构造出新的类型。

       使用simpleTvpe元素为XML文档中的元素和属性自定义数据类型的具体语法格式如下:

<xsd:simpleType name="name">
      <xsd:restriction base="xsd:datatypes">
              <xsd:facets_element value="value"/>
              ...
      </xsd:restriction>
</xsd:simpleType>

       其中,有几点说明如下。

       name属性用于指明用户定义的数据类型名称。

       restriction子元素定义用户自定义元素(simpleType)使用的数据类型。

       base属性指明自定义数据类型派生于哪个基本数据类型。

       facets element子元素用于描述自定义数据类型的约束规则,如长度、范围、枚举类型、联合类型等。

       在自定义数据类型时,可根据需要使用下表所示的具体元素名称来表示约束规则,且每个元素都能用 value属性来指定范围或长度等具体的细节限制。

自定义数据类型的约束规则
元素说明
minInclusive内容范围的最小值,且包含此值
maxInclusive内容范围的最大值,且包含此值
minExclusive内容范围的最小值,且不包含此值
maxExclusive内容范围的最大值,且不包含此值
length元素内容的长度
minLength元素内容的最小长度
maxLength元素内容的最大长度
enumeration枚举列表,元素内容从此列表内容中选择其中之一
list允许用户输入多个数据,数据间用空白间隔
pattern正规语法定义数据的组合类型
union元素内可包含多种不同数据类型,但同时只能存在一种
totalDigits限制有效数字的最大位数
fractionDigits

限制小数点后的位数

       其中pattern用于指定数据类型的值必须匹配指定的正则表达式。

正则表达式符号表
符号说明示例匹配
?定义字符可出现0次或1次ab?a、ab
*定义字符可出现0次或多次ab*a、abb
+定义字符可出现多次ab+ab、abb
{n}或{n,m}定义字符可出现n或n~m次(n,m为整数)ab{3,4}abbb
[字符]定义可出现的字符范围[a-z]a、b...
|表示选择关系a|ba或b
^表示非的关系[^0-9]非数字
()匹配次数时,括号中的表达式可以作为整体被修饰(ab){2}abab

二、复杂类型

       复杂类型可以像数据一样包含其他元素。

       复杂类型是指含有子元素或属性的元素。在XML Schema中,用<complexType>标记来定义复杂类型元素。通过<complexTvpe>可以指定元素与元素或元素与属性的从属关系。

       语法格式如下:

<xsd:element name="元素名称” type="数据类型">
   <xsd:complexType name="数据类型">
   <1-子元素描述部分->
        <xsd:sequence>
     ...
     </xsd:sequence>
   </xsd:complexType>
</xsd:complexType>

        "元素名称"用于指明复杂类型元素的名称。

        "数据类型"指自定义数据类型的名称。

        <sequence>子元素表示在其定义范围内的所有元素都必须按顺序出现。除了<sequence>子元素外,其他可选的子元素如表4-4所列,用于定义复杂类型所包含的内容模式。

复杂类型元素的子元素列表
complexType元素的子元素定义
all其定义的XML子元素可以无顺序地出现一个或多个
sequence其定义的XML子元素都必须按顺序出现
choice其定义的XML子元素选择其中之一出现
any其定义的任何XML子元素都必须出现
simpleContent没有XML子元素,只有数据内容、属性
complexContent只有XML子元素或空元素
attribute这种复杂类型只能包含命名属性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值