我刚刚从Saxon EE 9.6.0.4升级到9.8.0.12,现在在以下代码上,我在调用setContextItem()时遇到异常
.header
我如下创建xpath对象:
transition: height 0.25s ease-in-out;
在这种情况下,我需要做些什么?
谢谢-戴夫
答案 0 :(得分:0)
您需要设置
compiler.SchemaAware = true;
之所以引入检查(和错误消息),是因为在这种情况下,较早的发行版会产生不正确的结果:将SchemaAware
属性设置为false,优化程序会假设所有雾化的内容均为xs:untypedAtomic
,如果输入文档已通过架构验证,则这是不正确的。更改优化程序以消除此假设将导致所有不了解模式的XPath用户(即大多数用户)的性能下降。
请注意,如果您要使用XPath查询类型化的数据,那么最好是XPath编译器有权访问该模式,因此它实际上可以利用输入数据的事实。但是,此操作的范围是有限的,因为XPath API与XQuery中的XQueryCompiler.ContextItemType
属性不等效,它允许静态声明上下文项的类型。因此,在实践中,XPath编译器将无法基于架构信息进行许多静态推断(或检测到许多错误)。