我有一个关于FLWOR连接的问题。下面是对我的XML的概述。
<user>
<user-id>...</user-id>
<username>...</username>
<password>...</password>
<!-- By schema file, there could be unbounded role-ids -->
<role-id>...</role-id>
<role-id>...</role-id>
<role-id>...</role-id>
</user>
<role>
<role-id>...</role-id>
<name>...</name>
<!-- By schema file, there could be unbounded permission-ids -->
<permission-id>...</permission-id>
<permission-id>...</permission-id>
<permission-id>...</permission-id>
</role>
<permission>
<permission-id>...</permission-id>
<resource-id>...</resource-id>
<operation-id>...</operation-id>
</permission>我有一个FLWOR表达式query,它应该返回给定用户的一系列权限。这应该很简单,但是我不明白为什么每次运行查询时都会得到一个空的ResourceSet。
for $i in collection("data/rbac/users")/user[user-id="..."]/role-id
for $j in collection("data/rbac/roles")/roles/role
for $k in collection("data/rbac/permissions")/permission
where $i = $j/role-id and exists($j/permission-id[. = $k/permission-id])
return $k任何建议都是非常感谢的。谢谢,
Igor
发布于 2012-05-24 19:22:27
很难说,因为源XML数据的结构并不完全清楚。但似乎有一个小的不一致- XQuery的第二行假定集合data/rbac/roles中有一个名为roles的节点。也许第二行应该看起来像这样
for $j in collection("data/rbac/roles")/role
?只是猜测..。
发布于 2012-05-24 17:59:56
您的XQuery似乎与您提供的数据不匹配。例如,role-id不是user的子元素,而且似乎也没有roles元素。在给定所提供的XML的情况下,此查询可能会返回一个空资源集。
https://stackoverflow.com/questions/10735156
复制相似问题