]> granicus.if.org Git - docbook-dsssl/commitdiff
Fixed bugs in 5.0b2
authorNorman Walsh <ndw@nwalsh.com>
Fri, 13 Jan 2006 14:18:05 +0000 (14:18 +0000)
committerNorman Walsh <ndw@nwalsh.com>
Fri, 13 Jan 2006 14:18:05 +0000 (14:18 +0000)
docbook/relaxng/tools/doc2dtd.xsl

index 1fd7051c285df5dc9d99a280e06082081739e77b..7e10a6c45d546ba9aa265fb9cd0a7568acb90a53 100644 (file)
       <!-- db.indexterm.singular handles all three cases -->
     </xsl:when>
 
+    <!-- Handle the duplicate area patterns -->
+    <xsl:when test="@name = 'db.area'">
+      <!-- db.area.inareaset is the "right" one; it has an optional id -->
+    </xsl:when>
+
     <!-- Handle the row patterns -->
 
     <xsl:when test="@name = 'db.entrytbl.row' and key('pattern', 'db.row')">
 
 <xsl:template match="rng:oneOrMore" mode="content-model">
   <xsl:param name="repeat" select="''"/>
-  <dtd:choice repeat="+">
+
+  <!-- make sure there's something in there... -->
+  <xsl:variable name="content">
     <xsl:apply-templates select="*" mode="content-model"/>
-  </dtd:choice>
+  </xsl:variable>
+  <xsl:variable name="contentNS" select="exsl:node-set($content)/*"/>
+
+  <xsl:if test="count($contentNS) &gt; 0">
+    <dtd:choice repeat="+">
+      <xsl:copy-of select="$content"/>
+    </dtd:choice>
+  </xsl:if>
 </xsl:template>
 
 <xsl:template match="rng:text" mode="content-model">
                    and ../rng:ref[@name='db.cals.informaltable']">
       <!-- suppress -->
     </xsl:when>
+    <xsl:when test="@name = 'db._any.svg' or @name='db._any.mathml'">
+      <!-- suppress -->
+    </xsl:when>
     <xsl:when test="$def/rng:element">
       <xsl:if test="$def/rng:element/@name != ''">
        <dtd:ref name="{$def/rng:element/@name}">