Мы (Saxonica) не очень четко задокументировали, какие типы Object
наша реализация принимает в качестве результата метода JAXP resolveVariable()
, и я в процессе исправления. Возврат любого NodeInfo
(включая, следовательно, экземпляр TinyElementImpl
) должен работать нормально.
Если вы используете Saxon-HE, то он не зависит от схемы, поэтому типизированное значение элемента всегда будет untypedAtomic
, поэтому сравнение с целым числом работать не будет. Самое простое исправление, хотя некоторых читателей это может сбить с толку, - это изменить условие на +$asset eq 100
- унарный оператор плюс вызывает преобразование типа.
Я бы тоже не стал писать $asset/name() eq 'p0:current_asset'
, потому что это зависит от на префиксе пространства имен. Лучше написать $asset[self::p0:current-asset]
.