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