0

目前我正在使用带有 XQuery 引擎Zorba的 Eclipses XQuery 插件xqdt

我希望 XQuery 引擎“类型检查”我的 XPath 表达式的正确性,例如,如果架构定义视频/视频是允许的,但视频/图片不是,解释器应该警告后一个 XPath 表达式无效。

我尝试遵循Schema-Aware Queries and Stylesheets教程,但我无法让它工作。我的代码示例使用教程中的示例video.xml和示例video.xsd

我的第一个精简示例导致类型错误: import schema default element namespace "" at "videos.xsd";

1   import schema default element namespace "" at "videos.xsd";
2
3   declare variable $input as schema-element(result) := doc('videos.xml')/*;
4   for $v in $input/videos/video
5   return $v
 ...\XQqueryProject\videos.xq>:3,1: type error [err:XPTY0004]: 
element(result, xs:untyped) can not be treated as type schema-element(result)

使用类型,使用 element 而不是 schema-element 不会警告我我拼写错误的 video2 路径并且不会打印任何内容:

import schema default element namespace "" at "videos.xsd";

declare variable $input as element(result) := doc('videos.xml')/*;
for $v in $input/videos/video2
return $v

问:有人可以为我提供一个 $input/videos/video2 失败的最小工作示例吗?

更新: 我已将命名空间添加到videos.xsdvideos.xml并将导入架构更改为

import schema default element namespace "myVideos" at "videos.xsd";

,但没有成功。

4

1 回答 1

1

XQDT 和 Zorba 都不支持 XPath 表达式的静态验证。模式。围绕该主题已经/曾经进行过相当多的研究,但是(afaik)没有一个已经将其制成产品。

例如,您可以通过http://wam.inrialpes.fr/websolver/与这些人取得联系,了解该项目的状态。

于 2014-02-14T19:52:39.663 回答