Я получил xml (каталог книг с обложками), для которого я создал xsl, который отображает книги, как если бы они были на книжных полках.
Теперь я хочу разрешить отображение основного xml.
Я думал о том, чтобы показать / скрыть текстовую область, в которой я написал бы xml, используя правило идентификации.
Как я могу это сделать? Я имею в виду, что я уже написал правило для "/" и потомков ("книги", "авторы"), если я добавлю правило идентификации, будет хорошо, пока оно не вызовет себя, но когда одно из моих пользовательских правил будет соответствовать, я начну вывести текст, связанный с пользовательским правилом.
EDIT
Как предложили Мартин Хоннен и Майкл Кей, решение было использовать режим.
<xsl:template match="/">
<html>
<body>
...
<xsl:apply-templates select="foo"" />
...
<textarea>
<xsl:apply-templates select="//*" mode="SERIALIZE" />
</textarea>
</body>
</html>
</xsl:template>
<!-- identity transform -->
<xsl:template match="/ | @* | node()" mode="SERIALIZE" >
<xsl:copy>
<xsl:apply-templates select="@* | node()" mode="SERIALIZE" />
</xsl:copy>
</xsl:template>
Обратите внимание на режим = "SERIALIZE":
при вызове применять шаблоны,
в определении шаблона личности и
внутри него при рекурсивном вызове.