Да, возможно встроить XSLT в ваш XML.
XSLT - это файл XML , поэтому вам просто нужно убедиться, что вы поместили его в элемент документа вашего файла XML, чтобы файл XML был по-прежнему хорошо сформирован.
Фактически, это описано в спецификации XSLT :
Обычно таблица стилей XSLT представляет собой полный документ XML с
xsl: элемент таблицы стилей в качестве элемента документа. Тем не менее, XSLT
Таблица стилей также может быть встроена в другой ресурс. Две формы
возможны встраивания:
- таблица стилей XSLT может быть встроена в текст не в формате XML
ресурс или
- элемент xsl: stylesheet может встречаться в документе XML, отличном от
в качестве элемента документа.
Чтобы упростить вторую форму встраивания, элемент xsl: stylesheet
разрешено иметь атрибут ID, который задает уникальный идентификатор.
ПРИМЕЧАНИЕ: Для того, чтобы такой атрибут использовался с идентификатором XPath
функция, фактически она должна быть объявлена в DTD как идентификатор.
В следующем примере показано, как обрабатывается таблица стилей xml
Инструкция [XML Stylesheet] может быть использована, чтобы позволить документу
содержать свою собственную таблицу стилей. Ссылка URI использует относительный URI с
идентификатор фрагмента для поиска элемента xsl: stylesheet:
<?xml-stylesheet type="text/xml" href="#style1"?>
<!DOCTYPE doc SYSTEM "doc.dtd">
<doc>
<head>
<xsl:stylesheet id="style1"
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:import href="doc.xsl"/>
<xsl:template match="id('foo')">
<fo:block font-weight="bold"><xsl:apply-templates/></fo:block>
</xsl:template>
<xsl:template match="xsl:stylesheet">
<!-- ignore -->
</xsl:template>
</xsl:stylesheet>
</head>
<body>
<para id="foo">
...
</para>
</body>
</doc>
ПРИМЕЧАНИЕ: Таблица стилей, встроенная в документ, к которому она
быть применены или могут быть включены или импортированы в таблицу стилей, которая
так встроен, как правило, должен содержать правило шаблона, которое
указывает, что элементы xsl: stylesheet следует игнорировать.
В зависимости от того, как вы планируете использовать его, встроенные таблицы стилей могут не поддерживаться. Например, в IE 6/7/8. Есть некоторые обходные пути .