summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorHenning Brinkmann[hbrinkm] <hbrinkm@openoffice.org>2010-01-11 13:03:02 +0100
committerHenning Brinkmann[hbrinkm] <hbrinkm@openoffice.org>2010-01-11 13:03:02 +0100
commita1e310c0a8feeca542749d6339a5c5359a2c85ac (patch)
treec464b5aa4821d79845b9b56ace577de72e23466a /writerfilter
parent128a52d510410359fb57a0e6dbb360b8d273ac8b (diff)
writerfilter07: factorytokentoidmapinner: look for rng:defines outside current namespace, too. factorytokentoidmap: handle any parent id as default
Diffstat (limited to 'writerfilter')
-rw-r--r--writerfilter/source/ooxml/factoryimpl_ns.xsl23
1 files changed, 17 insertions, 6 deletions
diff --git a/writerfilter/source/ooxml/factoryimpl_ns.xsl b/writerfilter/source/ooxml/factoryimpl_ns.xsl
index c5fb15542978..4a619eb6949b 100644
--- a/writerfilter/source/ooxml/factoryimpl_ns.xsl
+++ b/writerfilter/source/ooxml/factoryimpl_ns.xsl
@@ -629,9 +629,22 @@ string </xsl:text>
</xsl:if>
<xsl:for-each select=".//rng:ref[not(ancestor::rng:element or ancestor::rng:attribute)]">
<xsl:variable name="refname" select="@name"/>
- <xsl:for-each select="ancestor::rng:grammar/rng:define[@name=$refname]">
- <xsl:call-template name="factorytokentoidmapinner"/>
- </xsl:for-each>
+ <xsl:variable name="refblock1">
+ <xsl:for-each
+ select="ancestor::rng:grammar/rng:define[@name=$refname]">
+ <xsl:call-template name="factorytokentoidmapinner"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="string-length($refblock1) = 0">
+ <xsl:for-each select="ancestor::model/namespace/rng:grammar/rng:define[@name=$refname]">
+ <xsl:call-template name="factorytokentoidmapinner"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$refblock1"/>
+ </xsl:otherwise>
+ </xsl:choose>
</xsl:for-each>
</xsl:template>
@@ -659,7 +672,7 @@ TokenToIdMapPointer </xsl:text>
</xsl:if>
</xsl:for-each>
<xsl:text>
- case 0:</xsl:text>
+ default:</xsl:text>
<xsl:for-each select="start">
<xsl:variable name="name" select="@name"/>
<xsl:text>
@@ -671,8 +684,6 @@ TokenToIdMapPointer </xsl:text>
</xsl:for-each>
<xsl:text>
break;
- default:
- break;
}
return pMap;