XML详解----Schema.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
XML详解----Schema

XML详解----Schema 有人会问,DTD和Schema都是对XML文档的一种约束,为什么不就选其中之一,而又有Schema呢。因为DTD安全度太低了,也就是说它的约束定义能力不足,无法对XML实例文档做出更细致的语义限制。其实细心的人会发现,在DTD中,只有一个数据类型,就是PCDATA(用在元素中)和CDATA(用在属性中),在里面写日期也行,数字还行,字符更是没问题。而Schema正是针对这些DTD的缺点而设计的,Schema是完全使用XML作为描述手段,具有很强的描述能力,扩展能力和处理维护能力等。下面让我们看一个简单的例子吧: hello.xml ------------------- ?xml version=1.0? greetingHello World!!/greeting 说明: 一个根元素:greeting;且这个元素不含属性,无子元素,内容是字符串。 hello.xsd ---------- ?xml version=1.0? xsd:schema xmlns:xsd=/2001/XMLSchema xsd:element name=greeting type=xsd:string/ /xsd:schema 说明: XML Schema文档后缀名是.xsd,完全符合XML语法,根元素是schema,命名空间xmlns:xsd=/2001/XMLSchema,用元素element定义实例文档中的元素,如greeting。xsd:string就是定义的数据类型了,其中的数据类型有很多,比如:int,double,dateTime,Boolean,long,integer,float,等,总之Java等语言里有的数据类型它都有,但要以“xsd:”开头。 让我们再看一个里面有子无素的例子: customer.xml ----------- customer nameteiki/name addressNo.237, Road Waitan, Shanghai/address /customer 则可以写出以下的XML Schema文档: customer.xsd ---------------- 1: ?xml version=1.0? 2: xsd:schema xmlns:xsd=/2001/XMLSchema 3: xsd:element name=customer 4: xsd:complexType 5: xsd:sequence 6: xsd:element name=name type=xsd:string/ 7: xsd:element name=address type=xsd:string / 8: /xsd:sequence 9: /xsd:complexType 10: /xsd:element 11: /xsd:schema 说明: 实例文档customer.xml中,customer元素含有两个子元素,在Schema中凡是有两个以上的子元素,就认为是复杂类型的,所以我们在Schema文档中采用ComplexType来定义该元素。表示有多个XML子元素。 sequence表示子元素依次出现的顺序。 如果有多层子元素怎么办呢,同样的道理,有几层写几层,一直往下嵌就OK了,这里我要说的是另一种方法,结构看上去会清晰一些。 address.xml --------------- customer nameTeiki/name address !-- address追加一个地址子元素 -- prefectureZhejiang/prefecture cityHangzhou/city streetXilu Road, No.121, 7F/street /address /customer 下面就是采用ref元素来编写的这个Schema文档: address2.xsd ---------------------- 1: ?xm l version=1.0? 2: xsd:schema xmlns:xsd=/2001/XMLSchema 3: 4: xsd:element name=customer 5: xsd:complexType 6: xsd:sequence 7: xsd:element name=name type=xsd:string/ 8: xsd:element ref=address/ 9: /xsd:sequence 10: /xsd:complexType 11: /xsd:element 12: 13: xsd:element name=address 14: xsd:complexType 15: xsd:sequence 16: xsd:elem

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档