第一行声明一个名为mathml-qname.module
的参数实体,其值为“INCLUDE
”。
<!ENTITY % mathml-qname.module "INCLUDE">
接下来我要分成几行。
<![%mathml-qname.module; [
<!ENTITY % mathml-qname.mod PUBLIC
"-//W3C//ENTITIES MathML 3.0 Qualified Names 1.0//EN"
"mathml3-qname.mod">
%mathml-qname.mod;
]]>
第一行和最后一行(<![%mathml-qname.module;[
... ]]>
)是有条件的部分 - 即,其可被读取并处理正常,或跳过,这取决于它的关键字的值的部分。关键字出现在两个左方括号之间 - 在这里,它是通过参考实体mathml-qname.module
的引用给出的。如果我们扩大参数实体引用,有条件的部分看起来像这样:
<![INCLUDE [
...
]]>
正如你可能已经猜到,关键字INCLUDE
的含义是:包括阅读,并处理此节。 (其他可能的值为IGNORE
。)
对于名为mathml-qname.mod
的参数实体,在标记部分中有另一个参数实体声明。 PUBLIC
关键字给出实体的公共和系统标识符;为了长话短说,所讨论的实体是用于MathML 3.0限定名的实体的集合,并且它位于相对URI(相对于包含该参数实体声明的资源)的资源是mathml3-qname.mod
。
在mathml-qname.mod
的参数实体声明之后,存在对相同参数实体(%mathml-qname.mod;
)的引用,这会导致实体被读取和处理。
用非正式术语表示:这段代码指定默认情况下,应该查阅外部资源mathml3-qname.mod
。但用户可以通过在其配置中的适当位置以下形式的参数实体声明重写默认:
<!ENTITY % mathml-qname.module "IGNORE">
你可以做,如果你有一组不同的声明为限定名称实体MathML 3.0。
非常感谢。我深信不疑。 – 2013-02-20 09:57:53