diff options
author | Henning Brinkmann[hbrinkm] <hbrinkm@openoffice.org> | 2010-01-11 13:03:02 +0100 |
---|---|---|
committer | Henning Brinkmann[hbrinkm] <hbrinkm@openoffice.org> | 2010-01-11 13:03:02 +0100 |
commit | a1e310c0a8feeca542749d6339a5c5359a2c85ac (patch) | |
tree | c464b5aa4821d79845b9b56ace577de72e23466a /writerfilter | |
parent | 128a52d510410359fb57a0e6dbb360b8d273ac8b (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.xsl | 23 |
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; |