DTD中参数实体与普通实体本质不同:参数实体(%name;)仅用于DTD内部定义和引用,解决DTD结构复用;普通实体(&name;)用于XML正文内容替换,解决内容复用,且类型更丰富。

DTD里的参数实体和普通实体,根本不是一回事——它们的“地盘”、写法、用法全都不一样。
使用位置完全不同
普通实体是给XML文档正文用的,比如在©这种地方替换一段文字;参数实体只在DTD内部起作用,XML正文里根本不能出现%xxx;这种写法。
- 普通实体:定义在DTD中,引用在XML内容里(如
&address;) - 参数实体:定义在DTD中,也只允许在DTD里引用(如
%address;),连DOCTYPE内部子集里都不能跨到XML正文去用
定义和引用的语法一眼可辨
看符号就能分清:普通实体没百分号,参数实体一定带%。
- 普通实体定义:
,引用:&address; - 参数实体定义:
,引用:%address;
设计目的也不一样
普通实体解决的是“内容复用”问题,比如把重复地址、版权信息抽出来;参数实体解决的是“DTD结构复用”问题,常用来批量控制元素声明、条件编译(比如配合或做模块开关)。
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~