假设我有几个带有名为foo的属性的文件节点。在Jackrabbit中,我用来通过属性值查找那些节点的xpath查询如下:
/jcr:root/content/*[jcr:uuid='9b3d22fc-2354-49a6-afd0-9b672ae5a553']//file[foo = 10] order by @score
我的存储库作为XML的过度简化和原始表示如下所示:
<content>
<formNode jcrUuid="9b3d22fc-2354-49a6-afd0-9b672ae5a553">
<year>
<month>
<day>
<hour>
<min>
<file foo="4"></file>
<file foo="10"></file>
</min>
</hour>
</day>
<day>
<hour>
<min>
<file foo="10"></file>
</min>
<min>
<file foo="5"></file>
</min>
</hour>
<hour>
<min>
<file foo="6"></file>
</min>
</hour>
</day>
</month>
</year>
</formNode>
</content>
现在。如何找到最大值为foo的所有文件节点?有没有人知道如何使用xpath或JCR_SQL2?
我尝试了以下查询但没有成功:
返回提供的jcr:uuid
下的所有文件节点/jcr:root/content/*[jcr:uuid='9b3d22fc-2354-49a6-afd0-9b672ae5a553']//file[not(../file/foo > foo)] order by @score
引发异常
jcr:root/content/*[jcr:uuid='9b3d22fc-2354-49a6-afd0-9b672ae5a553']//file[not(//file/foo > foo)] order by @score
例外:
javax.jcr.query.InvalidQueryException: Unsupported root level query node: org.apache.jackrabbit.spi.commons.query.RelationQueryNode@8fedc
我也尝试了 fn:max 这个功能。但AFAIK这是一个XPATH 2.0功能,JackRabbit 2.2.13不支持,我不得不使用这个版本的JackRabbit。