可以在文档中指定XML DTD,也可以将其保存在单独的文档中,然后将文档链接到DTD文档以使用它.
语法
DTD的基本语法如下 :
在上面的语法 :
DTD 以<!DOCTYPE分隔符开头.
元素告诉解析器解析文档来自指定的根元素.
DTD标识符是文档类型定义的标识符,可以是文件的路径在系统或URL上的文件在互联网上.如果DTD指向外部路径,则称为外部子集.
方括号[] 附上一个名为内部子集的可选实体声明列表.
内部DTD
如果在XML文件中声明了元素,则DTD称为内部DTD.要将其作为内部DTD引用,XML声明中的独立属性必须设置为是.这意味着声明的工作独立于外部源.
语法
内部DTD的语法如下所示 :
<!DOCTYPE root-element [element-declarations]>
其中 root-element 是根元素的名称,元素声明是您声明的位置元素.
示例
以下是内部DTD的简单示例 :
]>Tanmay Patil TutorialsPoint (011) 123-4567
让我们看看上面的代码 :
开始宣言 : 使用以下语句开始XML声明.
<?xml version ="1.0"encoding ="UTF-8"standalone ="yes" ?>
DTD : 紧接在XML标题之后,文档类型声明跟随,通常称为DOCTYPE :
DOCTYPE声明在元素名称的开头有一个感叹号(!). DOCTYPE通知解析器DTD与此XML文档相关联.
DTD Body : DOCTYPE声明之后是DTD的主体,您可以在其中声明元素,属性,实体和符号 :
这里声明了几个构成< name>的词汇表的元素.文献. <!ELEMENT name(#PCDATA)>将元素 name 定义为"#PCDATA"类型.这里#PCDATA表示可解析的文本数据.
结束声明 : 最后,DTD的声明部分使用右括号和闭合角括号(]>)关闭.这有效地结束了定义,然后立即跟随XML文档.
规则
文档类型声明必须出现在文档的开头(仅在XML标题之前) - 文档中的任何其他位置都不允许.
与DOCTYPE声明类似,元素声明必须以感叹号开头.
文档类型声明中的名称必须与元素类型相匹配root元素.
外部DTD
外部DTD元素在XML文件外声明.可以通过指定系统属性来访问它们,这些属性可以是合法的 .dtd 文件或有效的URL.要将其作为外部DTD引用,XML声明中的独立属性必须设置为否.这意味着,声明包含来自外部源的信息.
语法
以下是外部DTD的语法 :
<!DOCTYPE root-element SYSTEM"file-name">
其中文件名是 .dtd 扩展名的文件.
示例
以下示例显示外部DTD使用情况 :
Tanmay Patil TutorialsPoint (011) 123-4567
DTD文件的内容 address.dtd 如下所示 :
类型
您可以使用系统标识符来引用外部DTD或公共标识符.
系统标识符
系统标识符可让您指定位置包含DTD声明的外部文件.语法如下 :
<!DOCTYPE name SYSTEM"address.dtd"[...]>
如您所见,它包含关键字SYSTEM和指向文档位置的URI引用.
公共标识符
公共标识符提供了一种定位DTD资源的机制,编写如下 :
如您所见,它以关键字PUBLIC开头,后跟专用标识符.公共标识符用于标识目录中的条目.公共标识符可以遵循任何格式,但是,常用的格式称为正式公共标识符或FPI.