- 1、本文档共125页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
XML基础教程第3章
* 3.6 DTD中的实体 W3C允许我们在DTD文件中定义实体,然后与该DTD文件关联的XML文件可以通过实体引用使用该实体。 实体分为普通实体和参数实体。 普通实体简称为实体。实体在DTD文件中定义,和该DTD关联的XML文件通过实体引用来使用实体,解析器在解析标记的数据时,将用实体的内容替换实体引用。 参数实体在DTD文件中定义,只能由DTD文件本身通过实体引用使用参数实体,参数实体和关联的XML无关。 * 1.实体 实体是指可以被XML文件在标记的内容中通过实体引用使用的实体。 实体又分为内部实体和外部实体。 内部实体就是实体的内容已经包含在DTD文件本身中。 外部实体是指实体的内容是DTD文件以外的其他文件。 * (1)内部实体的声明 声明格式: !ENTITY 实体的引用 “实体的内容” 其中实体内容是文本数据,该文本数据不要含有左尖括号,右尖括号,与符号,单引号和双引号,XML对DTD进行语法分析时,会将实体内容和引用该实体的XML文件放在一起做句法分析。所以内部实体的内容如果想使用这些特殊字符,应当使用预定义实体引用来使用这些字符。 例如: !ENTITY hello “How are you,amp;你好” XML文件可以用“实体的引用;”引用该实体。比如: hello; 解析器解析数据时,首先将 “hello;”替换为“How are you,amp;你好”,最后解析出的数据是:“How are you,你好”。 * 例子15 dtdFile.dtd: !ENTITY hello How are you !ENTITY CCTV 中国amp;lt;lt;amp;中央电视台 !ENTITY CCTV5 中国amp;中央amp;电视台lt;体育频道gt; !ELEMENT root ANY !ELEMENT speak ANY !ELEMENT hi (#PCDATA) Cha3_15.xml ?xml version=1.0 encoding=UTF-8 ? !DOCTYPE root SYSTEM dtdFile.dtd root speak 我正在看CCTV;上的节目, 喜欢CCTV5;。 /speak hi hello;CCTV; /hi /root * (2)外部实体的声明 外部实体是指实体的内容是DTD文件以外的其它文件。 外部实体的格式分为两种:SYSTEM格式和PUBLIC格式。 SYSTEM格式的意义是:实体是一个外部文件,该外部文件由个人或工作小组所定义且认可; SYSTEM格式: !ENTITY 实体的引用 SYSTEM “实体的URI” 例如: !ENTITY java SYSTEM “A.java” 如何使用: XML文件可以用“实体的引用;”引用该外部实体。 比如: java; 解析器解析标记中的数据时,将 “java;”替换为文件“A.java”的内容。 * (2)外部实体的声明 PUBLIC格式意义是:实体是一个外部文件,该外部文件由已经得到某一领域的认可,是经过许多人讨论得到认可的文件。 PUBLIC格式: !ENTITY 实体的引用 PUBLIC FPI “实体的URI” 例如: !ENTITY jsp PUBLIC “-//ISO09//ME//JSP FILE//EN” “6/A.jsp ” 如何使用: XML文件可以用“实体的引用;”引用该外部实体。 比如: jsp; 解析器解析标记中的数据时,将 “jsp;”替换为服务器6上文件“A.jsp”的内容。 * 注意 实体声明中的URI必须是一个有效的资源。如果URI是一个文件的名字,该文件必须和当前DTD文件在同一目录中,如果URI是一个链接地址,该链接地址必须是可以访问的。 对于SYSTEM格式和PUBLIC格式的实体声明,实体的URI也称为实体的“systemId”。对于PUBLIC格式的实体声明,正式公用标识符FPI也称做实体publicId。FPI格式为“-//ISO认证//单位名称//说明//所用语言”。FPI中不可以含有非ASII码字符。 需要特别注意的是,XML对DTD进行语法分析时,会对URI资源的实际内容进行解析处理,即将文件的实际内容和引用该文件的XML文件放在一起做句法分析,如果外部实体的内容大量含有等,就可能使XML出现错误。 * 例子16 dtdFile.dtd !ENTITY java SYSTEM A.java !ENTITY txt PUBLIC
文档评论(0)