[
"//src:unit/src:class[src:super/src:extends/src:name/text()=\"Artifact\"]/src:name/text()",
"//src:unit/src:class[src:super/src:extends/src:name/text()=\"Artifact\" and not(not(src:name/text()=\"<TEMP>\") and src:block/descendant-or-self::src:decl_stmt/src:decl[src:init/src:expr/src:call/src:name/text()=\"<TEMP>\"])]"
]
For the following queries:
The output is 9 instead of 3.