From: Norman W. <nw...@us...> - 2005-04-29 12:13:43
|
Update of /cvsroot/docbook/xsl/fo In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2381/fo Modified Files: docbook.xsl Log Message: 'Support' DocBook V5 namespace Index: docbook.xsl =================================================================== RCS file: /cvsroot/docbook/xsl/fo/docbook.xsl,v retrieving revision 1.34 retrieving revision 1.35 diff -u -U2 -r1.34 -r1.35 --- docbook.xsl 19 Jan 2005 14:52:16 -0000 1.34 +++ docbook.xsl 29 Apr 2005 12:13:29 -0000 1.35 @@ -3,5 +3,7 @@ xmlns:exsl="http://exslt.org/common" xmlns:fo="http://www.w3.org/1999/XSL/Format" - exclude-result-prefixes="exsl" + xmlns:ng="http://docbook.org/docbook-ng" + xmlns:db="http://docbook.org/ns/docbook" + exclude-result-prefixes="db ng exsl" version='1.0'> @@ -113,9 +115,10 @@ <xsl:choose> <xsl:when test="function-available('exsl:node-set') - and namespace-uri(*[1]) = 'http://docbook.org/docbook-ng'"> - <!-- Hack! If someone hands us a DocBook NG document, toss the namespace --> - <!-- and continue. Someday we may reverse this logic and add the namespace --> - <!-- to documents that don't have one. But not before the whole stylesheet --> - <!-- has been converted to use namespaces. i.e., don't hold your breath --> + and (*/self::ng:* or */self::db:*)"> + <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document, + toss the namespace and continue. Someday we'll reverse this logic + and add the namespace to documents that don't have one. + But not before the whole stylesheet has been converted to use + namespaces. i.e., don't hold your breath --> <xsl:variable name="nons"> <xsl:apply-templates mode="stripNS"/> @@ -262,5 +265,5 @@ <xsl:template match="*" mode="stripNS"> <xsl:choose> - <xsl:when test="namespace-uri(.) = 'http://docbook.org/docbook-ng'"> + <xsl:when test="self::ng:* or self::db:*"> <xsl:element name="{local-name(.)}"> <xsl:copy-of select="@*"/> @@ -277,4 +280,37 @@ </xsl:template> +<xsl:template match="ng:link|db:link" mode="stripNS"> + <xsl:variable xmlns:xlink="http://www.w3.org/1999/xlink" + name="href" select="@xlink:href|@href"/> + <xsl:choose> + <xsl:when test="$href != '' and not(starts-with($href,'#'))"> + <ulink url="{$href}"> + <xsl:for-each select="@*"> + <xsl:if test="local-name(.) != 'href'"> + <xsl:copy/> + </xsl:if> + </xsl:for-each> + <xsl:apply-templates mode="stripNS"/> + </ulink> + </xsl:when> + <xsl:when test="$href != '' and starts-with($href,'#')"> + <link linkend="{substring-after($href,'#')}"> + <xsl:for-each select="@*"> + <xsl:if test="local-name(.) != 'href'"> + <xsl:copy/> + </xsl:if> + </xsl:for-each> + <xsl:apply-templates mode="stripNS"/> + </link> + </xsl:when> + <xsl:otherwise> + <link> + <xsl:copy-of select="@*"/> + <xsl:apply-templates mode="stripNS"/> + </link> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + <xsl:template match="comment()|processing-instruction()|text()" mode="stripNS"> <xsl:copy/> |