diff options
author | Henning Brinkmann <hbrinkm@openoffice.org> | 2010-07-28 14:17:26 +0200 |
---|---|---|
committer | Henning Brinkmann <hbrinkm@openoffice.org> | 2010-07-28 14:17:26 +0200 |
commit | 726abde143b9d11c4cb02cc744687e3d018fc2ca (patch) | |
tree | 4ffdff73701fa42a3e8dae798e9cb82329d3b646 /writerfilter/source/ooxml/factoryimpl_ns.xsl | |
parent | ef6ea72805ac6b8044e76d466f34e459210e691d (diff) |
writerfilter08ooo330: applied patch for writerfilter08
Diffstat (limited to 'writerfilter/source/ooxml/factoryimpl_ns.xsl')
-rw-r--r-- | writerfilter/source/ooxml/factoryimpl_ns.xsl | 99 |
1 files changed, 54 insertions, 45 deletions
diff --git a/writerfilter/source/ooxml/factoryimpl_ns.xsl b/writerfilter/source/ooxml/factoryimpl_ns.xsl index 55d986932..533c3d16a 100644 --- a/writerfilter/source/ooxml/factoryimpl_ns.xsl +++ b/writerfilter/source/ooxml/factoryimpl_ns.xsl @@ -150,7 +150,20 @@ for a rng:define --> <xsl:template name="factoryattributetoresourcemapinner"> + <xsl:variable name="defname" select="@name"/> + <xsl:for-each select=".//rng:ref[not(ancestor::rng:element or ancestor::rng:attribute)]"> + <xsl:variable name="name" select="@name"/> + <xsl:for-each select="ancestor::namespace/rng:grammar/rng:define[@name=$name]"> + <xsl:call-template name="factoryattributetoresourcemapinner"/> + </xsl:for-each> + </xsl:for-each> + <xsl:for-each select=".//rng:attribute"> + <xsl:if test="position()=1"> + <xsl:text> + // </xsl:text> + <xsl:value-of select="$defname"/> + </xsl:if> <xsl:variable name="mynsid" select="generate-id(ancestor::namespace)"/> <xsl:variable name="resource"> <xsl:for-each select="rng:ref"> @@ -161,6 +174,9 @@ for a rng:define <xsl:for-each select=".//rng:text"> <xsl:text>String</xsl:text> </xsl:for-each> + <xsl:for-each select=".//rng:data[@type='base64Binary']"> + <xsl:text>String</xsl:text> + </xsl:for-each> </xsl:variable> <xsl:variable name="refdefine1"> @@ -201,13 +217,6 @@ for a rng:define </xsl:choose> </xsl:for-each> - - <xsl:for-each select=".//rng:ref[not(ancestor::rng:element or ancestor::rng:attribute)]"> - <xsl:variable name="name" select="@name"/> - <xsl:for-each select="ancestor::namespace/rng:grammar/rng:define[@name=$name]"> - <xsl:call-template name="factoryattributetoresourcemapinner"/> - </xsl:for-each> - </xsl:for-each> </xsl:template> <!-- factoryattributetoresourcemap --> @@ -283,25 +292,6 @@ ListValueMapPointer </xsl:text> <!-- factoryelementtoresorucemapinner --> <xsl:template name="factorycreateelementmapinner"> - <xsl:for-each select=".//rng:element"> - <xsl:variable name="resource"> - <xsl:for-each select="rng:ref"> - <xsl:call-template name="contextresource"/> - </xsl:for-each> - </xsl:variable> - <xsl:if test="string-length($resource) > 0"> - <xsl:text> - (*pMap)[</xsl:text> - <xsl:call-template name="fasttoken"/> - <xsl:text>] = CreateElement(RT_</xsl:text> - <xsl:value-of select="$resource"/> - <xsl:text>, </xsl:text> - <xsl:for-each select="rng:ref"> - <xsl:call-template name="idforref"/> - </xsl:for-each> - <xsl:text>);</xsl:text> - </xsl:if> - </xsl:for-each> <xsl:for-each select=".//rng:ref[not(ancestor::rng:element or ancestor::rng:attribute)]"> <xsl:variable name="name" select="@name"/> <xsl:variable name="block"> @@ -329,6 +319,25 @@ ListValueMapPointer </xsl:text> <xsl:value-of select="$block1"/> </xsl:if> </xsl:for-each> + <xsl:for-each select=".//rng:element"> + <xsl:variable name="resource"> + <xsl:for-each select="rng:ref"> + <xsl:call-template name="contextresource"/> + </xsl:for-each> + </xsl:variable> + <xsl:if test="string-length($resource) > 0"> + <xsl:text> + (*pMap)[</xsl:text> + <xsl:call-template name="fasttoken"/> + <xsl:text>] = CreateElement(RT_</xsl:text> + <xsl:value-of select="$resource"/> + <xsl:text>, </xsl:text> + <xsl:for-each select="rng:ref"> + <xsl:call-template name="idforref"/> + </xsl:for-each> + <xsl:text>);</xsl:text> + </xsl:if> + </xsl:for-each> </xsl:template> <xsl:template name="factorycreateelementmapfromstart"> @@ -610,6 +619,25 @@ string </xsl:text> <xsl:template name="factorytokentoidmapinner"> <xsl:variable name="name" select="@name"/> + <xsl:for-each select=".//rng:ref[not(ancestor::rng:element or ancestor::rng:attribute)]"> + <xsl:variable name="refname" select="@name"/> + <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:variable name="body"> <xsl:for-each select="ancestor::namespace/resource[@name=$name]"> <xsl:for-each select="element[@tokenid]|attribute[@tokenid]"> @@ -630,25 +658,6 @@ string </xsl:text> <xsl:value-of select="$name"/> <xsl:value-of select="$body"/> </xsl:if> - <xsl:for-each select=".//rng:ref[not(ancestor::rng:element or ancestor::rng:attribute)]"> - <xsl:variable name="refname" select="@name"/> - <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> <xsl:template name="factorytokentoidmap"> |