[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] XPath for expressing contiguous elements?
Hi Folks, I want an XPath expression that implements this rule: All <A> elements shall be contiguous within <Test>. In this example all A's are contiguous, so the rule is satisfied: <Test> <B/> <A/> <A/> <A/> <B/> </Test> In this example there is an intervening B, so the rule is not satisfied: <Test> <B/> <A/> <A/> <B/> <A/> <B/> </Test> Below is the XPath that I created. I have two questions about it: (1) Is it correct? Do you see anything it would fail to catch? (2) Is there a better (simpler, more efficient) XPath expression? Here is the XPath (within a Schematron rule): <sch:rule context="Test"> <sch:assert test=" every $i in A satisfies (if ($i/preceding-sibling::A) then $i/preceding-sibling::*[1][self::A] else true()) and (if ($i/following-sibling::A) then $i/following-sibling::*[1][self::A] else true()) "> All A's shall be contiguous within Test. </sch:assert> </sch:rule>
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|