以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 DTD/XML Schema 』 (http://bbs.xml.org.cn/list.asp?boardid=23) ---- Schema 的简单实例 (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=8419) |
-- 作者:npuhetao -- 发布时间:6/21/2004 9:48:00 PM -- Schema 的简单实例 首先我们来看一个简单的例子。还记得我们的“联系人列表”文件吗?现在我们就把它作一个小小的改动,为“联系人列表”这个元素加一个“公司”属性,指明该列表所属的公司,修改后的XML文件如下: <?xml version = "1.0" encoding="GB2312" standalone = "no"?> <联系人> <?xml version="1.0" encoding="GB2312"?> [1]<?xml version="1.0" encoding="GB2312" ?> |
-- 作者:npuhetao -- 发布时间:6/21/2004 9:49:00 PM -- Schema 文件的结构 在说到元素的定义方法之前,我们先来讲一下Schema文件的结构。其实,Schema文件和其它XML文件的样子非常相似,它是由一组元素构成的,其根元素是“Schema”。“Schema”元素是XML Schema中第一个出现的元素,用于表明该XML文档是一个Schema文档,相应的,“Schema”的结束标记一般在文档的末尾。这样,一个Schema的结构如下: <Schema name="schema-name" xmlns="namespace" > <Schema name="mySchema"
|
-- 作者:npuhetao -- 发布时间:6/21/2004 9:51:00 PM -- 用Schema定义元素及其内容 在讲述Schema中和ETD定义相对应的种种定义方法之前,我们先来看看所涉及的三个Schema元素:ElementType、element、group。 ElementType元素 在Schema文档中使用ElementType来声明XML文件中会出现的元素,ElementType的语法表达如下: 取 值 释 意 素 <b/>
|
-- 作者:npuhetao -- 发布时间:6/21/2004 9:53:00 PM -- Schema的特色——扩展数据类型 Schema中共有23种扩展数据类型,包括bin.base64、bin.hex、boolean、char、date、dateTime、dateTime.tz、fixed.14.4、float、int、number、time、time.tz、i1、i2、i4、r4、r8、ui1、ui2、ui4、uri、uuid,已经可以覆盖相当广泛的应用。限于篇幅,这里只列表介绍几种最常用的类型。 类 型 元素和属性的数据类型可以使用元素datatype来定义,这个元素是Schema中一个重要元素,也是Schema的一大特色。datatype的语法表达如下: <datatype dt:type="datatype"> 除此以外,还有另一种更直接的方法,是在元素ElementType和AttributeType之中利用dt:type属性。下面分别给出具体的示例: datatype dt:type 好了,现在我们结束这些枯燥的语法论述,来看个实际的例子: <AttributeType name="更新时间"> <ElementType name="笔记本电脑" content="eltOnly"> <笔记本电脑 更新时间="2000-06-10T14:00:00"> 可是,假设我们偏偏遇上了一个爱专牛角尖且极为小气的电脑经销商,他擅自将上面的实例文档加以改动挂在自己门口,于是就有下面的文档: <笔记本电脑 更新时间="2000-06-10T14:00:00"> 就在他自鸣得意于自己的精明时,我们的语法分析器却报警了:“价格”取值与定义不符!当然了,明明是int类型,又岂能再加上一个小数点?除非我们将上面的Schema中的“价格”定义作下列修改: <ElementType name="价格" dt:type="fixed.14.4"/> |
-- 作者:npuhetao -- 发布时间:6/21/2004 9:54:00 PM -- Schema中的注释 现在,Schema中的元素只剩下description没有介绍。description只能算是Schema中的一个配角,它可以嵌套在任何其它的Schema元素之中,为这些元素提供备注信息,类似于DTD中的注释。description中的信息不会被XML语法分析器所解析,但是可以为我们提供注释信息,并可以被XML工具或应用程序所解读。 举个简单的例子,假如你是某大学社区网站的技术人员,想在网上开辟一个"售车"栏目供毕业生出售自行车,而正好你刚刚学习过XML Schema,于是就用XML Schema写了一个Schema文档,并把它发布到了网上(可能这种应用在目前有点超前,不过,相信我吧,用不了多久这种应用就会风靡全球的)。可是,问题又来了,单凭这个文档别人怎么知道你是在求购自行车还是想出售自行车呢?不要着急,description前来帮忙。下面就是这个包含description的XML Schema片段: |
-- 作者:npuhetao -- 发布时间:6/21/2004 9:55:00 PM -- Schema的应用 由于XML Schema的种种优点,现在Schema取代DTD已成大势所趋。在这种情况下,国际上一些知名企业和组织审时度势,纷纷在战略上向XML Schema倾斜,提供对XML Schema的支持。其中最为典型的当然要数微软的BizTalk和xml.org组织的注册/资源库。更加值得一提的是,微软在其浏览器软件Internet Explorer 5.0中率先提供对Schema的支持,当然,因为最终的XML Schema标准尚未正式推出,因此微软支持的Schema也只是过渡性"标准",今后还会不断修改。 微软的BizTalk BizTalk是微软发起的电子商务schema库,配合的产品有微软的BizTalk服务器。它的结构是,各个商家定义自己的schema,定义好后将schema提交到bizTalk.org进行注册。BizTalk事先制定了一些标记供商家使用,每个Schema必须遵守义写规则,而且要有一些规定好的必要元素和属性,只有这样才能生成一个标准的BizTalk消息。用户可以注册和查找schema,当遇到某个BizTalk消息而不确定它的结构时可以在bizTalk.org找到它的schema。BizTalk 的框架结构还包括routing scheme,由message server来进行消息的异步发送,它的作用就是一个MOM (message oriented middleware),这样达到系统间的松耦合。 微软在今年4月份发布了BizTalk Server技术预览版,以及相应的开发工具包。它具有以下优点: 稳定的文档交换:支持多种文档类型的发送和交换,包括XML、EDI(EDIFACT和X12)、纯文本文件等等。 xml.org的Schema注册/资源库 |
-- 作者:centipede -- 发布时间:6/30/2004 8:37:00 PM -- 这么详尽的描述,严重感谢楼主!
|
-- 作者:zhangjinti -- 发布时间:7/2/2004 5:42:00 PM -- 楼主的描述够详细,不过我还是要请教一下楼主,xml schema的用途到底是什么,特别是怎么结合xml文档使用? |
-- 作者:tnfs2008bj -- 发布时间:10/24/2004 7:38:00 PM -- 够详细 但我想知道这里讲的是不是和.xsd有些不同啊 这里只讲到了EelementType AttributeType element 几个元素 而.xsd中还有好多啊 |
-- 作者:tnfs2008bj -- 发布时间:10/24/2004 7:39:00 PM -- 够详细 但我想知道这里讲的是不是和.xsd有些不同啊 这里只讲到了EelementType AttributeType element 几个元素 而.xsd中还有好多啊 |
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
171.875ms |