Главная » XSLT » Функции расширения в Saxon

0

XSLT 1.0 (Saxon версия 6.5.4)

Saxon позволяет обращаться к функциям расширения, написанным на Java, следуя интерфейсу, который был определен в проекте стандарта XSLT 1.1.

В настоящее время Saxon в качестве языка расширения поддерживает только Java, поэтому функции расширения объявляются, как в следующем примере:

XSLT 1.0 (Saxon version 6.5.4)

<xsl:stylesheet version="1.1"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:Math="java:java.lang.Math"

exclude-result-prefixes="Math">

<xsl:script implements-prefix="Math"

xmlns:Math="java:java.lang.Math"

language="java"

src="java:java.lang.Math"/>

Принятое здесь соглашение об именовании пространств имен не обязательно. Но, если ему следовать, то элемент xsl:script можно опустить. Следовательно, если вы собираетесь вызвать расширение только один раз, то допустимо напи­сать так:

<xsl:stylesheet

xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:variable name="PI" select="4 * Math:atan(1.0)"

xmlns:Math="java:java.lang.Math"/>

<!– … –> </xsl:stylesheet>

Здесь для связывания с реализацией на Java мы употребили пространство имен, а не элемент xsl:script. Отметим, что оба способа связывания независи­мы; если включен элемент xsl:script, то пространство имен не имеет значения. Напротив, если элемент xsl:script опущен, то за связывание отвечает только пространство имен.

XSLT2.0 (Saxon версия 8.x)

Механизм вызова Java-функций расширения практически такой же, как в Saxon 6.5.4. Однако элемент saxon:script объявлен устаревшим и, согласно информации на сайте, из будущих версий может быть исключен. Предпочтитель­ный способ – объявить на верхнем уровне пространство имен в виде java: и далее полностью квалифицированное имя класса.

<xsl:stylesheet version="2.0"

xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:math="java:java.lang.Math"

exclude-result-prefixes="math">

<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>

<xsl:template match="/">

<pi><xsl:value-of select="4 * math:atan(1.0)"/></pi> </xsl:template>

</xsl:stylesheet>

Мангано Сэл  XSLT. Сборник рецептов. – М.: ДМК Пресс, СПБ.: БХВ-Петербург, 2008. – 864 с.: ил.

По теме:

  • Комментарии