- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 有效的XML文件—DTD
ENTITY和ENTITIES ENTITY类型的属性包含在DTD的其他位置声明的未解析实体中,它能够把外部二进制数据,即外部未解析的普通实体链接到XML文档。ENTITY类型的属性值是在DTD中声明的未解析常规实体的名称,它与外部数据相连。 【例3-17】在DTD中定义ENTITY类型的属性 ? Xml version =”1.0” encoding =”gb2312” ! DOCTYPE photos [ ! ELEMENT photos (photo*) ! ELEMENT photo EMPTY ! ATTLIST photo source ENTITY #REQUIRED ! ENTITY src SYSTEM “img.gif” ] photos photo source =”src” / /photos DTD实体声明 在XML文档中,可以将经常使用的XML文本区段定义成实体,这样可以快速地将XML文本内容插入到任何需要插入的地方。此外,也可以将外部文件定义成实体,然后将外部数据附加到XML文档。 实体的概念 在XML中,实体一词具有广泛的含义,其基本意思是指与XML文档相关的下列任何形式的存储单元。 有效的XML文档本身。 外部的DTD子集。 定义成DTD中外部实体的外部文档。 在DTD中定义的,用引号括起来的字符。 实体的分类 实体可以通过3种方式进行分类。 (1)通用实体与参数实体 通用实体可以在XML文档中使用。参数实体只能用在DTD文件中,该实体包含了可以被安插在DTD中的XML文档。 (2)内部实体和外部实体 内部实体是实体的内容已经包含在DTD文件中。外部实体的内容是通过URI引用DTD以外的其他文件。 (3)可解析实体与不可解析实体 可解析实体就是可以被解析器解析的数据。不可解析实体就是解析器无法解析的数据,通常指二进制数据。XML文档中不可引用不可解析实体。 内部通用实体-1 内部通用实体是在文档实体内部定义和使用的实体,其内容通常是一段文本字符。这种实体要在DTD中通过DTD语句的定义,可以在XML文档中使用,也可以在DTD中使用。其定义的语法格式如下: ! ENTITY entity_name “entity_value” 其中,! ENTITY为关键字,entity_name为实体名称,entity_value为实体所代替的文本内容。引用内部通用实体以“”开始,以“;”结束。例: entity_name; 内部通用实体-2 当内部通用实体在DTD中引用时,需注意以下两方面: (1)不能在元素及属性的声明中引用内部通用实体,如下面的语句是非法的: ! ENTITY pcd (#PCDATA) ! ELEMENT title pcd (2)在语句中不能出现循环,如下面的语句是非法的。 ! ENTITY thepub “北大pub;” ! ELEMENT pub “出版社thepub:” 外部通用实体 外部通用实体为独立的文件,可被多个文档所引用。正因为每一个完整的XML文档都是一个合法的实体,所以XML通过对外部通用实体的引用,可以在一个XML文档中嵌入另一个XML文档,或者将多个文档组合成一个文档。其定义的语法格式如下: ! ENTITY entity_name “URL” 其中,URL为引用的外部实体的URL地址。引用外部通用实体也与引用内部通用实体的方法一样: entity_name; 参数实体与通用实体的区别 (1)在引用形式上,通用实体的引用为“entity_name;”,而参数实体的引用则为“%entity_name;” (2)在引用范围上,通用实体可在XML文档中引用,也可在DTD中引用,而参数实体只可在DTD中引用。 内部参数实体 内部参数实体是指在独立的内部DTD文档的内部定义和使用的实体,其内容仅能为DTD而非XML文档内容的书写文本。 定义内部参数实体的语法格式如下: ! ENTITY % entity_name “entity_value” 【例3-21】内部参数实体的定义及引用 ! ENTITY % HeadingAlign “left|center|right” !ELEMENT message (Content, Align)+ !ELEMENT Content(# PCDATA) !ELEMENT Align(%HeadingAlign;) 外部参数实体 外部参数实体是指在独立的外部DTD文档的外部定义和使用的实体,外部参数实体用于将多个独立的DTD文档组合成一个大的DTD文档。定义外部参数实体的语法格式如下: ! ENTITY % entity_name “URL” DTD 现状 DTD是验证XML文档有效性的方法之一,其存在
文档评论(0)