以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 DTD/XML Schema 』  (http://bbs.xml.org.cn/list.asp?boardid=23)
----  [求助]DTD 中实体问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=23&rootid=&id=58142)


--  作者:boyzmother
--  发布时间:1/17/2008 11:55:00 AM

--  [求助]DTD 中实体问题
求教:DTD中的实体是什么意思。有什么用,以及怎么去使用它。
谢谢 http://bbs.xml.org.cn/emot/em01.gif
http://bbs.xml.org.cn/emot/em01.gif
--  作者:boyzmother
--  发布时间:1/17/2008 5:59:00 PM

--  
自顶下
--  作者:enyaxp
--  发布时间:1/17/2008 11:48:00 PM

--  
DTD实体你可以理解为一种宏定义,这种定义用于文本或特殊字符的引用,算是一种快捷方式。

实体声明分内部声明和外部声明两种。

内部实体声明:语法<!ENTITY 实体名称 “实体值”>

例如在DTD中定义实体: <!ENTITY copyright "Copyright Microsoft">
则在XML中可引用该实体:<COPYRIGHT>&copyright;</COPYRIGHT>
这里 &copyright; 和 Copyright Microsoft 等价。

外部实体声明:语法<!ENTITY 实体名称 SYSTEM "URI/URL">

例如在DTD中定义实体: <!ENTITY copyright SYSTEM "http://www.microsoft.com/test.dtd">
则在XML中可引用该实体:<COPYRIGHT>&copyright;</COPYRIGHT>
这里 &copyright; 和 http://www.microsoft.com/test.dtd 等价。



--  作者:little90000
--  发布时间:1/18/2008 12:06:00 PM

--  
没有实体光有你能行吗,如果已经有引用就行,没有的话自己标记一个.
--  作者:boyzmother
--  发布时间:1/18/2008 3:17:00 PM

--  
感谢 enyaxp 的回复,十分清楚.
那这个<!ENTITY % ContentType "CDATA">实体中的%代表的是什么意思呢?
--  作者:enyaxp
--  发布时间:1/18/2008 10:59:00 PM

--  

这句是参数实体引用,参数实体引用在DTD中声明的方法与通用实体类似,只是在实体名前加一百分号。句法结构如下:
  <!ENTITY % name "replacement text">
这种引用仅限于在DTD文档中,不能出现在XML内容中。

例如在DTD中定义参数实体: <!ENTITY %ERH "(#PCDATA)">
则在DTD中可引用该实体:<!ELEMENT title %ERH;>

这里 %ERH; 和 (#PCDATA)等价。

以下是引用boyzmother在2008-1-18 15:17:00的发言:
感谢 enyaxp 的回复,十分清楚.
那这个<!ENTITY % ContentType "CDATA">实体中的%代表的是什么意思呢?


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
6,093.750ms