Часто используемые шаблоны (template) могут быть вынесены в отдельные XSL-шаблоны, которые затем будут подключены и использованы в основных. Такое решение позволяет использовать один и тот же template в различных XSL-шаблона.
Подключение внешнего XSL-шаблона осуществляется с использованием <xsl:include> или <xsl:import>.
<xsl:include href="import://123" />
где 123 — идентификатор подключаемого XSL-шаблона. Кроме идентификатора XSL-шаблона допускается использованием названия XSL-шаблона в случае его написания на английском языке.
Элемент <xsl:include> должен быть дочерним по отношению к <xsl:stylesheet>.
Включения обрабатываются по мере их возникновения на уровне дерева, подключаемый XML анализируется как XML-документ и дочерние элементы <xsl:stylesheet> в документе заменяют элемент <xsl:include> в том документе, куда включен данный документ.
В отличие от <xsl:import>, правила подключаемого шаблона имеют тот же приоритет импорта, что и правила в таблице стилей, куда включен шаблон. Если таблицы стилей содержат правила шаблона для одного и того же элемента, то вызываемый шаблон определяется по порядку появления в документе.
<xsl:import href="import://123" />
где 123 — идентификатор подключаемого XSL-шаблона. Кроме идентификатора XSL-шаблона допускается использованием названия XSL-шаблона в случае его написания на английском языке.
Элемент <xsl:import> должен быть дочерним по отношению к <xsl:stylesheet>, при этом элемент <xsl:import> допустим только в качестве элемента верхнего уровня.
<xsl:import> эквивалентен <xsl:include>, с той разницей, что определения и правила шаблонов импортирующего файла имеют более высокий приоритет, чем определения и правила шаблонов импортируемого файла XSLT.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:hostcms="https://www.hostcms.ru/"
exclude-result-prefixes="hostcms">
<xsl:template match="shop_item">
...
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:hostcms="https://www.hostcms.ru/"
exclude-result-prefixes="hostcms">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<xsl:include href="import://123"/>
...
</xsl:stylesheet>