我对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