Hi Siggi

I've tried this out under 2.1.0 with SaxonB-8.1 and regardless of the
presence or absence of saxon8-jdom.jar I can now repro the same error
you see - the ArrayIndexOutOfBoundsException.

The problem appears to be the reference to $this in the XPath - if I
take that out then I get valid results.

I've tried setting things a little differently in the context object
that we pass into the Saxon code - but unfortunately nothing that I did
made any difference and I don't know enough about Saxon to fix it.

So either you can upgrade to the latest XmlBeans code and use
SaxonB-8.6.1 - in that case I don't see this issue and you can use the
$this variable fine. (Unfortunately you cannot use XmlBeans 2.1.0 with
SaxonB-8.6.1 - they changed the names of some of the Saxon classes - so
you need revision 378309 or later).

Or you can do something like the following:

1. navigate to the FRAME element of interest
2. then do frameXmlObj.selectPath(".//@idRef") to get back an array of
XmlObjects containing just the idRef values within that FRAME element
3. get the text value of the idRef attributes by calling (on each
element of the array)

    XmlCursor subCursor = xmlObj.newCursor(); 
    subCursor.getTextValue(); 
    subCursor.dispose();

4. put all such values into a HashSet (to remove duplicates)
5. foreach idRef string from the HashSet do

    xPath = "//[EMAIL PROTECTED]'" + idRef + "']";
    XmlObject[] results = wholeDocXmlObj.selectPath(xPath);

(maybe there's a way to say "@id is one of a list of values" in XPath -
in which case that would be quicker than the approach I've suggested
above - I don't know enough XPath to know).

6. Combine the results into 1 XmlObject[] array

All I'm really doing here is using XmlBeans to evaluate the list of
@idRef attributes instead of XPath.

This is obviously not as nice as just setting up the XPath to do it for
you - but I can't seem to find a way to make Saxon 8.1 recognize the
$this variable without the ArrayIndexOutOfBoundsException.

Cheers,

Lawrence

> -----Original Message-----
> From: Lawrence Jones
> Sent: Thursday, April 06, 2006 11:17 AM
> To: [email protected]
> Subject: RE: selectPath with FilterExpression using $this
> 
> Hi Siggi
> 
> The version I've been trying this out on is the latest XmlBeans
version
> built from source which, as of revision 378309, downloads
SaxonB-8.6.1.
> It gets downloaded from
> http://easynews.dl.sourceforge.net/sourceforge/saxon/saxonb8-6-1.zip
> 
> Prior to that (and for version 2.1.0 of XmlBeans) we were downloading
> SaxonB-8.1 from
> http://easynews.dl.sourceforge.net/sourceforge/saxon/saxonb8-1.zip.
> 
> And, as you say, we only extracted saxon8.jar from that zip (although
I
> don't think that we actually include saxon8.jar in the XmlBeans zip -
> instead I think there are instructions to download it yourself if you
> want to). Also, as you say, saxon8-jdom.jar is available in that zip
and
> it can't hurt to try putting it on the classpath and see if it makes a
> difference to you.
> 
> Unfortunately I'm not a Saxon expert - so I don't know what the cause
of
> the ArrayIndexOutOfBoundsException is but I hope the above helps.
> 
> Cheers,
> 
> Lawrence
> 
> > -----Original Message-----
> > From: Siegfried Baiz [mailto:[EMAIL PROTECTED]
> > Sent: Thursday, April 06, 2006 3:30 AM
> > To: [email protected]
> > Subject: Re: selectPath with FilterExpression using $this
> >
> > Lawrence,
> >
> > thanks for your very interest! I've tried to do exactly like you.
> >
> > For your first approach
> >     xmlObj.selectPath("//FUNCTION[.//[EMAIL PROTECTED]'sig4']]");
> > I get realy good results.
> >
> > ---------------
> >
> > Trying to fit the second use-case
> > ("finding which SIGNAL nodes are referred to by a given  FRAME")
> > by launching
> >     frameXmlObj.selectPath("//[EMAIL PROTECTED]//@idRef]");
> > unfortunatlly keeps on ending in the following exception:
> >
> >     java.lang.ArrayIndexOutOfBoundsException: 1
> >     at
> >
>
net.sf.saxon.expr.XPathContextMajor.setLocalVariable(XPathContextMajor.j
> av
> > a:213)
> >     at
net.sf.saxon.expr.LetExpression.iterate(LetExpression.java:60)
> >     at
> net.sf.saxon.xpath.XPathEvaluator.evaluate(XPathEvaluator.java:183)
> >     at
> >
>
org.apache.xmlbeans.impl.xpath.saxon.XBeansXPath.selectNodes(XBeansXPath
> .j
> > ava:95)
> >     at
> >
>
org.apache.xmlbeans.impl.xpath.saxon.XBeansXPath.selectPath(XBeansXPath.
> ja
> > va:105)
> >     at
> >
>
org.apache.xmlbeans.impl.store.Path$SaxonPathImpl$SaxonPathEngine.next(P
> at
> > h.java:496)
> >     at
> org.apache.xmlbeans.impl.store.Cursor._toSelection(Cursor.java:919)
> >     at
> >
>
org.apache.xmlbeans.impl.store.Cursor._toNextSelection(Cursor.java:908)
> >     at
> >
>
org.apache.xmlbeans.impl.store.Cursor._hasNextSelection(Cursor.java:900)
> >     at
> >
>
org.apache.xmlbeans.impl.store.Cursor.hasNextSelection(Cursor.java:2640)
> >     at
> >
>
org.apache.xmlbeans.impl.values.XmlObjectBase.selectPath(XmlObjectBase.j
> av
> > a:432)
> >
> > ---------------
> >
> > Maybe the problem is caused - as you mentioned earlier - by the
> missing
> > saxon8-dom.jar.
> > In the actual XML-Beans-Release I found only saxon8-jdom.jar but not
> > saxon8-dom.jar.
> > ( i.e. neither in xmlbeans-2.1.0.zip nor in the corresponding
> > xmlbeans-current-src.zip)
> > Do you know from where to get it?
> >
> > Cheers
> >
> > Siggi
> >
> > --------------------------------------------------
> > Dipl.-Math. (Univ.)
> > Siegfried Baiz
> > Sulzer GmbH
> > Frankfurter Ring 162, D-80807 Muenchen
> > Tel.: +49 89 31858-264
> > Fax : +49 89 31858-599
> > mailto:[EMAIL PROTECTED]
> > --------------------------------------------------
> >
> >
> >
> > Lawrence Jones wrote:
> >
> > >Hi Siggi
> > >
> > >I had a try at this and it seemed to work to me.
> > >
> > >To select, say, all FUNCTION nodes in the whole document which
> contain
> > >at least one SIGNAL-REF element whose idRef attribute has a
> particular
> > >value (say 'sig4'), parse the document into an XmlObject and call
(on
> > >that same XmlObject):
> > >
> > >xmlObj.selectPath("//FUNCTION[.//[EMAIL PROTECTED]'sig4']]");
> > >
> > >You will get an array of FUNCTION nodes. If you wanted only the
> > >SIGNAL-REF nodes which match 'sig4' you would do something like
this:
> > >
> > >xmlObj.selectPath("//FUNCTION//[EMAIL PROTECTED]'sig4']");
> > >
> > >Similarly for FRAME nodes.
> > >
> > >Finding which SIGNAL nodes are referred to by a given (e.g.) FRAME
is
> > >slightly different. Having gotten the XmlObject that represents the
> > >whole document first create an XmlCursor using newCursor(), then
> > >navigate to the FRAME of interest. Then do cursor.getObject(). That
> will
> > >give you an XmlObject representing that FRAME element. You can then
> > >call:
> > >
> > >frameXmlObj.selectPath("//[EMAIL PROTECTED]//@idRef]");
> > >
> > >This will return all nodes within the whole document having an
> attribute
> > >called id which has the same value as any of the idRef attributes
in
> > >_any descendant_ of this node (this node being the FRAME node).
> > >
> > >If you want to be even more precise you could do something like
this:
> > >
> > >frameXmlObj.selectPath("//[EMAIL PROTECTED]//@idRef]");
> > >
> > >which will return all SIGNAL nodes within the whole document having
> an
> > >attribute called id which has the same value as any of the idRef
> > >attributes in _any descendant_ of this node (this node being the
> FRAME
> > >node).
> > >
> > >(If you wanted to, you could adopt the same approach to the first
> > >example I gave and replace the hardcoded 'sig4' with navigating to
> the
> > >SIGNAL node and passing in $this/@id instead of 'sig4').
> > >
> > >Hope that helps. As I say I'm not really an XPath expert and this
is
> > >really becoming more about XPath than about XmlBeans.
> > >
> > >Cheers,
> > >
> > >Lawrence
> > >
> > >
> > >
> > >>-----Original Message-----
> > >>From: Siegfried Baiz [mailto:[EMAIL PROTECTED]
> > >>Sent: Tuesday, April 04, 2006 1:36 AM
> > >>To: [email protected]
> > >>Subject: Re: selectPath with FilterExpression using $this
> > >>
> > >>Lawrence,
> > >>
> > >>My Xml-Document looks somehow like this:
> > >><SAMPLE-FRAG>
> > >> <ELEMENTS>
> > >>  <FRAMES>
> > >>   <FRAME>
> > >>    <SIGNAL-INSTANCE>
> > >>     <SIGNAL-REF idRef="sig1"/>
> > >>    </SIGNAL-INSTANCE>
> > >>    <SIGNAL-INSTANCE>
> > >>     <SIGNAL-REF idRef="sig2"/>
> > >>    </SIGNAL-INSTANCE>
> > >>   </FRAME>
> > >>   <FRAME>
> > >>    <SIGNAL-INSTANCE>
> > >>     <SIGNAL-REF idRef="sig2"/>
> > >>    </SIGNAL-INSTANCE>
> > >>    <SIGNAL-INSTANCE>
> > >>     <SIGNAL-REF idRef="sig3"/>
> > >>    </SIGNAL-INSTANCE>
> > >>    <SIGNAL-INSTANCE>
> > >>     <SIGNAL-REF idRef="sig4"/>
> > >>    </SIGNAL-INSTANCE>
> > >>   </FRAME>
> > >>  </FRAMES>
> > >>  <FUNCTIONS>
> > >>   <FUNCTION>
> > >>    <INPUT-PORT>
> > >>     <SIGNAL-REF idRef="sig1"/>
> > >>    </INPUT-PORT>
> > >>    <OUTPUT-PORT>
> > >>     <SIGNAL-REF idRef="sig2"/>
> > >>    </OUTPUT-PORT>
> > >>    <OUTPUT-PORT>
> > >>     <SIGNAL-REF idRef="sig4"/>
> > >>    </OUTPUT-PORT>
> > >>   </FUNCTION>
> > >>   <FUNCTION>
> > >>    <INPUT-PORT>
> > >>     <SIGNAL-REF idRef="sig2"/>
> > >>    </INPUT-PORT>
> > >>    <INPUT-PORT>
> > >>     <SIGNAL-REF idRef="sig3"/>
> > >>    </INPUT-PORT>
> > >>    <OUTPUT-PORT>
> > >>     <SIGNAL-REF idRef="sig4"/>
> > >>    </OUTPUT-PORT>
> > >>   </FUNCTION>
> > >>  </FUNCTIONS>
> > >>  <SIGNALS>
> > >>   <SIGNAL id="sig1"/>
> > >>   <SIGNAL id="sig2"/>
> > >>   <SIGNAL id="sig3"/>
> > >>   <SIGNAL id="sig4"/>
> > >>  </SIGNALS>
> > >> </ELEMENTS>
> > >></SAMPLE-FRAG>
> > >>
> > >>I'm generally interested in resolving relations between
> > >>the tree containers FUNCTIONS, FRAMES and SIGNALS.
> > >>
> > >>For example:
> > >>  Which FUNCTION- rsp. FRAME-Nodes refer to given Signal?
> > >>  Which SIGNAL-Nodes are refererd by a given FRAME rsp. FUNCTION?
> > >>
> > >>
> > >>By the way I've  checked my classpath:
> > >>It contains saxon8.jar but not saxon8-dom.jar.
> > >>
> > >>Thanks and Cheers,
> > >>
> > >>Siggi
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>Lawrence  Jones  wrote:
> > >>
> > >>
> > >>
> > >>>I  too  have  had  a  go  at  this,  but  I  too  am  not  an
> XPath
> > >>>
> > >>>
> > >>expert.
> > >>
> > >>
> > >>>First  of  all  make  sure  you  have  _all  of_  saxon8.jar  and
> > >>>
> > >>>
> > >>saxon8-dom.jar
> > >>
> > >>
> > >>>and  xbean_xpath.jar  (in  addition  to  the  normal  xbean.jar
> and
> > >>>
> > >>>
> > >the
> > >
> > >
> > >>JSR  173
> > >>
> > >>
> > >>>jar)  on  your  classpath.  Not  having  saxon8-dom.jar  can
cause
> > >>>
> > >>>
> > >>strange
> > >>
> > >>
> > >>>errors.  Not  having  xbean_xpath.jar  just  means  that  no
XPath
> > >>>
> > >>>
> > >will
> > >
> > >
> > >>work.
> > >>
> > >>
> > >>>Other  than  that  I  think  it  might  just  be  that  we're
not
> > >>>
> > >>>
> > >>passing  in  the
> > >>
> > >>
> > >>>right  XPath.  Siegfried,  can  you  attach  an  example  XML
> > >>>
> > >>>
> > >instance
> > >
> > >
> > >>document
> > >>
> > >>
> > >>>for  which  you  are  expecting  this  to  work?
> > >>>
> > >>>Here's  the  one  I  tried:
> > >>>
> > >>><elem1  xmlns=\"http://laj.org/test\";  >
> > >>> <elem11  id=\"123\"  >text11</elem11>
> > >>> <elem21  id=\"456\"  >text11</elem21>
> > >>> <elem12  idRef=\"123\"  />
> > >>> <elem13  idRef=\"456\"  />
> > >>> <elem14  idRef=\"123\"  />
> > >>> <elem15  idRef=\"456\"  />
> > >>> <elem16  idRef=\"123\"  />
> > >>> <elem17  idRef=\"789\"  />
> > >>></elem1>
> > >>>
> > >>>And  here  are  the  issues  I  see.
> > >>>
> > >>>1.  The  element  on  which  you  perform  the  selectPath()
call
> > >>>
> > >>>
> > >seems
> > >
> > >
> > >>to
> > >>
> > >>
> > >>>represent  the  root  as  far  as  the  call  to  selectPath()
is
> > >>>
> > >>>
> > >>concerned.  So
> > >>
> > >>
> > >>>if  e.g.  you  passed  in  only  the  XmlObject  for  <elem11>
> above
> > >>>
> > >>>
> > >>you  should
> > >>
> > >>
> > >>>not  expect  any  of  the  other  elements  to  be  returned
> > >>>
> > >>>
> > >regardless
> > >
> > >
> > >>of  the
> > >>
> > >>
> > >>>XPath  passed  in.
> > >>>
> > >>>2.  But  it  is  likely  that  the  elements  with  idRef  in
them
> > >>>
> > >>>
> > >are
> > >
> > >
> > >>_not_
> > >>
> > >>
> > >>>children  of  the  element  with  id  in  them.  Rather  it  is
> > >>>
> > >>>
> > >likely
> > >
> > >
> > >>that  they
> > >>
> > >>
> > >>>are  all  members  of  some  larger  document  element  such  as
> > >>>
> > >>>
> > ><elem1>
> > >
> > >
> > >>above.
> > >>
> > >>
> > >>>So  to  get  the  selectPath()  to  even  consider  them  you
> would
> > >>>
> > >>>
> > >>need  to  pass
> > >>
> > >>
> > >>>in  the  XmlObject  for  <elem1>  (or  at  least  some  element
> that
> > >>>
> > >>>
> > >is
> > >
> > >
> > >>a  root  to
> > >>
> > >>
> > >>>all  of  the  results  you  expect).
> > >>>
> > >>>3.  But  then  the  path  to  the  id  attribute  is  no  longer
> > >>>
> > >>>
> > >>$this/@id  as  that
> > >>
> > >>
> > >>>would  only  match  the  _root_  element  (<elem1>  in  this
case)
> > >>>
> > >>>
> > >>having  an  id
> > >>
> > >>
> > >>>attribute.  Exactly  what  you  need  to  pass  in  depends  on
> what
> > >>>
> > >>>
> > >>you  want  to
> > >>
> > >>
> > >>>do  -  if  you  want  to  find  all  idRefs  that  match  _any_
id
> > >>>
> > >>>
> > >>attribute
> > >>
> > >>
> > >>>anywhere  in  the  document  then  you  probably  want
$this//@id
> > >>>
> > >>>
> > >>instead.
> > >>
> > >>
> > >>>4.  I  tried  the  XPath  //[EMAIL PROTECTED]//@id]  on  the
complete
> > >>>
> > >>>
> > >>document
> > >>
> > >>
> > >>>above  (i.e.  I  executed  selectPath()  on  the  XmlObject
> > >>>
> > >>>
> > >representing
> > >
> > >
> > >>><elem1>)  and  printed  out  the  list  of  XmlObjects  returned
> > >>>
> > >>>
> > >from
> > >
> > >
> > >>>selectPath().  I  got:
> > >>>
> > >>>Number  of  results  =  5
> > >>>results[0]  =  <xml-fragment  idRef="123"/>
> > >>>results[1]  =  <xml-fragment  idRef="456"/>
> > >>>results[2]  =  <xml-fragment  idRef="123"/>
> > >>>results[3]  =  <xml-fragment  idRef="456"/>
> > >>>results[4]  =  <xml-fragment  idRef="123"/>
> > >>>
> > >>>which  is  what  I'd  expect  i.e.  I  get  all  the  nodes  with
> an
> > >>>
> > >>>
> > >>idRef  that
> > >>
> > >>
> > >>>matches  any  id  attribute  somewhere  else  in  the  document
> (and
> > >>>
> > >>>
> > >I
> > >
> > >
> > >>don't  get
> > >>
> > >>
> > >>>those  that  do  not  match).  Not  sure  why  they  are
> > >>>
> > >>>
> > >xml-fragment's
> > >
> > >
> > >>rather
> > >>
> > >>
> > >>>than  proper  individual  elements  with  proper  QNames  but
> that's
> > >>>
> > >>>
> > >a
> > >
> > >
> > >>>different  issue.
> > >>>
> > >>>5.  Note  that  replacing  '$this'  with  '.'  (i.e.  XPath  =
> > >>>
> > >>>
> > >>//[EMAIL PROTECTED]//@id)
> > >>
> > >>
> > >>>gave  me  an  empty  result  set.  My  guess  is  that  '.'  is
> > >>>
> > >>>
> > >>evaluated
> > >>
> > >>
> > >>>dynamically  (i.e.  it  means  the  current  node  that  the
query
> > >>>
> > >>>
> > >has
> > >
> > >
> > >>evaluated
> > >>
> > >>
> > >>>to)  compared  to  $this  which  is  bound  statically  at  the
> > >>>
> > >>>
> > >>beginning  to  the
> > >>
> > >>
> > >>>root  node  that  you  pass  in.  (With  the  '.'  version  of
the
> > >>>
> > >>>
> > >>XPath  I  think
> > >>
> > >>
> > >>>you  are  looking  for  a  node  which  has  both  an  id  and
an
> > >>>
> > >>>
> > >idRef
> > >
> > >
> > >>attribute
> > >>
> > >>
> > >>>where  the  values  are  the  same  -  which  is  a  slightly
> > >>>
> > >>>
> > >different
> > >
> > >
> > >>query.)
> > >>
> > >>
> > >>>I  haven't  tried  this  exhaustively  -  I'm  not  sure  what
> would
> > >>>
> > >>>
> > >>happen  if
> > >>
> > >>
> > >>>some  of  the  id  or  idRef  attributes  were  on  elements  at
> > >>>
> > >>>
> > >deeper
> > >
> > >
> > >>levels.
> > >>
> > >>
> > >>>But  anyway  I  hope  that  helps  get  started.
> > >>>
> > >>>Cheers,
> > >>>
> > >>>Lawrence
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>-----Original  Message-----
> > >>>>From:  Radu  Preotiuc-Pietro
> > >>>>Sent:  Thursday,  March  30,  2006  1:56  PM
> > >>>>To:  [email protected]
> > >>>>Subject:  RE:  selectPath  with  FilterExpression  using  $this
> > >>>>
> > >>>>I  was  curious  to  try  this  myself  with  the  new  Saxon
8.6
> > >>>>
> > >>>>
> > >>integration
> > >>
> > >>
> > >>>>(available  from  the  SVN  head  only,  for  the  moment)  and
> > >>>>
> > >>>>
> > >what  I
> > >
> > >
> > >>found  is
> > >>
> > >>
> > >>>>that  the  path  you  are  suggesting  ("//[EMAIL PROTECTED]/@id]")
> works
> > >>>>
> > >>>>
> > >(no
> > >
> > >
> > >>>>exception)  but  for  some  reason  doesn't  return  anything.
On
> > >>>>
> > >>>>
> > >the
> > >
> > >
> > >>other
> > >>
> > >>
> > >>>>hand,  "//[EMAIL PROTECTED]'1'"  returns  the  expected  result,  so  on
> > >>>>
> > >>>>
> > >one
> > >
> > >
> > >>hand  I
> > >>
> > >>
> > >>>>
> > >>>>
> > >>>am
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>wondering  if  this  is  maybe  a  bug  in  the  free  version
of
> > >>>>
> > >>>>
> > >>Saxon  and  on
> > >>
> > >>
> > >>>>
> > >>>>
> > >>>the
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>other  you  can  use  this  to  workaround  the  problem  by
> doing
> > >>>>.selectPath("//[EMAIL PROTECTED]'"  +  node.getId()  +  "'").
> > >>>>
> > >>>>If  anyone  else  has  other  insights  into  why  the  original
> > >>>>
> > >>>>
> > >path
> > >
> > >
> > >>does  not
> > >>
> > >>
> > >>>>work  (with  more  Xpath/Saxon  knowledge),  I'd  also  be
> > >>>>
> > >>>>
> > >interested
> > >
> > >
> > >>to
> > >>
> > >>
> > >>>>
> > >>>>
> > >>>know.
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>Thanks,
> > >>>>Radu
> > >>>>
> > >>>>-----Original  Message-----
> > >>>>From:  Cezar  Andrei
> > >>>>Sent:  Wednesday,  March  29,  2006  3:30  PM
> > >>>>To:  [email protected]
> > >>>>Subject:  RE:  selectPath  with  FilterExpression  using  $this
> > >>>>
> > >>>>Hi  Siegfried,
> > >>>>
> > >>>>I'm  not  an  expert  in  xpath/xquery  but  I'm  pretty  sure
> that
> > >>>>
> > >>>>
> > >>$this
> > >>
> > >>
> > >>>>
> > >>>>
> > >>>doesn't
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>represent  the  internal  current  node  that  is  processed  by
> > >>>>
> > >>>>
> > >the
> > >
> > >
> > >>engine.
> > >>
> > >>
> > >>>>So  you'll  probably  want  to  rewrite  the  expression  to
> > >>>>
> > >>>>
> > >something
> > >
> > >
> > >>like
> > >>
> > >>
> > >>>>this:
> > >>>>xo.selectPath(".//[EMAIL PROTECTED]//@id]");
> > >>>>
> > >>>>As  for  $this,  it's  just  a  variable  that  is  bound  to
the
> > >>>>
> > >>>>
> > >>XmlObject  that
> > >>
> > >>
> > >>>>you  are  calling  the  selectPath  method  from.  The  '$this'
> > >>>>
> > >>>>
> > >>construction
> > >>
> > >>
> > >>>>
> > >>>>
> > >>>is
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>not  in  the  latest  XPath/Xquery  spec  so  it  was
deprecated,
> > >>>>
> > >>>>
> > >>instead  "."
> > >>
> > >>
> > >>>>should  be  used.
> > >>>>
> > >>>>The  current  XmlObject  can  be  bound  to  any  user
specified
> > >>>>
> > >>>>
> > >>variable  name
> > >>
> > >>
> > >>>>as  in  the  following  example:
> > >>>>
> > >>>>     XmlOptions  options  =  new  XmlOptions();
> > >>>>     options.setXqueryCurrentNodeVar("myVariable");
> > >>>>     XmlObject[]  res  =  xo.selectPath("declare  variable
> > >>>>
> > >>>>
> > >$myVariable
> > >
> > >
> > >>>>external;  $myVariable//el1",  options);
> > >>>>
> > >>>>Which  is  equivalent  to:
> > >>>>
> > >>>>     XmlObject[]  res  =  xo.selectPath(".//el1",  options);
> > >>>>
> > >>>>And  to  the  following  (since  in  the  context  of  the
xpath
> > >>>>
> > >>>>
> > >>engine  the  xo
> > >>
> > >>
> > >>>>
> > >>>>
> > >>>is
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>considered  the  root):
> > >>>>
> > >>>>     XmlObject[]  res  =  xo.selectPath("//el1",  options);
> > >>>>
> > >>>>Since  we  don't  control  Saxon,  we  can't  promise  that
> > >>>>
> > >>>>
> > >expressions
> > >
> > >
> > >>>>confirming  to  the  spec  will  work.  We  can  only  work  on
> > >>>>
> > >>>>
> > >making
> > >
> > >
> > >>sure  we
> > >>
> > >>
> > >>>>make  the  right  calls  into  Saxon.
> > >>>>
> > >>>>Cezar
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>>-----Original  Message-----
> > >>>>>From:  Siegfried  Baiz  [mailto:[EMAIL PROTECTED]
> > >>>>>Sent:  Tuesday,  March  14,  2006  12:11  PM
> > >>>>>To:  [email protected]
> > >>>>>Subject:  selectPath  with  FilterExpression  using  $this
> > >>>>>
> > >>>>>Hello,
> > >>>>>
> > >>>>>for  a  given  XmlObject  xo  with  an  ID-Attribute  'id',
I've
> > >>>>>
> > >>>>>
> > >>tried  to
> > >>
> > >>
> > >>>>>launch  the  following  xpath-expression:
> > >>>>>
> > >>>>>   xo.selectPath("//[EMAIL PROTECTED]/@id]")
> > >>>>>
> > >>>>>in  order  to  get  all  nodes  (with  idRef-Attribute)
refering
> > >>>>>
> > >>>>>
> > >to
> > >
> > >
> > >>my  node
> > >>
> > >>
> > >>>>>
> > >>>>>
> > >>>>xo.
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>>Unfortunatlly  this  expression  seems  not  to  work.  I
always
> > >>>>>
> > >>>>>
> > >get
> > >
> > >
> > >>an
> > >>
> > >>
> > >>>>>java.lang.ArrayIndexOutOfBoundsException  from  the  underlying
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> >
>
>>net.sf.saxon.expr.XPathContextMajor.setLocalVariable(XPathContextMajor
> .
> > >>
> > >>
> > >j
> > >
> > >
> > >>>
> > >>>
> > >>>>av
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>>a:213)
> > >>>>>
> > >>>>>At
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> >
>
>>http://xmlbeans.apache.org/docs/2.0.0/guide/conSelectingXMLwithXQueryP
> a
> > >>
> > >>
> > >t
> > >
> > >
> > >>>
> > >>>
> > >>>>hX
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>>Path.html
> > >>>>>I  found  the  following  notice:
> > >>>>> "Notice  in  the  query  expression  that  the  variable
$this
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>represents
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>> the  current  context  node  (the  XmlObject  that  you  are
> > >>>>>
> > >>>>>
> > >>querying
> > >>
> > >>
> > >>>>>
> > >>>>>
> > >>>>from).
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>> In  this  example  you  are  querying  from  the  document
> level
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>XmlObject."
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>>After  reading  that  sentence  I've  been  thinking,  that
> $this
> > >>>>>
> > >>>>>
> > >is
> > >
> > >
> > >>>>>
> > >>>>>
> > >>>somehow
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>>similar  to  "curent()"  in  XSLT,  but  maybe  a  got  the
> > >>>>>
> > >>>>>
> > >meaning
> > >
> > >
> > >>wrong.
> > >>
> > >>
> > >>>>>Does  anyone  know  whats  the  problem  here  rsp.
> > >>>>>is  there  a  better  way  to  accomplish  the  same  thing?
> > >>>>>
> > >>>>>Thanks  a  lot,
> > >>>>>
> > >>>>>Siggi
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> >
>
>>>---------------------------------------------------------------------
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>>To  unsubscribe,  e-mail:  [EMAIL PROTECTED]
> > >>>>>For  additional  commands,  e-mail:
> [EMAIL PROTECTED]
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>>
> > >>>>
> > >>>>
> >
>
>>______________________________________________________________________
> _
> > >>
> > >>
> > >>>
> > >>>
> > >>>>Notice:  This  email  message,  together  with  any
attachments,
> > >>>>
> > >>>>
> > >may
> > >
> > >
> > >>>>
> > >>>>
> > >>>contain
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>information  of  BEA  Systems,  Inc.,  its  subsidiaries  and
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>affiliated
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>entities,  that  may  be  confidential,  proprietary,
copyrighted
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>and/or
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>legally  privileged,  and  is  intended  solely  for  the  use
of
> > >>>>
> > >>>>
> > >the
> > >
> > >
> > >>>>
> > >>>>
> > >>>individual
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>or  entity  named  in  this  message.  If  you  are  not  the
> > >>>>
> > >>>>
> > >intended
> > >
> > >
> > >>>>
> > >>>>
> > >>>recipient,
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>and  have  received  this  message  in  error,  please
> immediately
> > >>>>
> > >>>>
> > >>return
> > >>
> > >>
> > >>>>
> > >>>>
> > >>>this
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>by  email  and  then  delete  it.
> > >>>>
> > >>>>
> > >>>>
> >
>
>>>---------------------------------------------------------------------
> > >>>
> > >>>
> > >>>>To  unsubscribe,  e-mail:  [EMAIL PROTECTED]
> > >>>>For  additional  commands,  e-mail:
[EMAIL PROTECTED]
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> >
>
>>______________________________________________________________________
> _
> > >>
> > >>
> > >>>
> > >>>
> > >>>>Notice:  This  email  message,  together  with  any
attachments,
> > >>>>
> > >>>>
> > >may
> > >
> > >
> > >>>>
> > >>>>
> > >>>contain
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>information  of  BEA  Systems,  Inc.,  its  subsidiaries  and
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>affiliated
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>entities,  that  may  be  confidential,  proprietary,
copyrighted
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> > >>>and/or
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>legally  privileged,  and  is  intended  solely  for  the  use
of
> > >>>>
> > >>>>
> > >the
> > >
> > >
> > >>>>
> > >>>>
> > >>>individual
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>or  entity  named  in  this  message.  If  you  are  not  the
> > >>>>
> > >>>>
> > >intended
> > >
> > >
> > >>>>
> > >>>>
> > >>>recipient,
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>and  have  received  this  message  in  error,  please
> immediately
> > >>>>
> > >>>>
> > >>return
> > >>
> > >>
> > >>>>
> > >>>>
> > >>>this
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>>by  email  and  then  delete  it.
> > >>>>
> > >>>>
> > >>>>
> >
>
>>>---------------------------------------------------------------------
> > >>>
> > >>>
> > >>>>To  unsubscribe,  e-mail:  [EMAIL PROTECTED]
> > >>>>For  additional  commands,  e-mail:
[EMAIL PROTECTED]
> > >>>>
> > >>>>
> > >>>>
> > >>>>
> >
>
>>______________________________________________________________________
> _
> > >>
> > >>
> > >>>Notice:  This  email  message,  together  with  any  attachments,
> > >>>
> > >>>
> > >may
> > >
> > >
> > >>contain
> > >>
> > >>
> > >>>information  of  BEA  Systems,  Inc.,  its  subsidiaries  and
> > >>>
> > >>>
> > >affiliated
> > >
> > >
> > >>>entities,  that  may  be  confidential,  proprietary,
copyrighted
> > >>>
> > >>>
> > >>and/or
> > >>
> > >>
> > >>>legally privileged, and is intended solely for the use of the
> > >>>
> > >>>
> > >individual
> > >
> > >
> > >>>or entity named in this message. If you are not the intended
> > >>>
> > >>>
> > >recipient,
> > >
> > >
> > >>>and have received this message in error, please immediately
return
> > >>>
> > >>>
> > >this
> > >
> > >
> > >>>by email and then delete it.
> > >>>
> >
>
>>>---------------------------------------------------------------------
> > >>>To unsubscribe, e-mail: [EMAIL PROTECTED]
> > >>>For additional commands, e-mail: [EMAIL PROTECTED]
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> > >>>
> >
>
>>---------------------------------------------------------------------
> > >>To unsubscribe, e-mail: [EMAIL PROTECTED]
> > >>For additional commands, e-mail: [EMAIL PROTECTED]
> > >>
> > >>
> > >
> >
>
>_______________________________________________________________________
> > >Notice:  This email message, together with any attachments, may
> contain
> > >information  of  BEA Systems,  Inc.,  its subsidiaries  and
> affiliated
> > >entities,  that may be confidential,  proprietary,  copyrighted
> and/or
> > >legally privileged, and is intended solely for the use of the
> individual
> > >or entity named in this message. If you are not the intended
> recipient,
> > >and have received this message in error, please immediately return
> this
> > >by email and then delete it.
> > >
> >
>---------------------------------------------------------------------
> > >To unsubscribe, e-mail: [EMAIL PROTECTED]
> > >For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> > >
> > >
> >
> >
---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> 
>
_______________________________________________________________________
> Notice:  This email message, together with any attachments, may
contain
> information  of  BEA Systems,  Inc.,  its subsidiaries  and
affiliated
> entities,  that may be confidential,  proprietary,  copyrighted
and/or
> legally privileged, and is intended solely for the use of the
individual
> or entity named in this message. If you are not the intended
recipient,
> and have received this message in error, please immediately return
this
> by email and then delete it.
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]

_______________________________________________________________________
Notice:  This email message, together with any attachments, may contain
information  of  BEA Systems,  Inc.,  its subsidiaries  and  affiliated
entities,  that may be confidential,  proprietary,  copyrighted  and/or
legally privileged, and is intended solely for the use of the individual
or entity named in this message. If you are not the intended recipient,
and have received this message in error, please immediately return this
by email and then delete it.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to