Skip to content

Commit

Permalink
word-to-dtbook: fix empty sequence error when building unordered list
Browse files Browse the repository at this point in the history
see #113
  • Loading branch information
NPavie authored and bertfrees committed Jan 4, 2025
1 parent 4b8949d commit b0e5a36
Showing 1 changed file with 12 additions and 25 deletions.
37 changes: 12 additions & 25 deletions scripts/word-to-dtbook/src/main/resources/xml/Common2.xsl
Original file line number Diff line number Diff line change
Expand Up @@ -694,35 +694,22 @@
<xsl:template name="recStart">
<xsl:param name="abstLevel" as="xs:string"/>
<xsl:param name="level" as="xs:integer"/>
<xsl:variable name="levelNumberingScheme" select="$numberingXml//w:numbering/w:abstractNum[@w:abstractNumId=$abstLevel]/w:lvl[@w:ilvl=$level]" />
<xsl:choose>
<xsl:when test="$level=0">
<xsl:variable name="strStart" as="xs:string" select="$numberingXml//w:numbering/w:abstractNum[@w:abstractNumId=$abstLevel]/w:lvl[@w:ilvl=$level]/w:start/@w:val"/>
<xsl:choose>
<xsl:when test="$strStart=''">
<xsl:sequence select="d:sink(d:StartString($myObj,$level,'0'))"/> <!-- empty -->
</xsl:when>
<xsl:otherwise>
<xsl:sequence select="d:sink(d:StartString($myObj,$level,$strStart))"/> <!-- empty -->
</xsl:otherwise>
</xsl:choose>
<xsl:when test="$levelNumberingScheme/w:start/@w:val">
<xsl:sequence select="d:sink(d:StartString($myObj,$level,$levelNumberingScheme/w:start/@w:val))"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="strStart" as="xs:string" select="$numberingXml//w:numbering/w:abstractNum[@w:abstractNumId=$abstLevel]/w:lvl[@w:ilvl=$level]/w:start/@w:val"/>
<xsl:choose>
<xsl:when test="$strStart=''">
<xsl:sequence select="d:sink(d:StartString($myObj,$level,'0'))"/> <!-- empty -->
</xsl:when>
<xsl:otherwise>
<xsl:sequence select="d:sink(d:StartString($myObj,$level,$strStart))"/> <!-- empty -->
</xsl:otherwise>
</xsl:choose>
<xsl:variable name="dec" as="xs:integer" select="$level - 1"/>
<xsl:call-template name="recStart">
<xsl:with-param name="abstLevel" select="$abstLevel"/>
<xsl:with-param name="level" select="$dec"/>
</xsl:call-template>
<xsl:otherwise> <!-- Non incrementable lists -->
<xsl:sequence select="d:sink(d:StartString($myObj,$level,'0'))"/>
</xsl:otherwise>
</xsl:choose>
<xsl:if test="$level &gt; 0">
<xsl:variable name="dec" as="xs:integer" select="$level - 1"/>
<xsl:call-template name="recStart">
<xsl:with-param name="abstLevel" select="$abstLevel"/>
<xsl:with-param name="level" select="$dec"/>
</xsl:call-template>
</xsl:if>
</xsl:template>

<!--Template to Close Complex List-->
Expand Down

0 comments on commit b0e5a36

Please sign in to comment.