[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: help with schematron (axis in pattern must be child or att
At 2010-10-17 12:04 -0700, trubliphone wrote: >I have a question about Schematron. I don't know if this is a >suitable forum, but it's worth a shot. I think Schematron questions are entirely in scope here ... no problem in my view. >I have an XML file with certain elements with an attribute that can >take one of a set of values. That set, however, change depending >upon the position of the element. Here's a simplified sample: > ><root> > <!-- the 1st matching element --> > <element match="true" value="one"/> > <element match="false"> > <element match="false"> > <!-- the 2nd matching element --> > <element match="true" value="two"/> > </element> > </element> > <element match="false/> > <!-- the 3rd matching element --> > <element match="true" value="three/> > ... ></root> > >I've been playing with XPath and the following expression will match >all of the appropriate elements: > >"/descendant-or-self::node()[@match='true']" All you need is "*[@match='true']" since only attributes can have attached attributes. And this expression is, implicitly through an abbreviation, accessing the child axis as the complete syntax is "child::*[attribute::match='true']". >I can narrow this down by adding "[position()=n]" and then check in >an <assert> that @value is one of the allowable terms. > >In order to ensure that I don't miss out on any _nested_ elements >(as with number 2 above) - the matching elements could be absolutely >anyplace in the document - I search all descendants of the root element. No need ... the expression I've given you above is context free ... it will match elements at any depth of the tree. >However, the above expression generates an error: "axis in pattern >must be child or attribute". Right, because you've used the "descendent-or-self::" axis and that isn't allowed in a pattern expression, which is a subset of all expressions. I hope this helps. . . . . . . . . . Ken -- XSLT/XQuery training: after http://XMLPrague.cz 2011-03-28/04-01 Vote for your XML training: http://www.CraneSoftwrights.com/x/i/ Crane Softwrights Ltd. http://www.CraneSoftwrights.com/x/ G. Ken Holman mailto:gkholman@CraneSoftwrights.com Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/x/bc Legal business disclaimers: http://www.CraneSoftwrights.com/legal
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] |
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
|