<xsl:stylesheet
  version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  indent-result="no"
  default-space="strip">

<xsl:output method="text"/>

<xsl:strip-space elements="*"/>

<xsl:template match="/">
   <xsl:apply-templates match="xdelta" />
</xsl:template>

<xsl:template match="xdelta">
<xsl:text>*SHOW </xsl:text><xsl:value-of select="description"/><xsl:text> Revised </xsl:text><xsl:value-of select="@revised" />
<xsl:text>

</xsl:text>
<xsl:apply-templates select="item-list" />
</xsl:template>

<xsl:template match="item-list">
<xsl:text>*ITEM DESCRIPTIONS</xsl:text>
<xsl:text>

</xsl:text>
<xsl:apply-templates select="//item" />
</xsl:template>

<xsl:template match="item">
<xsl:text>#</xsl:text><xsl:text> \i{}</xsl:text>
<xsl:value-of select="item-name" /><xsl:text>\i0{}/
</xsl:text>
<xsl:apply-templates match="attribute-list"/>
<xsl:text>

</xsl:text>
</xsl:template>

<xsl:template match="attribute-list">
<xsl:apply-templates match="attribute" />
</xsl:template>

<xsl:template match="attribute">
<xsl:value-of select="@character" /><xsl:text>,</xsl:text><xsl:apply-templates/>
<xsl:text> </xsl:text>
</xsl:template>


<xsl:template match="value">
<xsl:if test="position()!=1"><xsl:text>/</xsl:text></xsl:if>
<xsl:if test="@lower"><xsl:text>(</xsl:text><xsl:value-of select="@lower" /><xsl:text>-)</xsl:text></xsl:if>
<xsl:if test="@start"><xsl:value-of select="@start" /></xsl:if>
<xsl:if test="text()"><xsl:if test="@start">-</xsl:if><xsl:value-of select="text()" /><apply-templates match="comment"/></xsl:if>
<xsl:if test="@end"><xsl:if test="@start|text()">-</xsl:if><xsl:value-of select="@end" /></xsl:if>
<xsl:if test="@upper"><xsl:text>(</xsl:text><xsl:value-of select="@upper" /><xsl:text>-)</xsl:text></xsl:if>
</xsl:template>

<xsl:template match="value[value]">
<xsl:for-each select="value">
<xsl:if test="position()!=1"><xsl:text disable-output-escaping="yes">&amp;</xsl:text></xsl:if>
<xsl:if test="@lower"><xsl:text>(</xsl:text><xsl:value-of select="@lower" /><xsl:text>-)</xsl:text></xsl:if>
<xsl:if test="@start"><xsl:value-of select="@start" /></xsl:if>
<xsl:if test="text()"><xsl:if test="@start">-</xsl:if><xsl:value-of select="text()" /><apply-templates match="comment"/></xsl:if>
<xsl:if test="@end"><xsl:if test="@start|text()">-</xsl:if><xsl:value-of select="@end" /></xsl:if>
<xsl:if test="@upper"><xsl:text>(</xsl:text><xsl:value-of select="@upper" /><xsl:text>-)</xsl:text></xsl:if>
</xsl:for-each>
</xsl:template>

<xsl:template match="*"></xsl:template>

<xsl:template match="comment">
<xsl:text disable-output-escaping="yes">&lt;</xsl:text><xsl:value-of select="comment" /><xsl:text disable-output-escaping="yes">&gt;</xsl:text>
</xsl:template>

</xsl:stylesheet>
