[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

Re: [xsl] Function for determining one XPath as subset of another


Subject: Re: [xsl] Function for determining one XPath as subset of another
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 27 Jan 2016 09:03:05 -0000

> On 26 Jan 2016, at 19:29, Wolfgang Laun wolfgang.laun@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> If you can't prove it: claim it is an axiom ;-)

That's exactly what the XQuery formal semantics does, as it happens.

For the record, the actual theorem is: for any nodeTest T, the expressions

preceding::T

and

ancestor-or-self::*/preceding-sibling::node()/descendant-or-self::T

are equivalent; that is, for any context node, the two expressions deliver the
same sequence of nodes as the result.

Michael Kay
Saxonica

> -W
>
> On 26 January 2016 at 20:24, Michael Kay mike@xxxxxxxxxxxx
<mailto:mike@xxxxxxxxxxxx> <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx
<mailto:xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>> wrote:
> I've always been a little frustrated that I rely heavily on equivalences
like
>
> preceding::x ===
ancestor-or-self::*/preceding-sibling::*/descendant-or-self::*
>
> without having what I would consider a formal proof.
>
> Michael Kay
> Saxonica
>
>
> > On 26 Jan 2016, at 16:15, Adam Retter adam.retter@xxxxxxxxxxxxxx
<mailto:adam.retter@xxxxxxxxxxxxxx> <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx
<mailto:xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>> wrote:
> >
> > Given two simple XPaths, say:
> >
> > 1. //w
> >
> > 2. /x/y/z/w[@a = 'v']
> >
> > As a human I can very easily tell without evaluating the expressions
> > that (2) will return a subset (or the same set) of the results that
> > (1) would return *should* they both be evaluated.
> >
> > My goal here is given any two simple arbitrary XPaths expressed as
> > strings, and without evaluating them against a context, to determine
> > whether one would return a subset of the results of the other.
> >
> > I wondered if there might be an algorithm or library that someone
> > already had or has written which might be able to give me the answer?
> >
> > I realise that I can only probably cover a subset of XPath itself, but
> > it is only the path steps with predicates which I am interested in.
> >
> > Ideally I am looking for something in Java.
> >
> > --
> > Adam Retter
> >
> > skype: adam.retter
> > tweet: adamretter
> > http://www.adamretter.org.uk <http://www.adamretter.org.uk/>
> >
>
>
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <-list/293509> (by email <>)


Current Thread
Keywords