<?xml version="1.0"?> <XPath xmlns:bar="http://example.org/bar" xmlns:baz="http://example.org/baz" xmlns:foo="http://example.org/foo" xml:lang="en-ie"> (//. | //@* | //namespace::*) [ <!-- no namespace nodes but the default on alternate elements --> ancestor-or-self::bar:Something and (self::text() or (namespace-uri() != "") or ((name() = "") and ((count(ancestor-or-self::node()) mod 2) = 1))) ] </XPath>