📜  XML-DTD

📅  最后修改于: 2020-11-09 05:29:12             🧑  作者: Mango


XML文档类型声明,通常称为DTD,是一种精确描述XML语言的方法。 DTD根据适当的XML语言的语法规则检查XML文档的词汇和有效性。

XML DTD可以在文档内部指定,也可以保存在单独的文档中,然后单独使用。

句法

DTD的基本语法如下-

TD identifier
[
   declaration1
   declaration2
   ........
]>

在以上语法中,

  • DTD以<!DOCTYPE分隔符开头。

  • 元素告诉解析器从指定的根元素解析文档。

  • DTD标识符是文档类型定义的标识符,它可以是系统上文件的路径,也可以是Internet上文件的URL。如果DTD指向外部路径,则称为外部子集。

  • 方括号[]包含一个可选的实体声明列表,称为内部子集

内部DTD

如果在XML文件中声明了元素,则DTD称为内部DTD。要将其称为内部DTD,必须将XML声明中的独立属性设置为yes 。这意味着,声明的工作独立于外部源。

句法

以下是内部DTD的语法-

element-declarations]>

其中root-element是根元素的名称,而element-declarations是您声明元素的位置。

以下是内部DTD的简单示例-



   
   
   
   
]>

Tanmay Patil TutorialsPoint (011) 123-4567

让我们看一下上面的代码-

开始声明-用以下语句开始XML声明。


DTD-在XML标头之后,紧随其后的是文档类型声明,通常称为DOCTYPE-

DOCTYPE声明在元素名称的开头带有感叹号(!)。 DOCTYPE通知解析器DTD与该XML文档相关联。

DTD主体-DOCTYPE声明后跟DTD的主体,您可以在其中声明元素,属性,实体和符号。

在此声明了几个元素,这些元素构成了文档的词汇表。 <!ELEMENT名称(#PCDATA)>将元素名称定义为“ #PCDATA”类型。这里的#PCDATA表示可解析的文本数据。

结束声明-最后,使用闭括号和闭尖括号( ]> )关闭DTD的声明部分。这有效地结束了定义,此后,XML文档立即跟随。

规则

  • 文档类型声明必须出现在文档的开头(仅在XML标头之前)-不允许在文档中的任何其他位置。

  • 与DOCTYPE声明类似,元素声明必须以感叹号开头。

  • 文档类型声明中的名称必须与根元素的元素类型匹配。

外部DTD

在外部DTD中,元素在XML文件外部声明。通过指定系统属性(可以是合法的.dtd文件或有效的URL)来访问它们。要将其称为外部DTD,必须将XML声明中的独立属性设置为no 。这意味着声明包含来自外部来源的信息。

句法

以下是外部DTD的语法-

其中file-name是扩展名为.dtd的文件。

以下示例显示了外部DTD的用法-



Tanmay Patil TutorialsPoint (011) 123-4567

DTD文件address.dtd的内容如下所示-

种类

您可以使用系统标识符公共标识符来引用外部DTD。

系统识别码

系统标识符使您可以指定包含DTD声明的外部文件的位置。语法如下-

...]>

如您所见,它包含关键字SYSTEM和指向文档位置的URI引用。

公开标识符

公共标识符提供了一种定位DTD资源的机制,其编写方式如下-

如您所见,它以关键字PUBLIC开头,后跟一个专用标识符。公共标识符用于标识目录中的条目。公共标识符可以采用任何格式,但是,常用的格式称为正式公共标识符或FPI