<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ssml="http://www.w3.org/2001/10/synthesis" xmlns:tts="http://www.daisy.org/ns/pipeline/tts" version="2.0" exclude-result-prefixes="#all">
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="ssml:s">
<xsl:copy>
<xsl:copy-of select="@xml:lang|@id"/>
<xsl:apply-templates select="." mode="css0"/>
</xsl:copy>
</xsl:template>
<xsl:template match="*" mode="css0">
<xsl:apply-templates select="." mode="css1"/>
</xsl:template>
<xsl:template match="*[@tts:voice-family]" mode="css0">
<xsl:attribute name="voice-family">
<xsl:value-of select="@tts:voice-family"/>
</xsl:attribute>
<xsl:apply-templates select="." mode="css1"/>
</xsl:template>
<xsl:template match="*" mode="css1">
<xsl:apply-templates select="." mode="css2"/>
</xsl:template>
<xsl:template match="*[@tts:speak = 'none']" mode="css1">
</xsl:template>
<xsl:template match="*" mode="css2">
<xsl:apply-templates select="." mode="css3"/>
</xsl:template>
<xsl:template match="*[@tts:volume]" mode="css2">
<ssml:prosody volume="{@tts:volume}">
<xsl:apply-templates select="." mode="css3"/>
</ssml:prosody>
</xsl:template>
<xsl:template match="*" mode="css3">
<xsl:apply-templates select="." mode="css4"/>
</xsl:template>
<xsl:template match="*[@tts:pitch]" mode="css3">
<ssml:prosody pitch="{@tts:pitch}">
<xsl:apply-templates select="." mode="css4"/>
</ssml:prosody>
</xsl:template>
<xsl:template match="*" mode="css4">
<xsl:apply-templates select="." mode="css5"/>
</xsl:template>
<xsl:template match="*[@tts:speak = 'spell-out']" mode="css4">
<ssml:say-as interpret-as="characters">
<xsl:apply-templates select="." mode="css5"/>
</ssml:say-as>
</xsl:template>
<xsl:template match="*" mode="css5">
<xsl:apply-templates select="." mode="css6"/>
</xsl:template>
<xsl:template match="*[@tts:speech-rate]" mode="css5">
<ssml:prosody rate="{@tts:speech-rate}">
<xsl:apply-templates select="." mode="css6"/>
</ssml:prosody>
</xsl:template>
<xsl:template match="*" mode="css6">
<xsl:apply-templates select="." mode="css7"/>
</xsl:template>
<xsl:template match="*[@tts:pitch-range]" mode="css6">
<ssml:prosody range="{@tts:pitch-range}">
<xsl:apply-templates select="." mode="css7"/>
</ssml:prosody>
</xsl:template>
<xsl:template match="*" mode="css7">
<xsl:apply-templates select="." mode="css8"/>
</xsl:template>
<xsl:template match="*[@tts:speak-numeral = 'digits']" mode="css7">
<ssml:say-as interpret-as="ordinal">
<xsl:apply-templates select="." mode="css8"/>
</ssml:say-as>
</xsl:template>
<xsl:template match="*" mode="css8">
<xsl:apply-templates select="node()" mode="css-child"/>
</xsl:template>
<xsl:template match="*[@tts:speak-numeral = 'continuous']" mode="css8">
<ssml:say-as interpret-as="cardinal">
<xsl:apply-templates select="node()" mode="css-child"/>
</ssml:say-as>
</xsl:template>
<xsl:template match="*" mode="css-child">
<xsl:apply-templates select="." mode="css1"/>
</xsl:template>
<xsl:template match="text()" mode="css-child">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="ssml:*" mode="css-child">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates mode="#current"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>