Blob Blame History Raw
<?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>