你一定会发现不同的xml文档及其不同的语法都具有各自的特点。当在你的文档中包含这些不同语法时,你可能需要以一种抽象的方式来描述它们。其中一种方法为使用通用xml实体来表示普通的、可重新使用的xml组件。
实体(Entity)是一个相对模糊的术语,它主要用于表面上很含糊的程序中,其用于指代xml文档中的特定类别。
一个实体为xml文档中的一些被命名的数据。有些实体你应该很熟悉,比如&(这一实体用于代表一个&记号)。当这一实体使用不正确时会产生各种问题。
分类xml实体的方式有三种,如表A所示。实体使用“实体引用(entity references)”来代表xml文档内容。&记号就是一种最基本的表示,它后面跟随实体名称,接着是一个分号(;)。在以上例子中,我们引用&作为一个实体,实体的名称为amp,其代表的数据为一个&字符。
被剖析的实体 |
没有被剖析的实体 |
内部 |
外部 |
常规 |
参量 |
xml部析器将实体引用解释为可替代的文本。这一过程的一部分是使用DTD来查找内部被剖析实体的定义。你的实体有可能没有被定义但却在DTD中被引用,在这种情况下,它们是外部实体。当SAX engines剖析文档时,它们需要解析这些外部的实体,你也可以使用EntityResolver接口来截取这一过程。