XML技术讲座之五

原创 2004年08月30日 11:41:00

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)

分享2014中国大数据技术大会的一些体会

很荣幸受CSDN的邀请参加了这次2014大数据技术大会BDTC。第一天会议结束,的确是满满的讲座。虽然说很多演讲嘉宾特别能做广告,但整体上来说还是带来了很多干货。在此,笔者第一时间将个人的一些收获分享...
  • songrotek
  • songrotek
  • 2014年12月13日 20:54
  • 2692

2017中国数据库技术大会最新日程安排!

国内最受关注的数据库技术盛会——2017第八届中国数据库技术大会(DTCC2017)将于2017年5月11-13日如约而至。本届大会以“数据驱动.价值发现”为主题,汇集来自互联网、电子商务、金融、电信...
  • huodongjia2016
  • huodongjia2016
  • 2017年04月19日 15:26
  • 552

数据结构:五岔路口交通管理红绿灯设计

我们可以知道这是一个“图”的着色问题,首先要考虑,为什么可行路线是13条?当然可以通过穷举得出,如果用公式:则是: 或者 因为一条路线必须包括一出一进两个方向 第一种答案的解法: 一、固定E为入口,则...
  • u013599298
  • u013599298
  • 2017年02月13日 13:51
  • 1158

第十九节 协议栈五向按键

第十九节 协议栈五向按键 和前面几个一样,按键的驱动在协议栈中也已经有了,我们只需要做一些小的修改,使它适应我们的开发板即可。 1.修改工程配置,使能按键功能。 2.在我们的工程中要使用...
  • snyanglq
  • snyanglq
  • 2015年11月28日 09:42
  • 472

马云的五新其实没有哪一个是新的

2016年10月13日阿里巴巴集团董事局主席马云在2016杭州·云栖大会上演讲时提出未来“五大新”,并称“五大新”的发展将深刻影响到中国、影响到世界,影响到未来的所有人。这五个“新”包括新零售、新制造...
  • harrymeng
  • harrymeng
  • 2016年10月14日 08:43
  • 4785

技术讲座小调查:您的意见很重要!

小调查:是否愿意参加线上技术讲座?
  • shenmanli
  • shenmanli
  • 2017年06月15日 10:24
  • 216

免费技术讲座门票等你拿!

尊敬的女士/先生,您好! 为了感谢您多年来对培训中心的大力支持与信任,为更多企事业单位培养高素质管理和技术人才,培训中心全年定期举办各种热门主题的技术讲座。 一季度将举办三场技术讲座。特别...
  • shenmanli
  • shenmanli
  • 2014年02月12日 11:22
  • 1256

大型网站技术架构 学习总结一(基础了解)

1、大型网站软件系统的特点       高并发、高可用(7*24)、海量数据、用户分布广泛网络情况复杂、安全环境恶劣、需求更新快、渐进式发展。 2、应用服务和数据服务分离       客户量大的时...
  • zhengchao1991
  • zhengchao1991
  • 2016年05月20日 17:22
  • 469

协议栈处理中的conntrack HASH查找/Bloom过滤/CACHE查找/大包与小包/分层处理风格

1.路由CACHE的优势与劣势分级存储体系已经存在好多年了,其精髓在于“将最快的存储器最小化,将最慢的存储器最大化”,这样的结果就使资源利用率的最大化,既提高了访问效率,又节省了资源。这是所有的CAC...
  • dog250
  • dog250
  • 2014年11月11日 20:58
  • 3553

5年后你想过什么样的生活?

一九七六年的冬天,当时我十九岁,在休斯顿太空总署的大空梭实验室里工作,同时也在总署旁边的休斯顿大学主修电脑。纵然忙于学校、睡眠与工作之间,这几乎占据了我一天二十四小时的全部时间,但只要有多余的一分钟,...
  • u010293698
  • u010293698
  • 2015年07月27日 14:36
  • 1207
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:XML技术讲座之五
举报原因:
原因补充:

(最多只允许输入30个字)