将实体声明和实体引用读入 DOM

实体是一个声明,指定了在 XML 中取代内容或标记而使用的名称。实体包含两个部分。首先,必须使用实体声明将名称绑定到替换内容。实体声明是使用 <!ENTITY name "value"> 语法在文档类型定义 (DTD) 或 XML 架构中创建的。其次,在实体声明中定义的名称随后将在 XML 中使用。在 XML 中使用时,该名称称为实体引用。例如,下面的实体声明声明一个名为 publisher 的实体,该实体与“Microsoft Press”的内容关联。




复制代码


<!ENTITY publisher "Microsoft Press">

下面的示例说明如何在 XML 中将此实体声明作为实体引用使用。




复制代码


<author>Fred</author>
<pubinfo>Published by &publisher;</pubinfo>

某些分析器在文档加载到内存中时自动扩展实体。因此,当将 XML 读入内存中时,实体声明将被记住和保存。当分析器以后遇到 &; 字符(用于标识常规实体引用)时,分析器将在实体声明表中查找此名称。引用 &publisher; 被它所表示的内容取代。使用以下 XML,




复制代码


<author>Fred</author>
<pubinfo>Published by &publisher;</pubinfo>

扩展此实体引用并用 Microsoft Press 内容替换 &publisher; 将提供以下扩展的 XML。

输出




复制代码


<author>Fred</author>
<pubinfo>Published by Microsoft Press</pubinfo>

有多种实体。下面的关系图显示实体类型和术语的分类。

Microsoft .NET Framework 的默认 XML 文档对象模型 (DOM) 实现的设置是保留实体引用,并在加载 XML 时不扩展这些实体。这意味着将文档加载到 DOM 中时,将创建包含引用变量 &publisher; 的 XmlEntityReference 节点,其中的子节点表示在 DTD 中声明的实体的内容。

使用 <!ENTITY publisher "Microsoft Press"> 实体声明,下面的关系图显示从此声明创建的 XmlEntity 和 XmlText 节点。

实体引用在扩展与未扩展时的差异使在内存中的 DOM 树中生成的节点不同。生成的节点之间的区别将在保留实体引用和扩展但不保留实体引用这两个主题中讲述。


[url]http://blog.yezhucn.com/wd_xml/86dba977-5cc4-4567-964f-027ffabc47b2.htm[/url]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值