Пространства имен с префиксами Объявление присваивает переменной Иными словами, переменной Выражение Надо сказать, что оперирование внешними типами — отнюдь не нововведение XSLT 1.1. Во многих процессорах интерфейсы расширения позволяют функциям возвращать произвольные типы данных. Важно, что теперь эта возможность закреплена в официальном документе Консорциума W3, и следует полагать, что и из второй версии языка она никуда не денется.Листинг 12.7. Использование внешних типов данных в преобразовании
version="1.1"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:Date="java:java.util.Date"
xmlns:SimpleDateFormat="java.text.SimpleDateFormat">
Date
и SimpleDateFormat
определяют привязку к Java-классам java.util.Date
и java.text.SimpleDateFormat
соответственно (в этом примере мы используем формат URI пространств имен, принятый в процессоре Saxon).df
результат выполнения конструктора класса SimpleDateFormat
со строковым параметром "HH:mm"
, что эквивалентно Java-кодуSimpleDateFormat df = new SimpleDateFormat("НН:mm");
df
был присвоен "внешний" тип данных java.text.SimpleDateFormat
. Аналогично, переменная now содержит данные типа java.util.Date
. Фактически, этим переменным были присвоены экземпляры соответствующих классов.SimpleDateFormat:format($df, $now)
, использованное в этом преобразовании, представляет собой ни что иное, как применение метода format
экземпляра класса SimpleDateFormat
, присвоенного переменной df
к экземпляру класса Date
, присвоенного переменной now
. В переводе на Java:df.format(now);