`
小嘴冰凉
  • 浏览: 456892 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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

    博客分类:
  • j2se
阅读更多
实体是一个声明,指定了在 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 树中生成的节点不同。生成的节点之间的区别将在保留实体引用和扩展但不保留实体引用这两个主题中讲述。


http://blog.yezhucn.com/wd_xml/86dba977-5cc4-4567-964f-027ffabc47b2.htm
分享到:
评论

相关推荐

    Xml文件dom解析

    这是使用DOM解析XML的关键步骤,我们将XML文件读入一个`Document`对象: ``` File inputFile = new File("beans.xml"); Document doc = builder.parse(inputFile); ``` 6. **获取根元素**: 一旦解析完成,...

    java 解析xml

    - **原理**:DOM 解析器会将整个 XML 文档读入内存,并构建一个完整的树形结构(节点树)。这使得用户可以通过标准的 DOM 接口操作这个树结构,包括查询节点、修改节点等。 - **优点**: - 易于使用:提供了丰富的 ...

    《XML与Web 数据管理》习题

    4. **XML声明属性**:XML声明通常包含版本信息(如`&lt;?xml version="1.0"?&gt;`),编码声明(如`encoding="UTF-8"`)和 standalone 属性(表明文档是否独立于外部实体)。 5. **字符集**:XML常用的字符集包括UTF-8、...

    山东大学软件学院大三下web数据管理资料

    **信息抽取**是将非结构化信息转化为结构化数据的过程,关键技术和方法包括命名实体识别(NER)、句法分析、篇章分析和推理,以及知识获取。在Web信息抽取中,是从半结构化的Web文档中提取所需数据。 在复习时,...

    神州数码面试总结

    - **StAX**:流式API,性能介于DOM和SAX之间,适用于大文件处理。 #### 4. Final、Finally、Finalize的区别 - **final**:用于声明变量、方法或类不可变。 - **finally**:异常处理中的块,确保资源释放等。 - **...

    J2EE面试题希望对你有帮助

    - **DOM**:文档对象模型,一次性将XML文件读入内存,适用于小文件。 - **JDOM**:Java DOM的替代方案,更简洁易用。 ### WebService - WebService是一种标准接口,允许不同站点间的信息共享,基于HTTP、XML、SOAP...

    结构图JS版本

    读入数据后,脚本中的解析器将对数据进行处理,转换成内部的数据结构,为后续的渲染工作做准备。 渲染部分是结构图展示的关键环节,`organization.js` 可能使用了SVG(Scalable Vector Graphics)技术,因为SVG是一...

    java面试题

    - **DOM**:Document Object Model,将整个XML文档读入内存构建一棵DOM树,适用于小文档。 - **SAX**:Simple API for XML,逐行读取文档,适合大文件。 - **StAX**:Streaming API for XML,基于事件驱动的流式处理...

    9.7. xml.etree.ElementTree — ElementTree XML的接口(翻译).pdf

    通过使用ElementTree类,可以将一个XML文档读入内存,进行遍历和编辑,然后再将其写回到文件或输出到其他地方。 由于xml.etree.ElementTree是一个轻量级的XML解析库,它适用于处理中小规模的XML文档。然而,需要...

    java面试试题

    - DOM 解析器将整个 XML 文档读入内存,并建立文档对象模型,适合于小型文件。 - StAX 结合了 SAX 和 DOM 的优点,支持事件驱动和流式处理,既节省内存又高效。 6. **连接池管理:** - 连接池是一种用于管理...

Global site tag (gtag.js) - Google Analytics