返回首页
当前位置: 主页 > 编程语言 > XML教程 >

DTD-语法

时间:2020-07-18 14:19来源:电脑教程学习网 www.etwiki.cn 编辑:小山哥

可以在文档内部指定XML DTD,也可以将其保存在单独的文档中,然后可以将该文档链接到DTD文档以使用它。

句法

DTD的基本语法如下-

<!DOCTYPE element DTD identifier
[
   declaration1
   declaration2
   ........
]>

在上面的语法中-

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

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

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

  • 方括号[]的封装称为实体声明的可选列表内部子集

内部DTD

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

句法

内部DTD的语法如下所示-

<!DOCTYPE root-element [element-declarations]>

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

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

<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?>

<!DOCTYPE address [
   <!ELEMENT address (name,company,phone)>
   <!ELEMENT name (#PCDATA)>
   <!ELEMENT company (#PCDATA)>
   <!ELEMENT phone (#PCDATA)>
]>

<address>
   <name>Tanmay Patil</name>
   <company>TutorialsPoint</company>
   <phone>(011) 123-4567</phone>
</address>

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

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

<?xml version = "1.0" encoding = "UTF-8" standalone = "yes" ?>

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

<!DOCTYPE address [

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

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

<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone_no (#PCDATA)>

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

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

规则

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

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

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

外部DTD

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

句法

以下是外部DTD的语法-

<!DOCTYPE root-element SYSTEM "file-name">

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

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

<?xml version = "1.0" encoding = "UTF-8" standalone = "no" ?>
<!DOCTYPE address SYSTEM "address.dtd">

<address>
  <name>Tanmay Patil</name>
  <company>TutorialsPoint</company>
  <phone>(011) 123-4567</phone>
</address>

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

<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone (#PCDATA)>

种类

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

系统识别码

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

<!DOCTYPE name SYSTEM "address.dtd" [...]>

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

公开标识符

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

<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Address Example//EN">

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

------分隔线----------------------------
标签(Tag):
------分隔线----------------------------
推荐内容
  • DTD-组件

    本章将从DTD角度讨论XML组件。 DTD基本上将包含以下XML组件的声明- 元件 属性 实体 元...

  • DTD-概述

    XML文档类型声明,通常称为DTD,是一种精确描述XML语言的方法。 DTD根据适当的XML语言...

  • H2数据库-备份

    BACKUP是用于将数据库备份放入单独的.zip文件中的命令。 对象没有被锁定,并且在进行...

  • H2数据库-更新

    UPDATE查询用于更新或修改表中的现有记录。 我们可以将WHERE子句与UPDATE查询一起使用...

  • H2数据库-插入

    SQL INSERT语句用于将新的数据行添加到数据库中的表。 句法 以下是INSERT INTO语句的...

  • H2数据库-选择

    Select命令用于从一个或多个表中获取记录数据。 如果我们设计一个选择查询,那么它将...

猜你感兴趣