<?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::*) 
    [ 
              <!-- only text, elements, or directly-used namespace nodes but not foo:Something -->
              ancestor-or-self::bar:Something  and
              not (self::foo:Something)  and
              (self::text()  or
               (namespace-uri() != "")  or
               (string(self::node()) = namespace-uri(parent::node())))
    ]
</XPath>
