ant.xslt/Xalan引用外部命名空间节点触发数组越界异常咨询
结论:你的用法符合规范,这是Xalan的bug
- 按照XML和XSLT的规范,只要外部文档的默认命名空间URI,和你在XSL里绑定给
xsd前缀的命名空间URI完全一致,使用document('foo.xsd')/xsd:schema/xsd:*这种XPath表达式就是合法的。 - XPath匹配节点看的是命名空间URI,不是节点所在文档用的是默认命名空间还是显式前缀,也不是前缀名称是否一致。只要目标节点的命名空间URI和你用的前缀绑定的URI对得上,这个表达式就该正常选中节点。
- 你这里xsltproc能正常运行,只有Xalan搭配ant.xslt时触发
ArrayIndexOutOfBoundsException,这明显是Xalan在处理这种命名空间场景时的实现漏洞,属于它自身的bug。
内容的提问来源于stack exchange,提问作者ThomasH
相关产品推荐
相关产品推荐

