Не используйте библиотеку совместимости в AOSP:
AppCompatActivtyi, v4.Fragment
Хорошо, я думаю, что нашел ошибку:
not
должен использоваться с круглой скобкой, таким образом, вместо
(not @varName) or @varName=$colVarName
это должно было быть
not(@varName) or @varName=$colVarName
действительно - not()
функция, которая возвращает противоположность булевской переменной того, что между parens. При необходимости - это бросит свой аргумент булевской переменной. В этом случае пустой набор узлов бросает автоматически ко лжи, итак, если @varName
дает Вам пустой набор узлов, not(@varName)
будет верно.