You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Alexander Klimetschek (JIRA)" <ji...@apache.org> on 2010/10/21 20:30:16 UTC

[jira] Updated: (JCR-2797) Xpath: pure descendant-or-self axis does not work

     [ https://issues.apache.org/jira/browse/JCR-2797?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexander Klimetschek updated JCR-2797:
---------------------------------------

    Description: 
A pure descendant-or-self axis "//" does not work, albeit it is defined in JCR 1.0, section 6.6.4.6. Running this query 

/jcr:root/content// 

returns an error: 

Encountered "$" at line 1, column 38. Was expecting one of: "or" ... "and" ... "div" ... "idiv" ... "mod" ... "*" ... "return" ... "to" ... "where" ... "intersect" ... "union" ... "except" ... ... ... "/" ... "//" ... "=" ... "is" ... "!=" ... "<=" ... "<<" ... ">=" ... ">>" ... "eq" ... "ne" ... "gt" ... "ge" ... "lt" ... "le" ... "<" ... ">" ... "-" ... "+" ... "|" ... "[" ... ... ... ... ... "," ... ... ... for statement: for $v in /jcr:root/content// return $v 

It only works in combination with another location step, like /jcr:root/content//* or /jcr:root/content//test. Tested this on a 2.2 snapshot, but I think it was actually never supported so far. 

The use case comes up when searching for a property in a subtree of a certain node, where you want to include a property on that node directly as well, eg. /jcr:root/content//[@my:prop = 'value']

  was:
The descendant-or-self axis "//" with a generic node() step afterwards does not work, albeit it is defined in JCR 1.0, section 6.6.4.6. Running this query

/jcr:root/content//node()

returns all nodes below /content, but not /content itself.

The use case comes up when searching for a property in a subtree of a certain node, where you want to include a property on that node directly as well, eg. /jcr:root/content//node()[@my:prop = 'value']

        Summary: Xpath: pure descendant-or-self axis does not work  (was: Xpath: descendant-or-self:node() does not include self node in result)

Ah, no, node() is wrong, it only selects child nodes then. (But I know that this is supported by Xpath, why else would you have a descendant-or-self axis?)

Going back to original title & description and investigating further.

> Xpath: pure descendant-or-self axis does not work
> -------------------------------------------------
>
>                 Key: JCR-2797
>                 URL: https://issues.apache.org/jira/browse/JCR-2797
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-core, xpath
>            Reporter: Alexander Klimetschek
>
> A pure descendant-or-self axis "//" does not work, albeit it is defined in JCR 1.0, section 6.6.4.6. Running this query 
> /jcr:root/content// 
> returns an error: 
> Encountered "$" at line 1, column 38. Was expecting one of: "or" ... "and" ... "div" ... "idiv" ... "mod" ... "*" ... "return" ... "to" ... "where" ... "intersect" ... "union" ... "except" ... ... ... "/" ... "//" ... "=" ... "is" ... "!=" ... "<=" ... "<<" ... ">=" ... ">>" ... "eq" ... "ne" ... "gt" ... "ge" ... "lt" ... "le" ... "<" ... ">" ... "-" ... "+" ... "|" ... "[" ... ... ... ... ... "," ... ... ... for statement: for $v in /jcr:root/content// return $v 
> It only works in combination with another location step, like /jcr:root/content//* or /jcr:root/content//test. Tested this on a 2.2 snapshot, but I think it was actually never supported so far. 
> The use case comes up when searching for a property in a subtree of a certain node, where you want to include a property on that node directly as well, eg. /jcr:root/content//[@my:prop = 'value']

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.