]> granicus.if.org Git - docbook-dsssl/commitdiff
Adjust namespace fixup to conform to other conversions to
authorBob Stayton <bobs@sagehill.net>
Mon, 24 Feb 2014 19:49:36 +0000 (19:49 +0000)
committerBob Stayton <bobs@sagehill.net>
Mon, 24 Feb 2014 19:49:36 +0000 (19:49 +0000)
namespaced source.

xsl/eclipse/eclipse.xsl

index 3ede15296c7dda9dcde6604f7f613684f5966d45..bae6411fdc9984e3d9682361dc6fff68c9f0dda8 100644 (file)
 
      ******************************************************************** -->
 
+<xsl:variable name="no.namespace">
+  <xsl:if test="$exsl.node.set.available != 0 and 
+                namespace-uri(/*) = 'http://docbook.org/ns/docbook'">
+      <xsl:apply-templates select="/*" mode="stripNS"/>
+  </xsl:if>
+</xsl:variable>
+
 <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:call-template name="get.doc.title"/>
   </xsl:variable>
   <xsl:choose>
-    <!-- Hack! If someone hands us a DocBook V5.x or DocBook NG document,
-         toss the namespace and continue.  Use the docbook5 namespaced
-         stylesheets for DocBook5 if you don't want to use this feature.-->
-    <!-- include extra test for Xalan quirk -->
-    <xsl:when test="$exsl.node.set.available != 0
-                    and (*/self::ng:* or */self::db:*)">
+    <!-- fix namespace if necessary -->
+    <xsl:when test="$exsl.node.set.available != 0 and 
+                  namespace-uri(/*) = '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:text>stripped namespace before processing</xsl:text>
         </xsl:with-param>
       </xsl:call-template>
-      <xsl:variable name="nons">
-        <xsl:apply-templates mode="stripNS"/>
-      </xsl:variable>
-      <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. cut</xsl:text>
-        </xsl:with-param>
-        <xsl:with-param name="message">
-          <xsl:text>processing stripped document</xsl:text>
+      <!-- DEBUG: uncomment to save namespace-fixed document.
+      <xsl:message>Saving namespace-fixed document.</xsl:message>
+      <xsl:call-template name="write.chunk">
+        <xsl:with-param name="filename" select="'namespace-fixed.debug.xml'"/>
+        <xsl:with-param name="method" select="'xml'"/>
+        <xsl:with-param name="content">
+          <xsl:copy-of select="exsl:node-set($no.namespace)"/>
         </xsl:with-param>
       </xsl:call-template>
-      <xsl:apply-templates select="exsl:node-set($nons)"/>
+      -->
+      <xsl:apply-templates select="exsl:node-set($no.namespace)"/>
+    </xsl:when>
+    <!-- Can't process unless namespace fixed with exsl node-set()-->
+    <xsl:when test="namespace-uri(/*) = 'http://docbook.org/ns/docbook'">
+      <xsl:message terminate="yes">
+        <xsl:text>Unable to strip the namespace from DB5 document,</xsl:text>
+        <xsl:text> cannot proceed.</xsl:text>
+      </xsl:message>
     </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 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:message>Formatting from <xsl:value-of 
+                                 select="$rootid"/></xsl:message>
+                <xsl:apply-templates select="key('id',$rootid)"
+                            mode="process.root"/>
+                <xsl:call-template name="etoc"/>
+                <xsl:call-template name="plugin.xml"/>
+                               <xsl:call-template name="helpidx"/>
+              </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="key('id', $rootid)"
-                        mode="collect.targets"/>
+            <xsl:apply-templates select="/" mode="collect.targets"/>
           </xsl:if>
           <xsl:if test="$collect.xref.targets != 'only'">
-            <xsl:message>Formatting from <xsl:value-of 
-                                 select="$rootid"/></xsl:message>
-            <xsl:apply-templates select="key('id',$rootid)"
-                        mode="process.root"/>
+            <xsl:apply-templates select="/" mode="process.root"/>
             <xsl:call-template name="etoc"/>
             <xsl:call-template name="plugin.xml"/>
-                               <xsl:call-template name="helpidx"/>
+                 <xsl:call-template name="helpidx"/>
           </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:call-template name="etoc"/>
-        <xsl:call-template name="plugin.xml"/>
-                 <xsl:call-template name="helpidx"/>
-      </xsl:if>
     </xsl:otherwise>
   </xsl:choose>
-</xsl:otherwise>
-</xsl:choose>
 </xsl:template>
 
 <xsl:template name="etoc">