<XPath xmlns:ietf="http://www.ietf.org" >
    (//.|//@*|//namespace::*)
    [
	self::ietf:e1
	    or
	(parent::ietf:e1 and not(self::text() or self::e2))
	    or
	count(id("E3")|ancestor-or-self::node()) = count(ancestor-or-self::node())
    ]
</XPath>