在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
Schema约束及XML Schema特点介绍,XML Schema是什么?XML Schema基于XML的DTD替代者,XML Schema 的作用是定义XML文档的合法构建模块类似DTD,可描述 XML 文档的结构,XML Schema语言也可作为XSD(XML Schema Definition)来引用。

XML是一种通用的数据交换格式可以使数据再各种应用程序之间轻松地实现数据交换。而XMLSchema是一种定义和描述XML文档结构与内容的模式语言。DTD是XML的一种XML约束但没有Schema好。
一个XML文档可以引入多个约束文档,如不同约束文档中定义了同名元素或属性,则会导致名称冲突,于是Schema引入了名称空间。同名的元素或属性可以通过名称空间区分。
同DTD一样XML Schema是一种用于定义和描述XML文档结构与内容的模式语言,它克服了DTD的局限性,通过XML Schema与DTD的比较将XML Schema具有显著的优点:
1、DTD采用非XML语法格式,缺乏对文档结构、元素、数据类型等全面的描述。而XML Schema采用XML语法格式,它本身是一种XML文档,因此XML Schema语法格式比DTD更好理解。
2、XML有非常高的合法性要求,虽然DTD和XML Schema都用于对XML文档进行描述都被用作验证XML合法性的基础。但DTD本身合法性的验证必须采用另外一套机制,而XML Schema则采用与XML文档相同的合法性验证机制。
3、XML Schema对名称空间支持得非常好而DTD几乎不支持名称空间。
4、DTD支持数据类型非常有限。如DTD可以指定元素中必须包含字符文本(PCDATA),但无法指定元素中必须包含非负整数,而XML Schema比XML DTD支持更多的数据类型,包括用户自定义的数据类型。
5、DTD定义约束的能力非常有限,无法对XML实例文档作出更细致的语义限制,例如,无法很好地指定一个元素中的某个子元素必须出现7到12次;而XML Schema定义约束的能力非常强大,可以对XML实例文档作出细致的语义限制。
XML Schema定义可出现在文档中的元素、属性、哪个元素是子元素、子元素的次序、子元素的数目、元素是否为空,或者是否可包含文本、元素和属性的数据类型、元素和属性的默认值以及固定值。XML Schema的功能比DTD强大很多,而语法也比DTD复杂很多,XML Schema 是DTD的继任者, XML Schema会在大部分网络应用程序中取代DTD。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
程序员常用的15 种开发者工具推荐
程序员常用的15 种开发者工具推荐:Java 线上诊断工具 Arthas、IDE 插件 Cloud Toolkit、混沌实验注入工具 ChaosBlade、Java 代码规约扫描插件、应用实时监控工具 ARMS、静态开源站点搭建工具 Docsite、Android 平台上的秒级编译方案 Freeline等开发工具。
7816
2019-10-21 16:16:01
少儿编程要不要学?学了有什么好处?
近来兴起的少儿编程热,相信让很多家长疑惑,少儿编程要不要学?学了有什么好处?实际上少儿编程并不像很多人想象的那样高深,它更多的是通过一些编程游戏培养孩子的创造力和集中力。随着国家对编程教育政策的出台,编程逐渐成为青少年教育的重点之一,而少儿时期正是最佳的学习时期,因此少儿编程无论是从社会发展,还是自身的收益还看,都是必须要学习的。
8110
2019-10-28 10:05:22
软件工程师要学哪些知识?难不难?
软件工程师要学哪些知识?难不难?作为互联网行业中最重要的技术岗位,软件工程师需要学习的内容十分广泛且深入,学习难度可想而知。当然,软件工程师也并不是大家想的那样十八班武艺样样精通。比如对英语水平的要求并不高,也不一定要学习多么深奥的数学知识。下面我们一起来看看想要成为一名合格的软件工程师需要学习的具体内容。
16329
2020-04-27 17:05:16
Go语言和Python区别是什么?学哪个好?
Go语言和Python区别是什么?学哪个好?Python功能强大的高级编程语言,用于科学和工程计算。Go通用编程语言,由Google设计,借鉴了许多其他语言,避免导致复杂性和不可靠代码的功能。放下个人偏见和喜好,从优点和功能的角度来评价两种语言。不管选择了哪种语言,Go 和 Python 都在持续演进。
8959
2020-07-31 11:05:45
程序员能拿多少工资
边上班,边学习,安安静静地学技术,长本事,待时机成熟时,跳槽拿更高offer。或许是工作2~5年的程序员们,非常希望达成的一件事了。
7184
2022-09-30 16:54:05
