首页 > 解决方案 > BaseX 9.1.2:xslt:transform 上的实体问题

问题描述

我在使用 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.

我创建了我的数据库,有/没有 intparse 和/或 DTD 选项,没有任何更改(选项 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 文件中声明我想使用的任何实体吗?

标签: xsltbasex

解决方案


xslt:processor() 和 xslt:version 告诉我正在使用 JAVA 1.0 作为处理器。

如此处所述 “如果在类路径中找到 Saxon XSLT 处理器(saxon9he.jar、saxon9pe.jar、saxon9ee.jar)的 9.x 版,则将启用 XSLT 3.0”

只需在 {Basex 文件夹}/lib/custom 中添加saxon9he.jar就可以了

希望有所帮助


推荐阅读