📜  DTD-元素(1)

📅  最后修改于: 2023-12-03 15:30:34.706000             🧑  作者: Mango

DTD-元素

DTD(Document Type Definition)是一种定义XML和XHTML文档中的合法元素和合法属性的语法。DTD由声明元素、属性、实体和CDTA等各种组成,是XML和XHTML文档中必不可少的一部分。在DTD中定义的元素、属性和实体等信息是用来验证XML和XHTML文档的。DTD可以用DTD文件的形式存在,也可以直接嵌入到XML和XHTML文档中。

DTD声明语法

DTD声明是DTD的核心部分。在DTD声明中,我们可以定义各种元素、属性、实体、CDTA以及注释等信息。

DTD声明的基本语法

DTD声明的基本语法如下:

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

其中,root-element是XML或XHTML文档的根元素,dtd-file-name是DTD文件的文件名。

如果DTD声明直接嵌入到XML和XHTML文档中,则可以省略dtd-file-name参数,如下所示:

<!DOCTYPE root-element [
    定义各种元素、属性、实体、CDTA以及注释等信息
]>
DTD声明的语法要素

在DTD声明中,通常包括以下几种信息:

  • Entity(实体):用于定义一些常量、符号或字符集等。
  • Element(元素):用于定义XML和XHTML文档中的元素。
  • Attribute(属性):用于定义XML和XHTML文档中的属性。
  • CDTA(注释):用于添加注释信息。

下面分别介绍这些要素的语法。

Entity(实体)

DTD中的Entity分为Internal Entity和External Entity两种类型。

Internal Entity(内部实体)

定义内部实体的语法如下:

<!ENTITY entity-name "entity-value">

其中,entity-name是实体名称,entity-value是实体值。

此外,还可以通过引用其他内部实体来定义实体,如下所示:

<!ENTITY entity-name "&其他实体名称;">
External Entity(外部实体)

定义外部实体的语法如下:

<!ENTITY entity-name SYSTEM "external-document-url">

其中,entity-name是实体名称,external-document-url是外部实体的URL。

Element(元素)

在DTD中定义元素需要指定元素名称,元素类型,内容模型以及各个属性。

定义元素的语法如下:

<!ELEMENT element-name 元素类型 (内容模型)>

其中,element-name是元素名称,元素类型指定元素的类型(如EMPTY、PCDATA、 CDATA等),内容模型指定元素的内容模型(如EMPTY、ANY、CDATA、 MIXED等)。

Attribute(属性)

在DTD中定义属性需要指定属性名称,数据类型以及默认值。

定义属性的语法如下:

<!ATTLIST element-name attribute-name attribute-type attribute-default>

其中,attribute-name是属性名,attribute-type是属性类型,attribute-default是属性默认值。

CDTA(注释)

CDTA用于为DTD添加注释,语法如下:

<!-- 注释内容 -->
DTD示例

下面是一个简单的DTD示例,用于定义一个名为“学生”的XML文档,其中学生包含姓名属性和成绩元素。

<!DOCTYPE 学生 [
<!ELEMENT 学生 (姓名, 成绩)>
<!ELEMENT 姓名 (#PCDATA)>
<!ELEMENT 成绩 (#PCDATA)>
<!ATTLIST 姓名 性别 CDATA "男">
]>
<学生>
    <姓名 性别="女">小明</姓名>
    <成绩>90</成绩>
</学生>

在上面的示例中,定义了学生,姓名和成绩三个元素,其中姓名元素还定义了性别属性。同时,定义了性别属性的默认值为“男”。