首页常见问题正文

Schema约束是什么?【JavaWeb概述】

更新时间:2023-01-03 来源:黑马程序员 浏览量:

IT培训班

  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),但无法指定元素中必须包含非负整数(nonNegativeInteger),而XML Schema比XML DTD支持更多的数据类型,包括用户自定义的数据类型。

  5.DTD定义约束的能力非常有限,无法对XML实例文档做出更细致的语义限制,例如,其无法很好地指定一个元素中的某个子元素必须出现7~12次;而XML Schema定义约束的能力非常强大,可以对XML实例文档做出细致的语义限制。

  通过上面的比较可以发现,XML Schema的功能比DTD强大很多,但相应的语法也比DTD复杂很多,一个简单的Schema文档如文件8-5所示。

  文件8-5 Simple.xsd

<? xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="root" type="xs:string"/>
</xs:schema>

  在文件8-5中,第1行是文档声明,第2行中以xs.schema作为根元素,表示模式定义的开始。由于根元素xs:schema的属性都在http://www.w3.org/2001/XMLSchema名称空间中,因此,在根元素上必须声明该名称空间。

1590032240449_视频资源获取.jpg

分享到:
在线咨询 我要报名
和我们在线交谈!