Валиков Алексей Н.
Шрифт:
в Xalan — как:
в Oracle XSLT Processor — как:
При этом сами вызовы во всех трех случаях будут одинаковыми:
для метода X или
для метода Y.
Функция function-available
При использовании функций расширения всегда есть вероятность того, что это расширение в силу каких-либо причин поддерживаться данным процессором не будет. Чаще всего это случается, во-первых, когда процессор просто физически не в состоянии вызвать эту функцию (например, процессор, написанный на C++, вряд ли будет содержать средства для выполнения Java-кода), во-вторых, когда расширение недоступно (например, процессор не в состоянии найти указанный Java-класс или динамическую библиотеку), и в-третьих, когда пространство имен объявлено неверно (например, с URI
XSLT позволяет избежать подобного рода ошибок путем предварительной проверки наличия заданной функции расширения. Для этой цели служит стандартная функция
Функция
Строковый аргумент этой функции представляет расширенное имя функции, он должен соответствовать продукции
В случае, если аргумент
В данном случае
Функция
Для того чтобы обеспечить работоспособность расширения, реализованного классом
Префикс
Теперь осталось только найти поддерживаемый вариант расширения и произвести соответствующий вызов.