Schema初学者进阶(1)

PIST2

PIST2

2016-02-19 12:49

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

摘要: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

如何写这个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://m.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://m.tulaoshi.com/webkaifa/)

 

展开更多 50%)
分享

猜你喜欢

Schema初学者进阶(1)

Web开发
Schema初学者进阶(1)

Schema初学者进阶(2)

Web开发
Schema初学者进阶(2)

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Schema初学者进阶(3)自定义数据类型

Web开发
Schema初学者进阶(3)自定义数据类型

初学者化妆教程 初学者怎么化妆

化妆
初学者化妆教程 初学者怎么化妆

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

初学者用什么眉笔好 初学者眉笔推荐

眉笔 眉粉 砍刀眉笔
初学者用什么眉笔好 初学者眉笔推荐

初学者的化妆步骤 初学者正确化妆步骤

化妆步骤 淡妆化妆步骤
初学者的化妆步骤 初学者正确化妆步骤

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

网页注释在IE中产生文字溢出

网页注释在IE中产生文字溢出

使用XML DOM生成XML(3)

使用XML DOM生成XML(3)
下拉加载更多内容 ↓