基础语法:
<!DOCTYPE 根元素名[
元素描述
]>
基础语法:
<!DOCTYPE 根元素名 SYSTEM "外部DTD的URI">
公用DTD是一种特殊的外部DTD。它是由某个权威机构制定,供特定行业或公众使用。
公用DTD通过PUBLIC关键字引入。
公用DTD与外部DTD区别:
-
PUBLIC关键字
-
公用DTD多了个DTD标识名
基础语法:
<!DOCTYPE 根元素 PUBLIC "DTD标识名" "公用DTD的URI">
例子:

dtd的声明与XML声明语法相同
<?xml version="1.0" encoding="UTF-8"?>
XML元素可以为空,可以为文本字符串,可以包含若干子元素,每个子元素又可包含若干子元素。
DTD是通过元素之间的父子关系,描述了整个文件的结构。
基础语法:
<!ELEMENT 元素名 元素类型描述>
基础语法:
<!ATTLIST 属性所属元素 属性名 属性类型 [元素对属性的约束] [默认值]>
实体就是用一个字符串代替另一个字符串。有点像C语言中的宏。
作用:
- 代码复用
- 使用某些特殊符号
- 减少字符输入量
实体分类:
实体定义:
<!ENTITY 实体名 "实体值">
引用实体:
&实体名
只能在DTD中使用的。
语法格式:
参数实体定义:
<!ENTITY % 实体名 "实体值">
参数实体定义,比普通实体多了个**%**
引用参数实体:
%实体名;
注意:
-
在引用参数实体时,必须**%开始,以;**结束。
-
引用参数实体前,必须先定义参数实体,才能引用,顺序不能颠倒。
外部实体的实体值不在定义实体时直接定义,而且是由URI所在的文件中定义
外部实体定义:
<!ENTITY 实体名 SYSTEM "实体值所有文件的URI">
外部实体中还有一种特例:公用实体
其语法与公用DTD类似,都使用PUBLIC关键字及公用标识名
语法格式如下:
<!ENTITY 实体名 PUBLIC "公用实体标识名" "实体值所有文件的URI">
外部实体同样也能定义参数实体
<!ENTITY % 实体名 SYSTEM|PUBLIC ["公用实体标识名"] "实体值所在文件的URI">
SYSTEM及PUBLIC用法与外部实体类似