第一行聲明一個名爲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