XML Schema中的数据类型

XML Schema定义了两种主要数据类型:简单数据类型和复杂数据类型。

、简单数据类型

        1.内置数据类型 44种;

        2.自定义简单数据类型。 simpleType定义

简单类型细分之后大概的结构图如下:

1、XML内置的简单数据类型

        内置基本类型:该类型与其它计算机语言中所提供的数据类型相似,有以下类型:string,boolean,float,double,decimal,time,datatime。比较特殊的是:duration(持续的日期/时间数据,格式为:PYYMMDDTHHMMSS),hexBinary(十六进制表示的二进制数据),anyURI(URL网址)等,W3C标准的内置数据类型多达44种。为保持与DTD的兼容性,其中ID、ENTITY、NOTATION等仅用于属性。

        内置派生类型:从内置基本类型中派生出的类型,有多达25种。如:normalizedString,language,integer,int,ENTITY,IDREFS,byte等。派生方式有三种:一是限制,使用<restriction…/>;二是列表,使用<list…/>;三是联合,使用<union…/>。Schema的内置类型有复杂的层次关系,但没有对象概念。

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

        1.关键字:simpleType,其常用子元素有list和union

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

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

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

        restriction子元素定义用户自定义元素使用的数据类型,base属性指明自定义数据类型派生于哪个基本数据类型,facets_element子元素用于描述自定义数据类型的约束规则。

        每个属性都能用value属性来指定范围或长度等具体的细节限制。

注意:满足以下两个条件的元素才适合定义为简单类型元素 :第一,元素内容是内置数据类型值,如字符串、日期等;第二,元素中不包含属性。
 

 
、复杂数据类型:通过complexType定义

        1.复杂类型用于表示包含子元素或属性,或者既包含元素也包含属性的数据类型。

        2.顺序问题,Schema提供了all(任意顺序)、squence(先后顺序)和choice(选择顺序)三种指示符来解决这个问题。

 语法格式:

<element name="元素名称" type="数据类型"/>
<complexType name="数据类型">
          <complexContent> 
           <sequence>
                  <element name="子元素1">
                  <element name="子元素2">
                    …
           </sequence>
           </complexContent>
</complexTyep> 

        其中“元素名称”用于指明复杂类型元素的名称;“数据类型”指自定义数据类型名称。

        复杂类型元素的子元素列表

all子元素可以无顺序的出现一个或多个
sequence子元素都必须按顺序出现
choice子元素选择其中之一出现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值