为何外部XML文档可在Altova XMLSpy正常解析但SaxonHE10无法解析
问题解答
原因说明
Saxon HE 10 .NET版本默认对远程HTTPS资源的解析存在限制,内置的HTTP请求逻辑未适配部分站点的访问规则,导致无法正常获取资源,因此doc-available()会返回false,后续调用document()也会抛出FODC0002错误。
解决方法
方法1:添加命令行参数(优先尝试)
修改你的调用命令,额外添加-u和--allow-external-dtds:on参数:
"C:\Program Files\Saxonica\SaxonHE10.2N\bin\Transform.exe" -s:test.xml -xsl:test.xsl -u --allow-external-dtds:on
-u参数:告知Saxon将输入路径作为URI规范解析,支持远程HTTP/HTTPS类型的资源--allow-external-dtds:on:开启外部资源访问权限,解除Saxon默认对非本地资源的访问拦截
方法2:预下载资源到本地
如果方法1仍然失效,说明目标站点对请求头、SSL验证有额外限制,你可以先将目标XML资源下载到本地存储,直接在XSLT中调用本地文件路径即可正常运行。
方法3:升级Saxon版本
你当前使用的10.2版本属于较早的10.x分支版本,后续Saxon HE 10.8及更高版本修复了.NET版HTTPS资源解析的多个已知问题,升级到新版本也可以解决该问题。
内容的提问来源于stack exchange,提问作者Volker
相关产品推荐
相关产品推荐

