Posted on 2008-09-26 14:33
天之骄子 阅读(240)
评论(0) 编辑 收藏 引用
下面再做一个小小的Schema来说明:
这个例子来自:A semantic Web Primer.
先看下图.是一个关于电子邮件的.
此主题相关图片如下:
下面构建这个Schema,并在构建的同时说明Schema语法
我们在上面的图中分析一下那图,我们就可以通过XMLSPY去完成,首先email(complex tyep下有head,body而head(complex)下有from,to,subject.而在from,to(complex type)之下又有name,address.
那么从这里我们大致可以理解复杂类型的定义,里面包含其它元素及属性.
复杂类型共有4种:
1.仅元素,包含其它的元素及属性,但没有文本.
2.空元素,可能包含属性,但没有元素及文本
3.混合.元素.属性and/or文本
4.仅文本.
(不知对不对,自已的理解,因为我看的资料都是英文的,有错的地方请指正.英语不怎么样,另多说一句,这只是给和我一样的初手看的..高手就..不说了吧.呵呵)
还是从那例子开始吧(要么今天又写不完了...要回宿舍的)
从上面的分析,我们心里有了,要有几个复杂类型,都是什么了...所以做起来应是很轻松的.
打开XMLSPY,很容易就搞定他
1.新建,不用说了吧.Schemas.写根元素:email
2.接着建一系列的复杂元素(点图上最左上角那个图标),内容如下
此主题相关图片如下:
3,email有emailType(head,body).点emailType进去建立.如下图
此主题相关图片如下:
4.返回再再点headType
此主题相关图片如下:
5.nameAddress.
此主题相关图片如下:
这次不点进去了,点下面的框就可以了.如图mouse的位置
6.我们想在body下除了文本还要加一个符件,这样他又是复杂类型
此主题相关图片如下:
7.对于这个body里面的attachment我们想可能有编码的问题,所以我们还要限定它;
还是一个复杂型.但这次我们要用一下简单型了....
此主题相关图片如下: 此主题相关图片如下:
照着图上所表示的一样,完成这一步. 下边的那图你要注意,应用枚举..看图中发亮的部分点一下,而后是右面的细节那里你点 SimpleType
到这里我们把小零件弄完了,那么现在装一下 8.组合,再加一些属性... 点最上面的eamil,进去以后,点右面的type,选emailType,如图
此主题相关图片如下:
出来后再点emailType.做法同上,加进去
此主题相关图片如下:
此主题相关图片如下:
再点headType..给from and to加上nameAddressType.
此主题相关图片如下:
再加这里的subject加上一个类型,xs:string. 这这里算是完成了我们这个schemas. 最后用F8,验证一下! 这里的源代码很简单的...而后自己分析一下源代码....你可以做一步 就软到源码里去分析一下的...这样容易加深记忆..
|
另付上关于这个email的DTD:
<!ELEMENT email (head,body)>
<!ELEMENT head (from,to+,subject)>
<!ELEMENT from EMPTY>
<!ATTLIST from
name CDATA #IMPLIED
address CDATA #REQUIRED>
<!ELEMENT to EMPTY>
<!ATTLIST to
name CDATA #IMPLIED
address CDATA #REQUIRED>
<!ELEMENT subject (#PCDATA)>
<!ELEMENT body (text,attachment*)>
<!ELEMENT text (#PCDATA)>
<!ELEMENT attachment EMPTY>
<!ATTLIST attachment
encoding (mime|binhex) "mime"
file CDATA #REQUIRED>
(转载自“中国XML论坛”,作者“starting”)