分享
 
 
 

XML技术讲座之五

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

Schema的由来和发展

DTD作为XML 1.0规范的重要组成部分,对于XML文档的结构起到很好的描述作用。但是,它也具有一些缺点,比如,它采用了非XML的语法规则、不支持数据类型、扩展性较差等等。Schema正好解决了这些问题。从总体上讲,Schema具有以下优点:

一致性:Schema使得对XML的定义不必再利用一种特定的形式化的语言,而是直接借助XML自身的特性,利用XML的基本语法规则来定义XML文档的结构,使得XML达到了从内到外的完美统一,也为XML的进一步发展奠定了坚实的基础。

扩展性:Schema对DTD进行了扩充,引入了数据类型、命名空间,从而使其具备较强的可扩展性。

互换性:利用Schema,我们能够书写XML文档以及验证文档的合法性。另外,通过特定的映射机制,还可以将不同的Schema进行转换,以实现更高层次的数据交换。

规范性:同DTD一样,Schema也提供了一套完整的机制以约束XML文档中置标的使用,但相比之下,后者基于XML,更具有规范性。Schema利用元素的内容和属性来定义XML文档的整体结构,如哪些元素可以出现在文档中、元素间的关系是什么、每个元素有哪些内容和属性以及元素出现的顺序和次数等等,都可一目了然。

Schema语法

Schema有着自己的一套完整的语法,涉及到的关键元素包括:Schema、ElementType、element、AttributeType、attribute、group、datatype、description。(注:以微软IE 5的Schema实现为蓝本)

Schema元素是XML Schema中第一个出现的元素,用于声明该XML文档是一个Schema文档。Schema具有两个属性:name指定该Schema的名称,而xmlns则指定该Schema包含的命名空间。

ElementType元素是XML Schema中重要元素之一,用于定义该XML Schema文档中出现的元素。通过属性content来表明ElementType所声明的元素是否为空、是否包含文本、是否包含子元素、还是既包含文本又包含子元素,通过dt:type指定该元素的数据类型,通过order指定该元素的子元素的排列规则,相应取值有:one、seq、many。element元素是用于声明在ElementType中出现的元素,它需要同ElementType配合使用。

AttributeType元素用于定义在Schema文档中出现的属性类型。其属性dt:type指定所声明属性类型的数据类型,可支持的数据类型包括:entity, entities, enumeration, id, idref, idrefs, nmtoken, nmtokens, notation, 和 string。default属性可用于指定该属性类型的缺省取值。required属性指定该属性对于引用它的元素是否是必须的。 attribute元素实际上是对AttributeType声明的属性的引用,它也需要同AttributeType配合使用。

group元素用于将XML 文档中的元素分组。通过属性order可指定该分组中的元素或子分组的顺序,通过minOccurs和maxOccurs分别指定该分组在XML实例文档中出现的最少和最多次数。

datatype是XML Schema中一个重要元素,也是XML Schema的一大特色,它用于为ElementType和AttributeType指定数据类型。XML Schema支持两种数据类型:XML 1.0标准中定义的十种基本数据类型和一些扩展数据类型。

description只能算是XML Schema中一个配角,它的主要作用是为ElementType和AttributeType元素提供描述信息。

Schema的应用

由于XML Schema的种种优点,现在Schema取代DTD已成大势所趋。在这种情况下,国际上一些知名企业和组织审时度势纷纷在战略上向XML Schema倾斜,提供对XML Schema的支持。其中最为典型的当然要数微软的BizTalk和xml.org组织的注册/资源库。更加值得一提的是,微软在其浏览器软件Internet Explorer 5.0中率先提供对Schema的支持,当然,因为最终的XML Schema标准尚未正式推出,因此微软支持的Schema也只是过渡性“标准”,今后还会不断修改。(Schema示例请见网站www.cnw.com.cn)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有