|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version='1.0'>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:output indent="yes"/>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
Extract all the parameters from the XSL stylesheets.
|
|
Packit |
0f19cf |
Example of use:
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
xsltproc extractparam.xsl docbook.xsl > paramgroup.xml
|
|
Packit |
0f19cf |
xsltproc -.-param chunk 1 extractparam.xsl docbook.xsl
|
|
Packit |
0f19cf |
-->
|
|
Packit |
0f19cf |
<xsl:param name="chunk" select="0"/>
|
|
Packit |
0f19cf |
<xsl:param name="chunk.prefix" select="''"/>
|
|
Packit |
0f19cf |
<xsl:param name="chunk.suffix" select="'sxml'"/>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:include href="../xsl/chunker.xsl"/>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:template match="/">
|
|
Packit |
0f19cf |
<xsl:choose>
|
|
Packit |
0f19cf |
<xsl:when test="$chunk = 0">
|
|
Packit |
0f19cf |
<xsl:element name="xsl:paramgroup">
|
|
Packit |
0f19cf |
<xsl:apply-templates select="xsl:stylesheet"/>
|
|
Packit |
0f19cf |
</xsl:element>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:otherwise>
|
|
Packit |
0f19cf |
<xsl:apply-templates select="xsl:stylesheet"/>
|
|
Packit |
0f19cf |
</xsl:otherwise>
|
|
Packit |
0f19cf |
</xsl:choose>
|
|
Packit |
0f19cf |
</xsl:template>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:template match="@*|node()">
|
|
Packit |
0f19cf |
<xsl:copy>
|
|
Packit |
0f19cf |
<xsl:apply-templates select="@*|node()"/>
|
|
Packit |
0f19cf |
</xsl:copy>
|
|
Packit |
0f19cf |
</xsl:template>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:template match="xsl:param">
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:message>
|
|
Packit |
0f19cf |
<xsl:value-of select="@name"/>
|
|
Packit |
0f19cf |
<xsl:text> = </xsl:text>
|
|
Packit |
0f19cf |
<xsl:choose>
|
|
Packit |
0f19cf |
<xsl:when test=". != ''">
|
|
Packit |
0f19cf |
<xsl:value-of select="."/>
|
|
Packit |
0f19cf |
<xsl:text> (string)</xsl:text>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:when test="@select">
|
|
Packit |
0f19cf |
<xsl:value-of select="@select"/>
|
|
Packit |
0f19cf |
<xsl:text> (select) </xsl:text>
|
|
Packit |
0f19cf |
<xsl:choose>
|
|
Packit |
0f19cf |
<xsl:when test="@select = number(@select)">
|
|
Packit |
0f19cf |
<xsl:text> (number) </xsl:text>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:otherwise>
|
|
Packit |
0f19cf |
<xsl:text> (string) </xsl:text>
|
|
Packit |
0f19cf |
</xsl:otherwise>
|
|
Packit |
0f19cf |
</xsl:choose>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:otherwise>
|
|
Packit |
0f19cf |
<xsl:text> (empty) </xsl:text>
|
|
Packit |
0f19cf |
</xsl:otherwise>
|
|
Packit |
0f19cf |
</xsl:choose>
|
|
Packit |
0f19cf |
</xsl:message>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:variable name="param">
|
|
Packit |
0f19cf |
<xsl:element name="xsl:param">
|
|
Packit |
0f19cf |
<xsl:apply-templates select="@*|node()" />
|
|
Packit |
0f19cf |
</xsl:element>
|
|
Packit |
0f19cf |
</xsl:variable>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:choose>
|
|
Packit |
0f19cf |
<xsl:when test="$chunk = 0">
|
|
Packit |
0f19cf |
<xsl:copy-of select="$param"/>
|
|
Packit |
0f19cf |
</xsl:when>
|
|
Packit |
0f19cf |
<xsl:otherwise>
|
|
Packit |
0f19cf |
<xsl:call-template name="write.chunk">
|
|
Packit |
0f19cf |
<xsl:with-param name="filename">
|
|
Packit |
0f19cf |
<xsl:value-of select="$chunk.prefix"/>
|
|
Packit |
0f19cf |
<xsl:value-of select="@name"/>
|
|
Packit |
0f19cf |
<xsl:text>.</xsl:text>
|
|
Packit |
0f19cf |
<xsl:value-of select="$chunk.suffix"/>
|
|
Packit |
0f19cf |
</xsl:with-param>
|
|
Packit |
0f19cf |
<xsl:with-param name="omit-xml-declaration" select="'yes'"/>
|
|
Packit |
0f19cf |
<xsl:with-param name="method" select="'xml'"/>
|
|
Packit |
0f19cf |
<xsl:with-param name="content" select="$param"/>
|
|
Packit |
0f19cf |
<xsl:with-param name="indent" select="'yes'"/>
|
|
Packit |
0f19cf |
</xsl:call-template>
|
|
Packit |
0f19cf |
</xsl:otherwise>
|
|
Packit |
0f19cf |
</xsl:choose>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
</xsl:template>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:template match="xsl:stylesheet">
|
|
Packit |
0f19cf |
<xsl:apply-templates select="xsl:param"/>
|
|
Packit |
0f19cf |
<xsl:apply-templates select="xsl:include"/>
|
|
Packit |
0f19cf |
</xsl:template>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:template match="xsl:include">
|
|
Packit |
0f19cf |
<xsl:variable name="doc" select="document(@href)"/>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:message>Params defined in <xsl:value-of select="@href"/></xsl:message>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
<xsl:apply-templates select="$doc/xsl:stylesheet"/>
|
|
Packit |
0f19cf |
</xsl:template>
|
|
Packit |
0f19cf |
|
|
Packit |
0f19cf |
</xsl:stylesheet>
|