DTD - 元素

w3school 在线教程

## DTD 教程

- DTD 教程
- DTD 简介
- DTD 构建模块
- DTD 元素
- DTD 属性
- DTD 实体
- DTD 验证
- DTD 实例
- DTD 总结

## 建站手册

- 网站构建
- 万维网联盟 (W3C)
- 浏览器信息
- 网站品质
- 语义网
- 职业规划
- 网站主机

## 关于 W3School

## 帮助 W3School

## 广告刊例

# DTD - 元素

- DTD 构建模块
- DTD 属性

在一个 DTD 中，元素通过元素声明来进行声明。

## 声明一个元素

在 DTD 中，XML 元素通过元素声明来进行声明。元素声明使用下面的语法：

    <!ELEMENT 元素名称 类别>

或者

    <!ELEMENT 元素名称 (元素内容)>

## 空元素

空元素通过类别关键词EMPTY进行声明：

    <!ELEMENT 元素名称 EMPTY>

### 例子：

    <!ELEMENT br EMPTY>

### XML例子：

    <br />

## 只有 PCDATA 的元素

只有 PCDATA 的元素通过圆括号中的 #PCDATA 进行声明：

    <!ELEMENT 元素名称 (#PCDATA)>

### 例子：

    <!ELEMENT from (#PCDATA)>

## 带有任何内容的元素

通过类别关键词 ANY 声明的元素，可包含任何可解析数据的组合：

    <!ELEMENT 元素名称 ANY>

### 例子：

    <!ELEMENT note ANY>

## 带有子元素（序列）的元素

带有一个或多个子元素的元素通过圆括号中的子元素名进行声明：

    <!ELEMENT 元素名称 (子元素名称 1)>

或者

    <!ELEMENT 元素名称 (子元素名称 1,子元素名称 2,.....)>

### 例子：

    <!ELEMENT note (to,from,heading,body)>

当子元素按照由逗号分隔开的序列进行声明时，这些子元素必须按照相同的顺序出现在文档中。在一个完整的声明中，子元素也必须被声明，同时子元素也可拥有子元素。"note" 元素的完整声明是：

    <!ELEMENT note (to,from,heading,body)>
    <!ELEMENT to      (#PCDATA)>
    <!ELEMENT from    (#PCDATA)>
    <!ELEMENT heading (#PCDATA)>
    <!ELEMENT body    (#PCDATA)>

## 声明只出现一次的元素

    <!ELEMENT 元素名称 (子元素名称)>

### 例子：

    <!ELEMENT note (message)>

上面的例子声明了：message 子元素必须出现一次，并且必须只在 "note" 元素中出现一次。

## 声明最少出现一次的元素

    <!ELEMENT 元素名称 (子元素名称+)>

### 例子：

    <!ELEMENT note (message+)>

上面的例子中的加号声明了：message 子元素必须在 "note" 元素内出现至少一次。

## 声明出现零次或多次的元素

    <!ELEMENT 元素名称 (子元素名称*)>

### 例子：

    <!ELEMENT note (message*)>

上面的例子中的星号声明了：子元素 message 可在 "note" 元素内出现零次或多次。

## 声明出现零次或一次的元素

    <!ELEMENT 元素名称 (子元素名称?)>

### 例子：

    <!ELEMENT note (message?)>

上面的例子中的问号声明了：子元素 message 可在 "note" 元素内出现零次或一次。

## 声明“非.../既...”类型的内容

### 例子：

    <!ELEMENT note (to,from,header,(message|body))>

上面的例子声明了："note" 元素必须包含 "to" 元素、"from" 元素、"header" 元素，以及非 "message" 元素既 "body" 元素。

## 声明混合型的内容

### 例子：

    <!ELEMENT note (#PCDATA|to|from|header|message)*>

上面的例子声明了："note" 元素可包含出现零次或多次的 PCDATA、"to"、"from"、"header" 或者 "message"。

- DTD 构建模块
- DTD 属性