Subject: Re: [xsl] Seek an XPath 2.0 expression for checking that each object in a file system has one parent From: "David Carlisle d.p.carlisle@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Sun, 16 Oct 2016 23:09:44 -0000 |
Your are clearly not modelling hard links:-) every $f in //* satisfies not(/descendant::*[name()='F1'][2]) David On 16 October 2016 at 23:32, Costello, Roger L. costello@xxxxxxxxx <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote: > Hi Folks, > > I am modeling a file system. Below is a sample instance. D1 means Directory 1, F1 means File 1, etc. The instance says this: the content of directory 1 is directory 2 and file 1. The content of directory 2 is file 2. Stated another way, directory 2 and file 1 are contained in directory 1, and file 2 is contained in directory 2. > > <Root> > <D1> > <D2/> > <F1/> > </D1> > <D2> > <F2/> > </D2> > </Root> > > I want an XPath 2.0 expression which returns true if each object has one parent. An "object" is a directory or a file. In the example above each object has one parent, so the XPath should return true. Below is an illegal file system because F1 has two parents: D1 and D2. > > <Root> > <D1> > <D2/> > <F1/> > </D1> > <D2> > <F2/> > <F1/> > </D2> > </Root> > > The XPath should return false. > > This XPath is almost correct: > > for $i in /Root/* return for $j in $i/* return not(name($j) = $i/following-sibling::*/*/name()) > > I say it is "almost" correct because it returns multiple Booleans, not a single Boolean result. > > Two Questions: > > 1. What is the correct XPath expression? > 2. Is there a different way to model in XML a file system that would enable a simple XPath expression? > > /Roger
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Seek an XPath 2.0 expression , Costello, Roger L. c | Thread | Re: [xsl] Seek an XPath 2.0 express, Michael Kay mike@xxx |
[xsl] Seek an XPath 2.0 expression , Costello, Roger L. c | Date | Re: [xsl] Seek an XPath 2.0 express, Michael Kay mike@xxx |
Month |