<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dtb="http://www.daisy.org/z3986/2005/dtbook/" version="2.0">
<xsl:template name="BOOKMARK_START">
<xsl:variable name="id" select="@id"/>
<xsl:choose>
<xsl:when test="self::levelhd|self::h1|self::h2|self::h3|self::h4|self::h5|self::h6|self::note|self::noteref|self::annotation|self::dtb:hd|self::dtb:h1|self::dtb:h2|self::dtb:h3|self::dtb:h4|self::dtb:h5|self::dtb:h6|self::dtb:note|self::dtb:noteref|self::dtb:annotation">
<xsl:text>{\*\bkmkstart </xsl:text>
<xsl:value-of select="$id"/>
<xsl:text>}</xsl:text>
</xsl:when>
<xsl:when test="(//a[@href=concat('#', $id)]) or (//dtb:a[@href=concat('#', $id)])">
<xsl:text>{\*\bkmkstart </xsl:text>
<xsl:value-of select="$id"/>
<xsl:text>}</xsl:text>
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template name="BOOKMARK_END">
<xsl:variable name="id" select="@id"/>
<xsl:choose>
<xsl:when test="self::levelhd|self::h1|self::h2|self::h3|self::h4|self::h5|self::h6|self::note|self::noteref|self::annotation|self::dtb:hd|self::dtb:h1|self::dtb:h2|self::dtb:h3|self::dtb:h4|self::dtb:h5|self::dtb:h6|self::dtb:note|self::dtb:noteref|self::dtb:annotation">
<xsl:text>{\*\bkmkend </xsl:text>
<xsl:value-of select="$id"/>
<xsl:text>}</xsl:text>
</xsl:when>
<xsl:when test="(//a[@href=concat('#', $id)]) or (//dtb:a[@href=concat('#', $id)])">
<xsl:text>{\*\bkmkned </xsl:text>
<xsl:value-of select="$id"/>
<xsl:text>}</xsl:text>
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template match="a|dtb:a">
<xsl:choose>
<xsl:when test="starts-with(@href, '#') or @external='false'">
<xsl:text>{\field</xsl:text>
<xsl:text>{\*\fldinst HYPERLINK \\l </xsl:text>
<xsl:value-of select="substring-after(@href, '#')"/>
<xsl:text>}</xsl:text>
<xsl:text>{\fldrslt </xsl:text>
<xsl:text>\cf3\ul </xsl:text>
<xsl:apply-templates/>
<xsl:text>}</xsl:text>
<xsl:text>}</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>{\field</xsl:text>
<xsl:text>{\*\fldinst HYPERLINK </xsl:text>
<xsl:value-of select="@href"/>
<xsl:text>}</xsl:text>
<xsl:text>{\fldrslt </xsl:text>
<xsl:text>\cf3\ul </xsl:text>
<xsl:apply-templates/>
<xsl:text>}</xsl:text>
<xsl:text>}</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>