更新时间:2023-01-03 来源:黑马程序员 浏览量:
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名称空间中,因此,在根元素上必须声明该名称空间。
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19