2012-07-14 38 views
1

我有一個實體定義一個XSL樣式表在它:在包括XSLT文檔應用實體導致錯誤

<!DOCTYPE xsl:stylesheet SYSTEM "entities.dtd"> 

entities.dtd只包含一個定義:

<!ENTITY copy "&#169;"> 

如果我使用&複印件;在具有DOCTYPE聲明的文檔中,一切正常。但是當我包含另一個XSL文檔並嘗試在那裏使用實體時,XSLT處理器說'複製'實體沒有被定義。

如何定義一個全局DTD以在任何包含的XSL樣式表中使用它?

+0

什麼是您的XSLT引擎? – 2012-07-14 14:48:47

+0

libxslt 1.1.26 for PHP – 2012-07-14 14:58:20

+1

回覆:[我如何定義一個全局DTD以在任何包含的XSL樣式表中使用它?]你不能。每個xslt樣式表都是一個單獨的XML文檔,並且沒有定義使用實體的DTD的任何XML文檔格式錯誤。 – 2012-07-14 19:28:00

回答

3

樣式表中的每個模塊都是獨立的XML文檔,並獨立於其他模塊提交給XML解析器。因此它必須是自己的權利,這意味着它必須在其DTD中定義它使用的任何實體。