笑看风云淡

宠辱不惊,看庭前花开花落;去留无意,望天空云卷云舒
posts - 96, comments - 48, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 ::  :: 聚合  :: 管理

下面再做一个小小的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”)


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理