Schema初学者进阶(1)

2016-02-19 12:49 6 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的Schema初学者进阶(1)懂设计的网友们快点来了解吧!

【 tulaoshi.com - Web开发 】

 

摘要:XML Schema 是用来描述和约束XML文档的一种XML语言,从功能上看,它和早期的DTD是非常类似的,但是它比DTD的更加强大。目前Schema标准在W3C开发进程中是一个候选建议。

我们的第一个Schema

让我们从这个关于书的简单XML文档开始,如果您对XML的语法不是很清楚的话,我建议您先学习XML文档的写法,因为这样会使您比较容易理解下面关于Schema的叙述。
?xml version="1.0" encoding="utf-8"?
book isbn="0836217462"
titleBeing a Dog Is a Full-Time Job/title
authorCharles M. Schulz/author
character
nameSnoopy/name
friend-ofPeppermint Patty/friend-of
since1950-10-04/since
qualification extroverted beagle /qualification
/character
character
namePeppermint Patty/name
since1966-08-22/since
qualificationbold, brash and tomboyish/qualification
/character
/book

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

如何写这个XML文档的Schema呢?我们可以简单的依照它的结构来定义它的每个元素。首先我们加入一个xsd:schema元素.
?xml version="1.0" encoding="utf-8"?
xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
从"schema"元素开始我们Schema文档,在每个Schema文档中,它只能有一个,它控制着Schema所使用的名域和另外几个选项,我们知道现在的Schema标准有好几种,因此它是非常重要的!关于它的细节我们都将在下面的章节里学到。
对应着XML文档的"book"标记,我们同样也定义一个名为"book"的元素(element).因为这个元素有属性(attributes)和非文本的子元素(non-text children),因此我们认为它是一个复杂类型(complexType)(因为简单类型,只能有值,而不能有子元素或者属性)。同时我们还注意到"book"元素下的子元素,都是按照一定的顺序排列,因此我们使用顺序元素(sequence element)来描述它们。
xsd:element name="book"
xsd:complexType
xsd:sequence
顺序元素(sequence element)是一个定义子元素排列顺序的元素,在下面的章节,我们还将看到两个其它的类似的元素,选择(choice)和全选(all)。
接着我们定义"title"和"author",它们都是xsd:string类型的简单元素,因为他们没有属性(attributes)或者子元素,xsd:string是一个已经在名域中预定义了的XML Schema类型中的一个。
xsd:element name="title" type="xsd:string"/
xsd:element name="author" type="xsd:string"/
接着,我们来处理"character"元素,它也是一个复杂类型。注意它的基数的定义!
xsd:element name="character" minOccurs="0" maxOccurs="unbounded"
xsd:complexType
xsd:sequence
同其它Schema定义语言不一样,W3C XML Schema允许我们定义一个元素的使用基数,我们能指定元素的minOccurs(最小数)和maxOccurs(最大数。这里我们设置maxOccurs为"unbounded",这意味能有任意多的"character"元素。这两个属性的默认值都是一。下面,我们用同样的方法定义其它的子元素。
xsd:element name="name" type="xsd:string"/
xsd:element name="friend-of" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/
xsd:element name="since" type="xsd:date"/
xsd:element name="qualification" type="xsd:string"/

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

下面我们封闭complexType和element等元素:
/xsd:sequence
/xsd:complexType
/xsd:element
这样"character"元素就完成了。然后我们封闭"book"的sequence元素。
/xsd:sequence
现在,声明"book"元素的属性,我们通常是在最后这么做。这样做没有什么特别的原因,只不过W3C XML Schema工作组认为在元素后定义属性感觉更加自然。
&l

t;xsd:attribute name="isbn" type="xsd:string"/
最后,关闭所有剩下的元素。
/xsd:complexType
/xsd:element
/xsd:schema
好了,我们的第一个Schema已经完成了。在这其中,最关键的在于根据文档的上下关系来定义每一个元素和属性,并且允许有多个同名元素带有不同的内容。这了这个目的,W3C XML Schema 是被设计成一种有作用域的语言,它的每一个定义只能被它定义的子元素所看见。

下面是完整的第一个例子:library1.xsd
?xml version="1.0" encoding="utf-8"?
xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
xsd:element name="book"
xsd:complexType
xsd:sequence
xsd:element name="title" type="xsd:string"/
xsd:element name="author" type="xsd:string"/
xsd:element name="character" minOccurs="0" maxOccurs="unbounded"
xsd:complexType
xsd:sequence
xsd:element name="name" type="xsd:string"/
xsd:element name="friend-of"
type="xsd:string" minOccurs="0" maxOccurs="unbounded"/
xsd:element name="since" type="xsd:date"/
xsd:element name="qualification" type="xsd:string"/
/xsd:sequence
/xsd:complexType
/xsd:element
/xsd:sequence
xsd:attribute name="isbn" type="xsd:string"/
/xsd:complexType
/xsd:element
/xsd:schema

 

来源:http://www.tulaoshi.com/n/20160219/1602086.html

延伸阅读
标签: 化妆
对于很多新手来说,化妆本来就是难事,如果化妆时搞砸了,上班、约会要迟到了,没时间重画怎么办?那初学者如何化妆呢?下面教你简单快捷的4招技巧,解决常见的化妆问题。 初学者如何化妆 初学者如何化妆一、牙齿沾到唇膏 涂完唇膏后,用纸巾按在唇上吸干唇膏,用手指放到纸巾上尽量往嘴里压,然后慢慢拉出来,这样就可以把沾到嘴唇内侧...
学习使用点测光 现今数码相机的测光功能虽然很方便,但事实上在某些情况仍然会有失败的时候,而学习使用点测光就可以自行判断最合适的曝光值。另外,使用点测光的方法是把测光点放在你认为需要有正确曝光的地方上(通常是主题),再用AE-L锁定曝光,才进行构图、对焦和拍照。 学习看直方图 不要用人眼评判断相片的曝光值是否正确,...
摄影初学者留点心 一、纠结器材 纠结于器材品牌和各种镜头参数,显著特征就是每天抱着MTF曲线、各媒体评测等内容研读。由此形成大量MTF党,唯器材论者和品牌铁粉团。 从这以后便不再是摄影爱好者,而是器材爱好者加喷子。须知红圈也有狗头(网络著名吐槽图),镜头后那个头要是也狗了就是双狗头。 其实将器材视为面子是人之常...
初学者常见思维误区   细草(微博id:@细草穿沙 微信号:xicaocn) 摄影作品 器材到底重要不重要? 这个问题几乎也是一直很多初学者纠结反复的问题,我这里谈一下个人观点。我认识一个大师曾经说:好照片与器材无关,只有高质量画质的照片才与器材有关!这里区隔说下,大概意思是评价好照片与否的标准不是画质,而是照片本身...
标签: Web开发
总述:本文主要讨论如何利用XMLDOM访问和维护XML文档,该XMLDOM由Microsoft 解析器实现。 简介 作为VB的开发者你可能会接触XML文档。你现在想处理XML文档并把它集成到你的方案中。你可以自己编程解析,把它当普通文本文档处理,但这样作太没有效率了,没有利用XML的强大之处:它可以结构化的表示数据。 从XML文件中获得信息最好的办法...

经验教程

429

收藏

17
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部