使用xslt:transform()和BaseX转换包含实体的xml节点时遇到麻烦:
let $xsl := doc('xsl/commun.xsl')
return
xslt:transform(<node>ééé</node>, $xsl)
给予
[FODC0002] "" (Line 1): L'entité "eacute" était référencée, mais pas déclarée.
我创建的数据库具有/没有inparsse和/或DTD选项,没有任何更改(options basex)。
xslt:processor()和xslt:version告诉我我使用Java 1.0作为处理器。
这是我的xslt的声明:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:tei="http://www.tei-c.org/ns/1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:output method="html" encoding="UTF-8" omit-xml-declaration="no" exclude-result-prefixes="#all"/>xslt:transform
<xsl:template match="/"/>
我不知道自己在做什么错...我应该在XSL文件中声明要使用的任何实体吗?
答案 0 :(得分:0)
xslt:processor()和xslt:version告诉我我使用JAVA 1.0作为处理器。
如here所述,“如果在类路径中找到了Saxon XSLT处理器的9.x版(saxon9he.jar,saxon9pe.jar,saxon9ee.jar),则将启用XSLT 3.0”
只需在{Basex Folder} / lib / custom中添加saxon9he.jar,就可以了
希望有帮助