Валиков Алексей Н.
Шрифт:
При необходимости этот шаблон может быть переопределен. К примеру, ссылка может выглядеть как
Соответственно, шаблон будет иметь вид
Можно заметить, что оба шаблона имеют общую часть, которая выводит гипертекстовую ссылку. Эта часть может быть вынесена во внешнее преобразование
Для того чтобы использовать внешний шаблон, основное преобразование должно импортировать его при помощи
Элемент
Элемент
□ Шаблоны, определенные в основном преобразовании, применяться не будут, поскольку
□ Элемент
В текущей версии XSLT
Для того чтобы лучше понять, зачем нужна такая сложная схема импорта, проведем аналогию с объектно-ориентированным программированием. Если рассматривать правила преобразований как методы классов, то импорт преобразований будет ни чем иным, как наследованием — все методы (шаблоны) класса-потомка (импортируемого преобразования) будут доступны в классе-наследнике (импортирующем преобразовании). При этом класс-наследник может переопределить методы класса потомка (шаблоны основного преобразования имеют порядок импорта старше, чем шаблоны импортированного преобразования). В этой схеме использование элемента
Приведем пример Java-классов, которые будут аналогичны преобразованиям
В этом примере вызов родительского метода
Тело шаблона
Фактически, элемент