第一篇 DTD介绍

1.ELEMENT元素用来标记一个元素,或者说声明一个标签,其基本写法如下:

<!ELEMENT 元素名 类型|(内容)>

(1)类型有(#PCDATA)ANYEMPTY

#PCDATA 官方给予的解释,被解析的字符数据,不能包含任何 &< 或者 > 字符;需要使用 &< 以及 > 实体来分别替换它们。

ANY 直接翻译任意即可,表示可以存放任何合法的数据

EMPTY 空表示该元素为空,及两标签间不允许加任何东西,检查时会提示错误,但本人发现执行时无影响能显示

(2)内容如下

(t1,t2),使用逗号分隔,在父元素中需按顺序出现

(t1|t2),使用竖线分隔,在父元素中二者需出现一个

(#PCDATA|t1|t2)*,使用|*组合分隔,在父元素中三者自由出现0n

(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;&copyright;</author></t8>
<t9>&a;</t9>

</Test>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值