You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solr 8.8导入XML时出现Illegal attribute 'xpath-default-namespace'错误原因问询

错误根本原因
  • Solr 8.8默认使用JDK内置的Xalan XSLT处理器,该处理器仅支持XSLT 1.0规范,你编写的XSLT文件中使用的xpath-default-namespace属性是XSLT 2.0版本才新增的特性,Xalan无法识别该属性,因此直接抛出非法属性的报错。
  • 你的XSLT文件显式声明了version="2.0",还用到了replace()、string-join()等XSLT 2.0专属函数,就算临时删除xpath-default-namespace属性,后续执行过程中也会因为函数不存在触发新的报错。
可选修复方案
  • 方案一:调整XSLT为XSLT 1.0兼容写法
    1. 移除xpath-default-namespace属性,给OAI-PMH的命名空间手动定义前缀,例如增加声明xmlns:oai="http://www.openarchives.org/OAI/2.0/",所有XPath路径中的OAI节点都加上oai:前缀,比如把原来的OAI-PMH/ListRecords/record改成oai:OAI-PMH/oai:ListRecords/oai:record。
    2. 把XSLT 2.0专属函数替换为1.0支持的实现:简单字符串替换可以用translate()替代replace(),字符串拼接可以用<xsl:for-each>循环拼接替代string-join()。
  • 方案二:为Solr集成Saxon处理器
    把你本地使用的Saxon 9.5.1.6 HE对应的jar包放到Solr安装目录下的server/lib/ext文件夹中,重启Solr后会自动优先使用Saxon作为XSLT处理器,无需修改现有XSLT代码即可正常运行。

内容的提问来源于stack exchange,提问作者Asatur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 17:03:03