1.ELEMENT元素用来标记一个元素,或者说声明一个标签,其基本写法如下:
<!ELEMENT 元素名 类型|(内容)>
(1)类型有(#PCDATA)、ANY、EMPTY
#PCDATA 官方给予的解释,被解析的字符数据,不能包含任何 &、< 或者 > 字符;需要使用 &、< 以及 > 实体来分别替换它们。
ANY 直接翻译任意即可,表示可以存放任何合法的数据
EMPTY 空表示该元素为空,及两标签间不允许加任何东西,检查时会提示错误,但本人发现执行时无影响能显示
(2)内容如下
(t1,t2),使用逗号分隔,在父元素中需按顺序出现
(t1|t2),使用竖线分隔,在父元素中二者需出现一个
(#PCDATA|t1|t2)*,使用|*组合分隔,在父元素中三者自由出现0到n次
(t1+),在父元素中至少出现一次
(t1*),在父元素中出现0次到n次
(t1?),在父元素中出现0次或1次
注:可进行组合应用
(3)实例
<!ELEMENT t1 (#PCDATA)>
<!ELEMENT t2 ANY>
<!ELEMENT t3 EMPTY>
<!ELEMENT t4 (t1,t2)>
<!ELEMENT t5 (t1|t2)>
<!ELEMENT t6 (#PCDATA|t1|t2)*>
<!ELEMENT t7 (t1+)>
<!ELEMENT t8 (t1?)>
2.<!ENTITY 实体名称 “实体值”>
(1)作用:声明一个对象
(2)使用:&实体名;
(3)说明:只是一个声明,方便数据修改,“&;”是他的引用方式
3.<!ATTLIST 元素名称
属性名 属性类型 属性默认值(*)>
(1)作用:为一个标签加上属性,可在里面加入多条属性
(2)设置:属性有三种特性
a) #RWQUIRED必须
b) #IMPLIED非必须
c) #FIXED value 固定属性值
(3)类型:属性类型
常用字符、枚举、实体等
备注:本人测试是在eclipse编写的,工具原因每次改变需关闭再打开设置才能生效
下面是一个简单的demo
<?xml version="1.0"?>
<!DOCTYPE Test [
<!ENTITY author "郑亚齐">
<!ENTITY % writer SYSTEM "http://114.115.208.154/dtd/config.dtd">
<!ELEMENT Test (t1,t2,t3,t4,t5,t6,t7,t8,t9)>
<!ELEMENT t1 (#PCDATA)>
<!ELEMENT t2 ANY>
<!ELEMENT t3 EMPTY>
<!ELEMENT t4 (t1,t2)>
<!ELEMENT t5 (t1|t2)>
<!ELEMENT t6 (#PCDATA|t1|t2)*>
<!ELEMENT t7 (t1+)>
<!ELEMENT t8 (t1?)>
<!ELEMENT t9 (#PCDATA)>
%writer;
<!ATTLIST Test
作者 CDATA "&author;">
]>
<Test>
<t1><t4>&author;</t4></t1>
<t2><t3/></t2>
<t3></t3>
<t4><t1></t1><t2></t2></t4>
<t5><t1></t1></t5>
<t6></t6>
<t7><t1></t1></t7>
<t8><author>&writer;©right;</author></t8>
<t9>&a;</t9>
</Test>