2012-11-26 47 views
2

在我的Firefox插件中,我有幾個!ENTITIY,我想放在「global.dtd」文件中。然後,在所有的.xul文件中,我想要訪問global.dtd以及.xul文件的特定.dtd文件。如何在單個xul中使用多個dtd文件?

因此,對於code1.xul,我會加載code1.dtd和global.dtd。 然後,對於code2.xul,我會加載code2.dtd和global.dtd。

因此,我可以確保在global.dtd中使用相同的字符串。

我可以這樣做嗎?我如何編寫定義? 你不能放兩個文檔類型。

<!DOCTYPE overlay SYSTEM "chrome://myaddon/locale/global.dtd"> 
<!DOCTYPE overlay SYSTEM "chrome://myaddon/locale/code1.dtd"> 

回答

3

在要在使用global.dtd任何DTD使用參數實體

例如,你想補充一點,以code1.dtdcode2.dtd

<!ENTITY % global SYSTEM "global.dtd"> 
%global; 

你必須調整SYSTEM標識符以指向global.dtd的位置。

+0

所以我必須分別導入每個實體,並且不能導入整個文件? – bgmCoder

+0

@BGM - 使用參數實體,您正在導入整個文件。基本上,實體引用'%global;'被'global.dtd'的全部內容替換。 –

+0

作者Golly,就是這樣!謝謝一個蒲式耳! – bgmCoder

2

您也可以在同一個XUL文件中導入多個DTD。它看起來像這樣:

<!DOCTYPE some_name [ 
    <!ENTITY % firstDTD SYSTEM "chrome://extension/locale/first.dtd"> 
    %firstDTD; 
    <!ENTITY % secondDTD SYSTEM "chrome://extension/locale/pref/second.dtd"> 
    %secondDTD; 
]> 
+0

感謝您的提示! – bgmCoder

相關問題