Используя только XPath, предлагаемое вами выражение максимально близко. Существуют разные способы выполнения одной и той же проверки, но все они приведут к более длинному и сложному выражению и будут скрывать намерение больше.
Я не думаю, что есть процессор с поддержкой схемы, схема XML не подключена к XSLT, и было бы бессмысленно встраивать его поддержку в процессор, ИМХО. Язык определен, и расширения являются общепринятым стандартным способом добавления функциональности.
Если используемая вами библиотека поддерживает функции расширения EXSL, вы можете написать полупортативный механизм для абстрагирования логической проверки в функцию или использовать для этого специфичные для поставщика расширения, такие как MSXSL.
Я думаю, что лучше остаться с выражением, которое у вас есть. Это не запутано, только немного многословно.