You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by hsp <pi...@ibest.com.br> on 2007/01/27 01:01:16 UTC

search with axis child support

Hi all; 
I would to get some help with this; 
I need to search nodes that have child nodes of certain type. 
For example, let's suppose I have the following hierarchy of node type: 

x:base 
 | 
 x:file 
 | 
 x:atach 

So, the nodetype x:file has a child of nt:resource mandatory (jcr:content) 
and the x:atach inherits the child definition of your supernode, ok. 
So, I want to know the x:base, or whatever, that have any child node of type 
x:file (and descendents), because x:file and descents have the child 
jcr:content for sure, in xpath or sql, I would appreciate very much. Follow 
some explanation about: 
 ________________ 
 |Node1(x:base)| 
 |______________| 
           | 
           |____________ 
           |       _______|_______ 
           |      |Node2(x:base)| 
           |      |______________| 
 _______|_______ |___________ 
 |Node3(x:base)|     ________|_______ 
 |______________|     |Node4(x:file)   | 
           |                 |______________| 
 _______|________ 
 |Node5(x:atach)| 
 |______________| 

This hierarchy of nodes created can represent my need. So, with a search up 
to Node1, I would like to get Node3 and Node2, because both have child nodes 
like type x:file. 
In time, I need the child nodes of type x:file in results too. 
Hope this could do the right explanation. 
Helio. 



Re: search with axis child support

Posted by Marcel Reutegger <ma...@gmx.net>.
With the new support for the child axis in jackrabbit 1.2.1 you can execute the 
following query:

//element(*, x:base)[jcr:content/@jcr:primaryType = 'x:file' or 
jcr:content/@jcr:primaryType = 'x:atach']

For your usecase the following query would probably be more useful, but is 
currently not supported by jackrabbit:

//element(*, x:base)[jcr:content/element(*, x:file')]

regards
  marcel

ps: for future questions on how to use jackrabbit please write to the jackrabbit 
user list.

hsp wrote:
> Hi all; 
> I would to get some help with this; 
> I need to search nodes that have child nodes of certain type. 
> For example, let's suppose I have the following hierarchy of node type: 
> 
> x:base 
>  | 
>  x:file 
>  | 
>  x:atach 
> 
> So, the nodetype x:file has a child of nt:resource mandatory (jcr:content) 
> and the x:atach inherits the child definition of your supernode, ok. 
> So, I want to know the x:base, or whatever, that have any child node of type 
> x:file (and descendents), because x:file and descents have the child 
> jcr:content for sure, in xpath or sql, I would appreciate very much. Follow 
> some explanation about: 
>  ________________ 
>  |Node1(x:base)| 
>  |______________| 
>            | 
>            |____________ 
>            |       _______|_______ 
>            |      |Node2(x:base)| 
>            |      |______________| 
>  _______|_______ |___________ 
>  |Node3(x:base)|     ________|_______ 
>  |______________|     |Node4(x:file)   | 
>            |                 |______________| 
>  _______|________ 
>  |Node5(x:atach)| 
>  |______________| 
> 
> This hierarchy of nodes created can represent my need. So, with a search up 
> to Node1, I would like to get Node3 and Node2, because both have child nodes 
> like type x:file. 
> In time, I need the child nodes of type x:file in results too. 
> Hope this could do the right explanation. 
> Helio. 
> 
>