【发布时间】:2011-05-01 13:47:27
【问题描述】:
任何尝试通过指向其命名空间来使用 Antenna House 的 xsl-fo 扩展(这会给出“找不到页面”顺便说一句)都会导致错误:
命名空间“http://www.w3.org/1999/XSL/Format”中的元素“root”在命名空间“http://www.antennahouse.com/names”中具有无效的子元素“document-info” /XSL/扩展”。预期的可能元素列表:命名空间“http://www.w3.org/1999/XSL/Format”中的“layout-master-set”。
似乎存在某种类型的命名空间引用问题,其中 xsl-fo 命名空间中的元素无法识别扩展元素是有效的子元素?
代码如下:
<xsl:stylesheet version='1.0'
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
xmlns:axf='http://www.antennahouse.com/names/XSL/Extensions'>
<xsl:template match='/root'>
<fo:root xmlns:fo='http://www.w3.org/1999/XSL/Format' xmlns:axf='http://www.antennahouse.com/names/XSL/Extensions'>
<axf:document-info name='title' value='value' />
</fo:root>
</xsl:template>
</xsl:stylesheet>
有趣的是,他们的网站上列出了一个与此处完全相同的示例:http://www.antennahouse.com/xslfo/axf4-extension.htm#axf.document-info
不幸的是,它似乎不适用于他们的 xsl 格式化程序的 v4.3。
【问题讨论】:
-
作为记录,
http://www.antennahouse.com/names/XSL/Extensions之类的命名空间 URI 不必解析为任何内容。 “XML 中的命名空间”建议 (w3.org/TR/REC-xml-names/#ns-decl) 包括“直接用于检索模式(如果存在)不是目标。” (如果它确实解决了某个问题,那么它应该解决的问题是一个完全独立的讨论。)
标签: xsl-fo antenna-house