我對XSL命名空間有以下問題。我使用帶有一個XSL文件和一個XML文件的FOP生成PDF。XSLT和XSLFO命名空間
這裏是我的XML文件:
<?xml version= "1.0" encoding= "ISO-8859-2"?>
<ReportContent>BLABLA<yt:picture src="pic.png"/></ReportContent>
這裏是我的XSL文件:
<?xml version="1.0" encoding="ISO-8859-2"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:yt="http://www.yt.com/text/2"
>
<xsl:template match="/">
<fo:root >
[...]
<fo:flow >
<fo:block> <xsl:apply-templates select='ReportContent'> </xsl:apply-templates></fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>
我需要包括命名空間YT :.當我這樣做在這樣的XML:
<?xml version= "1.0" encoding= "ISO-8859-2"?>
<ReportContent xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:yt="http://www.yt.com/text/2">
BLABLA<yt:picture src="pic.png"/>
</ReportContent>
它完美的作品。
但在現實生活中,我不能將命名空間添加到我的xml(創建xml的方式不允許它)。所以我試圖只寫在xsl上,但它根本不起作用(我試圖將它添加到xsl中的每個標記中,但它不起作用)。
我不明白這整個事情的命名空間是如何工作的?
你能幫我找到在哪裏把命名空間的XSL,所以我沒有得到任何錯誤。
希望我的問題很清楚
在此先感謝。
沒有很好地形成你的XML文檔的XML,關於命名空間:它使用'YT:'前綴未聲明的。所以,它不能成功處理XML文件,這不是XSLT的錯。你用什麼來創建XML文件,允許使用名稱空間前綴,但不允許你創建它們? – LarsH 2011-06-06 16:47:45
「創造他們」我的意思是「宣佈他們」。 – LarsH 2011-06-06 16:58:59
如果我理解的很好,如果xml使用命名空間yt :,聲明必須在xml中,否則它不能被使用? – 2011-06-06 16:59:03