[Home] [By Thread] [By Date] [Recent Entries]
Hi,
On 2/5/2012 10:37 PM, Graydon wrote: On Sun, Feb 05, 2012 at 10:30:15PM -0500, Syd Bauman scripsit: Yes, and much nicer. Boo to explicit name testing. Gotcha alert: that should be not(name(.) = ('xml:id','rend')). The != will always be true because every possible value of name(.) (any string at all) is != to either or both 'xml:id' and 'rend'. But the main reason to dislike explicit name testing for this kind of thing is that it isn't namespace-safe, and is thus liable to break at inconvenient times, unlike the implicit name testing provided by path expressions. (If you really must, the XPath 2.0 node-name() function can help.) The only tricky thing I've so far noticed about 'except' is that it doesn't always affect the implicit context of position() just how you would expect without the write-stuff-down-and-stare-at-it step. Yes, you have to keep in mind that it's a set operation, so in both attribute::* except (attribute::xml:id|attribute::rend) attribute::type union attribute::rend @type|@rend the context for evaluating the second operand is the same as the context for the first, that is, we are excluding (or including) particular attribute of the context node, not of its attributes. Cheers, Wendell ====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================
|

Cart



