Xml Schema 整理笔记(2)

【了解更多请参考:http://www.w3schools.com

简单类型

简单元素

什么是简单元素:只能包含文本不能包含其他元素和属性的元素节点
形式如<xs:element name="xxx" type="yyy" />
(xxx是元素名称 yyy是文本类型)

文本可以是很多类型(以下是XML Schema内建的一些文本类型)

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

    示例
    <lastname>Refsnes</lastname>
    <age>36</age>
    <dateborn>1970-03-27</dateborn>

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

    才外我们可以为元素设置默认值(default)和限定值(fixed)
    <xs:element name="lastname" type="xs:string" default="pan"/> <xs:element name="age" type="xs:integer"/> <xs:element name="dateborn" type="xs:date" fixed="1983-9-26"/>
    简单属性
    简单属性定义使用方式和简单元素差不多
    说明一个,简单属性多了一个能设置可选还是必须属性(use)
    <xs:attribute name="dateborn" type="xs:date" default="1983-9-26" use="required"/>
    上面这个属性就是包含它的元素所必需具有的
    限制元素以及属性可用的值
    <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> 
    说明:定义一个简单元素age,取值0~120的整数类型(包括两端0,120)
    <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> 
    说明:定义一个简单元素car,取值只能是枚举值(Audi,Golf,BM)
    <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>
    说明:定义一个简单元素car 值类型carType(我之类为了方便理解,把它当作css里面的class属性来理解了)
    carType这个自定义值类型还可以被其他元素所使用
     
    上面示例的都是限定一个值,如果要限定一个取值范围参加下面的示例
    <xs:element name="letter">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:pattern value="[a-z]"/>
      </xs:restriction>
    </xs:simpleType>
    </xs:element>  
    说明:定义简单元素letter取值是(a-z)中的1个字符
     
    <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)中的3个字符

    类似的pattern元素里面定义了限制可取值的定义 value里面你可以使用类似正则表达式的限制方式

    参见下表定义了限制的各种限制元素

           
           
    ConstraintDescription
    enumeration定义一组可接受的枚举值
    fractionDigitsSpecifies the maximum number of decimal places allowed. Must be equal to or greater than zero
    lengthSpecifies the exact number of characters or list items allowed. Must be equal to or greater than zero
    maxExclusiveSpecifies the upper bounds for numeric values (the value must be less than this value)
    maxInclusiveSpecifies the upper bounds for numeric values (the value must be less than or equal to this value)
    maxLengthSpecifies the maximum number of characters or list items allowed. Must be equal to or greater than zero
    minExclusiveSpecifies the lower bounds for numeric values (the value must be greater than this value)
    minInclusiveSpecifies the lower bounds for numeric values (the value must be greater than or equal to this value)
    minLengthSpecifies the minimum number of characters or list items allowed. Must be equal to or greater than zero
    patternDefines the exact sequence of characters that are acceptable
    totalDigitsSpecifies the exact number of digits allowed. Must be greater than zero
    whiteSpaceSpecifies how white space (line feeds, tabs, spaces, and carriage returns) is handled



    今天无意发现了一个翻译www.w3schools.com 的中文网站 www.w3school.com.cn大家可以直接浏览
    
    
  • 
    
[实验目的] 1、学习如何使用XMLSPY集成开发环境完成XML Schema相关的开发工作。 2、掌握XML Schema与DTD之间的区别,能够完成两者之间的转换;掌握在XML Schema如何定义元素和属性,如何使用限制、列表和合并派生自己的简单数据类型,如何定义复杂数据类型,全局/局部元素和数据类型之间的区别;如何将XML Schema文档关联到XML实例数据文档,并完成文档的有效性验证。 3、掌握如何准确定义数据之间的参照完整性约束,如何在模式使用多态性支持,如何在文档定义空等等。 [实验内容和步骤] 1、使用XMLSPY集成开发环境,新建XML Schema文档,在各种不同的编辑视图尝试采用不同的方式完成XML Schema文档的编辑和查看;并使用XMLSPY提供的便利,建立XMLSchema两者之间的关联,进行XML文档的良构以及有效性验证。 2、严格按照下图给出的文档模型,在XML Schema编辑环境的Schema视图完成book.xsd的编写(不要使用Text视图进行编写): 在上图,没有指定简单类型元素和属性的数据类型,请根据合理的情况,完成数据类型的创建(至少使用到限制方式的三种以上的限制方面),请在IDE的Details视图->type和Facets完成上述任务。 在上图,有三个title元素分别表示book、section和figure的标题,请定义下述类型: titleType:1-100个字符的文本; bookTitleType:titleType类型限制派生的子类型,要求取枚举“Data On the Web”、“TCP/IP Illustrated”等; sectionTitleType:titleType类型限制派生的子类型,要求必须形如“1.xxxx”、“1-1.xxxx”等等(表示第一节、第一节下面的第一节等等,注意section是递归的形式); figureTitleType:titleType类型限制派生的子类型,要求必须形如“1-1.xxxx” 、“1-1-1.xxxx”(表示第一节的第一个图、第一节下面的第一节的第一个图等等); 然后编写book.xml,并使用多态性(即所有title的类型均为titleType,而数据实例指明具体类型),请确保通过文档有效性验证。 3、在上次的DTD实验,我们编写了SpyBase1.xml、SpyBase2.xml、以及SpyBase1.dtd和SpyBase2.dtd,这次需要完成SpyBase1.xsd和SpyBase2.xsd,建立模式与数据之间的关联,并进行文档有效性验证。在编写的XSD文档SpyBase1.xsd,要求使用key/keyref描述数据的实体完整性以及数据之间的参照完整性(SpyBase2.xml不需要,因为已经使用嵌套消除了参照关系)。 [实验思考] 与ID/IDREF相比,key/keyref有哪些优点,在使用上有何不同? 假设SpyBase1.xml的alias、mission、spy来自不同的命名空间,如何在Schema对其进行限定,请在XMLSPY完成相应的xsd文档?修改SpyBase1.xml,并验证新的SpyBase1_2.xsd是否正确? [提交时间及内容] 最后提交时间 2013年?月?日 提交内容 提交book.xsd、book.xml(使用多态)。 提交SpyBase1. xsd、SpyBase2. xsd。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值