<xsl:template name="body.attributes"><xslo:if xmlns:xslo="http://www.w3.org/1999/XSL/Transform" test="starts-with($writing.mode, 'rl')"><xslo:attribute name="dir">rtl</xslo:attribute></xslo:if><!-- no apply-templates; make it empty except for dir for rtl--></xsl:template>
<xsl:template name="system.head.content"><xsl:param name="node" select="."/><!-- FIXME: When chunking, only the annotations actually used
in this chunk should be referenced. I don't think it
does any harm to reference them all, but it adds
unnecessary bloat to each chunk. --><xsl:if test="$annotation.support != 0 and //d:annotation"><xsl:call-template name="add.annotation.links"/><script type="text/javascript"><xsl:text>
// Create PopupWindow objects</xsl:text><xsl:for-each select="//d:annotation"><xsl:text>
var popup_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text> = new PopupWindow("popup-</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>");
</xsl:text><xsl:text>popup_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>.offsetY = 15;
</xsl:text><xsl:text>popup_</xsl:text><xsl:value-of select="generate-id(.)"/><xsl:text>.autoHide();
</xsl:text></xsl:for-each></script><style type="text/css"><xsl:value-of select="$annotation.css"/></style></xsl:if><!-- system.head.content is like user.head.content, except that
it is called before head.content. This is important because it
means, for example, that <style> elements output by system.head.content
have a lower CSS precedence than the users stylesheet. --></xsl:template>
<xsl:template name="user.preroot"><!-- Pre-root output, can be used to output comments and PIs. --><!-- This must not output any element content! --></xsl:template>
<xsl:template match="/"><!-- * Get a title for current doc so that we let the user --><!-- * know what document we are processing at this point. --><xsl:variable name="doc.title"><xsl:call-template name="get.doc.title"/></xsl:variable><xsl:choose><!-- include extra test for Xalan quirk --><xsl:when test="namespace-uri(*[1]) != 'http://docbook.org/ns/docbook'"><xsl:call-template name="log.message"><xsl:with-param name="level">Note</xsl:with-param><xsl:with-param name="source" select="$doc.title"/><xsl:with-param name="context-desc"><xsl:text>namesp. add</xsl:text></xsl:with-param><xsl:with-param name="message"><xsl:text>added namespace before processing</xsl:text></xsl:with-param></xsl:call-template><xsl:variable name="addns"><xsl:apply-templates mode="addNS"/></xsl:variable><xsl:apply-templates select="exsl:node-set($addns)"/></xsl:when><!-- Can't process unless namespace removed --><xsl:when test="namespace-uri(*[1]) != 'http://docbook.org/ns/docbook'"><xsl:call-template name="log.message"><xsl:with-param name="level">Note</xsl:with-param><xsl:with-param name="source" select="$doc.title"/><xsl:with-param name="context-desc"><xsl:text>namesp. add</xsl:text></xsl:with-param><xsl:with-param name="message"><xsl:text>added namespace before processing</xsl:text></xsl:with-param></xsl:call-template><xsl:variable name="addns"><xsl:apply-templates mode="addNS"/></xsl:variable><xsl:apply-templates select="exsl:node-set($addns)"/></xsl:when><xsl:otherwise><xsl:choose><xsl:when test="$rootid != ''"><xsl:choose><xsl:when test="count(key('id',$rootid)) = 0"><xsl:message terminate="yes"><xsl:text>ID '</xsl:text><xsl:value-of select="$rootid"/><xsl:text>' not found in document.</xsl:text></xsl:message></xsl:when><xsl:otherwise><xsl:if test="$collect.xref.targets = 'yes' or $collect.xref.targets = 'only'"><xsl:apply-templates select="key('id', $rootid)" mode="collect.targets"/></xsl:if><xsl:if test="$collect.xref.targets != 'only'"><xsl:apply-templates select="key('id',$rootid)" mode="process.root"/><xsl:if test="$tex.math.in.alt != ''"><xsl:apply-templates select="key('id',$rootid)" mode="collect.tex.math"/></xsl:if></xsl:if></xsl:otherwise></xsl:choose></xsl:when><xsl:otherwise><xsl:if test="$collect.xref.targets = 'yes' or $collect.xref.targets = 'only'"><xsl:apply-templates select="/" mode="collect.targets"/></xsl:if><xsl:if test="$collect.xref.targets != 'only'"><xsl:apply-templates select="/" mode="process.root"/><xsl:if test="$tex.math.in.alt != ''"><xsl:apply-templates select="/" mode="collect.tex.math"/></xsl:if></xsl:if></xsl:otherwise></xsl:choose></xsl:otherwise></xsl:choose></xsl:template>
<xsl:template name="root.messages"><!-- redefine this any way you'd like to output messages --><!-- DO NOT OUTPUT ANYTHING FROM THIS TEMPLATE --></xsl:template>