xsl:stylesheet id="stylesheet" exclude-result-prefixes="x2 lit uri" version="1.0" xml:lang="en"
xsl:param name="uri" select="'file://localdir/'"
xsl:template name="absolute-uri" id="absolute-uri"
xsl:param name="href" select="@href"
xsl:param name="base"
xsl:call-template name="uri:resolve-uri"
xsl:with-param name="reference" select="$href"
xsl:with-param name="base"
xsl:choose
xsl:when test="$base != ''"
xsl:value-of select="$base"
xsl:otherwise
xsl:value-of select="$uri"
xsl:template name="id" id="id"
xsl:param name="target" select="."
xsl:param name="suffix" select="''"
xsl:choose
xsl:when test="$target/@id"
xsl:value-of select="concat($target/@id, $suffix)"
xsl:otherwise
xsl:value-of select="concat(generate-id($target), $suffix)"
xsl:template name="map-uri"
xsl:param name="href" select="@href"
xsl:choose
xsl:when test="starts-with($href, '#')"
xsl:value-of select="$href"
xsl:when test="contains($href, '#') and count($site-map-doc)>0"
xsl:variable name="absolute-uri"
xsl:call-template name="absolute-uri"
xsl:with-param name="href" select="substring-before($href, '#')"
xsl:for-each select="$site-map-doc"
xsl:choose
xsl:when test="count(key('html-uris', $absolute-uri))>0"
xsl:call-template name="uri:make-relative"
xsl:with-param name="reference" select="key('html-uris', $absolute-uri)[last()]/@to"
xsl:with-param name="base" select="$uri"
xsl:otherwise
xsl:call-template name="uri:make-relative"
xsl:with-param name="reference" select="$absolute-uri"
xsl:with-param name="base" select="$uri"
xsl:text#
xsl:value-of select="substring-after($href, '#')"
xsl:when test="count($site-map-doc)>0"
xsl:variable name="absolute-uri"
xsl:call-template name="absolute-uri"
xsl:with-param name="href" select="$href"
xsl:for-each select="$site-map-doc"
xsl:choose
xsl:when test="count(key('html-uris', $absolute-uri))>0"
xsl:call-template name="uri:make-relative"
xsl:with-param name="reference" select="key('html-uris', $absolute-uri)[last()]/@to"
xsl:with-param name="base" select="$uri"
xsl:otherwise
xsl:call-template name="uri:make-relative"
xsl:with-param name="reference" select="$absolute-uri"
xsl:with-param name="base" select="$uri"
xsl:template name="html-uri"
xsl:param name="href" select="@href"
xsl:param name="suffix" select="'.xml'"
xsl:param name="replacement" select="'.html'"
xsl:choose
xsl:when test="starts-with($href, '#')"
xsl:value-of select="$href"
xsl:when test="contains($href, '#') and contains($href, $suffix)"
xsl:variable name="fragment" select="substring-after($href, '#')"
xsl:variable name="doc-uri" select="substring-before($href, '#')"
xsl:value-of select="concat(substring-before($doc-uri, $suffix), $replacement, '#', $fragment)"
xsl:when test="contains($href, $suffix)"
xsl:value-of select="concat(substring-before($href, $suffix), $replacement)"
xsl:otherwise
xsl:value-of select="$href"