- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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/XMLSchemaxsd: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-----------customernameteiki/nameaddressNo.237, Road Waitan, Shanghai/address/customer则可以写出以下的XML Schema文档:customer.xsd----------------1: ?xml version=1.0?2: xsd:schema xmlns:xsd=/2001/XMLSchema3: xsd:element name=customer4: xsd:complexType5: xsd:sequence6: xsd:element name=name type=xsd:string/7: xsd:element name=address type=xsd:string /8: /xsd:sequence9: /xsd:complexType10: /xsd:element11: /xsd:schema说明:实例文档customer.xml中,customer元素含有两个子元素,在Schema中凡是有两个以上的子元素,就认为是复杂类型的,所以我们在Schema文档中采用ComplexType来定义该元素。表示有多个XML子元素。sequence表示子元素依次出现的顺序。如果有多层子元素怎么办呢,同样的道理,有几层写几层,一直往下嵌就OK了,这里我要说的是另一种方法,结构看上去会清晰一些。address.xml---------------customernameTeiki/nameaddress!-- address追加一个地址子元素 --prefectureZhejiang/prefecturecityHangzhou/citystreetXilu Road, No.121, 7F/street/address/customer下面就是采用ref元素来编写的这个Schema文档:address2.xsd----------------------1: ?xm l version=1.0?2: xsd:schema xmlns:xsd=/2001/XMLSchema3:4: xsd:element name=customer5: xsd:complexType6: xsd:sequence7: xsd:element name=name type=xsd:string/8: xsd:element ref=address/9: /xsd:sequence10: /xsd:complexType11: /xsd:element12:13: xsd:element name=address14: xsd:complexType15: xsd:sequence16: xsd:elem
文档评论(0)