Re: DM expressing until-like queries in XPath 2.0

You are right. My example was not precise enough. 

Here is what I meant with the information need:

Find descendants y of the current node x such that 

     y does not have leukemia, and 
     all ancestors z of y BELOW x (that is, z=x or z is a descendant of x)
         have leukemia.

Consider the example doc
<P name="a1" l="no">
    <P name="a12" l="yes">
        <P name="a121" l="no"/>
    </P>
</P>

Then the correct answer when evaluated at the root is the empty
set. But when evaluated at the node with name="a12" it is 
 <P name="a121" l="no"/>. 

The formalisation given below yields the empty set in both cases.


maarten

   


  On Thu, Nov 27, 2003 at 12:02:57PM +0000, David Carlisle wrote:
> 
> I believe that your requirement is already expressible in Xpath 1
> 
> "find all nodes with l=no such that all their ancestors do not have l=no"
> 
> <P name="a" l="yes">
>  <P name="a1" l="no">
>    <P name="a11" l="no"/>
>    <P name="a12" l="yes"/>
>    <P name="a13" l="no"/>
>  </P>
>  <P name="a2" l="yes">
>    <P name="a21" l="yes"/>
>    <P name="a22" l="no"/>
> 
>  </P>
> </P>
> 
> In this example you want to find a1 and a22 I think.
> 
> 
> 
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
> 
> <xsl:template match="/">
> <xsl:for-each select="//*
>   [@l='no' and not(ancestor::*/@l='no')]/@name">
> [<xsl:value-of select="."/>]
> </xsl:for-each>
> </xsl:template>
> 
> </xsl:stylesheet>
> 
> 
> 
> $ saxon luk.xml luk.xsl
> <?xml version="1.0" encoding="utf-8"?>
> [a1]
> 
> [a22]
> 
> 
> 
> In this case you can phrase things to use the implicit existential
> quantification of = in xpath 1, although in more complicated cases
> that gets difficult/impossible, so then the xpath2 quantifiers some every
> would probably help.
> 
> 
> David [Not a member of the WG]
> 
> 
> ________________________________________________________________________
> This e-mail has been scanned for all viruses by Star Internet. The
> service is powered by MessageLabs. For more information on a proactive
> anti-virus service working around the clock, around the globe, visit:
> http://www.star.net.uk
> ________________________________________________________________________

-- 
***************************************************************************
Maarten Marx 	    marx@science.uva.nl     http://www.science.uva.nl/~marx

 Language and Inference Technology Group, ILLC, Universiteit van  Amsterdam
        Nieuwe Achtergracht 166, 1018 WV  Amsterdam, The Netherlands. 
      Phone: +31 20 525 2888 Mobile: 06 400 16 120 Fax: +31 20 525  2800
***************************************************************************

Received on Thursday, 27 November 2003 08:27:49 UTC