目前我正在使用Eclipses XQuery插件xqdt和XQuery引擎Zorba。
我希望XQuery引擎能够“检查”我的XPath表达式的正确性,例如:如果模式定义允许视频/视频,但视频/图片不允许,则解释器应警告后一个XPath表达式无效。
我试过按照Schema-Aware Queries and Stylesheets教程,但我无法让它工作。我的代码示例使用示例video.xml和教程中的示例video.xsd。
我的第一个被剥离的示例导致了类型错误: 在“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)
使用类型,使用元素而不是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.xsd,videos.xml并将导入架构更改为
import schema default element namespace "myVideos" at "videos.xsd";
,但没有成功。
答案 0 :(得分:1)
XQDT和Zorba都不支持XPath表达式的静态验证。模式。围绕该主题进行了相当多的研究,但是(afaik)没有将它们变成产品,但是。
例如,您可以与http://wam.inrialpes.fr/websolver/处的人联系,了解该项目的状态。