第3章 DTD详解

上一章已经介绍了XML文档的基本文档规则,如果只是按那些基本的文档规则来编写XML文档,那该XML文档将仅仅是格式良好的XML文档,不能算有效的XML文档。如果希望一份XML文档成为有效的XML文档,则必须为其定义语义约束。语义约束可以规定XML文档中允许出现哪些元素,各元素之间的父子关系,以及每个元素内部可以出现哪些子元素、可以支持哪些属性等。如果提供更先进的语义约束,还可约束XML文档内各元素和各属性的数据类型等。

目前有两种为XML文档定义语义约束的方式,一种是采用DTD作为语义约束,另一种是采用XML Schema作为语义约束。DTD语义约束简单易用,但功能相对较弱,而XML Schema语义约束采用XML文档定义,支持更详细的约束规则,功能更加强大,但使用起来也相对较复杂。

早期绝大部分XML文档都会考虑使用DTD来定义语义约束,比如Servlet 2.3规范、Spring 1.x和Hibernate等。但随着XML Schema的广泛应用,现在越来越多的XML文档开始使用XML Schema作为语义约束了。

本章将全面介绍DTD语义约束的相关语法,下一章将重点介绍XML Schema语义约束的相关知识。

本章要点

alt XML语义约束的概念和作用

alt DTD和XML Schema语义约束

alt 在XML文档中引入DTD的方式

alt DTD文档的基本结构

alt 通过DTD验证XML文档的有效性ê在DTD中定义元素

alt 定义混合内容的子元素

alt 为元素定义有序的子元素

alt 为元素定义无序的子元素

alt 将多个子元素编成一组

alt 为元素定义属性

alt DTD支持的常用属性类型

alt 定义普通实体

alt 定义参数实体

alt 定义外部实体

alt 定义符号

alt 定义和使用未解析实体

alt 使用XMLSpy执行DTD相关操作