Code

Extensions. Fix for bug #569885 (No opacity value in XAML export) and whitespace...
authorJazzyNico <nicoduf@yahoo.fr>
Mon, 26 Apr 2010 18:43:35 +0000 (20:43 +0200)
committerJazzyNico <nicoduf@yahoo.fr>
Mon, 26 Apr 2010 18:43:35 +0000 (20:43 +0200)
share/extensions/svg2xaml.xsl

index 9cc71e8c6da2946c93a5cc27bd5f887b3f897f87..d118928b1503313e27975693d0ced729f605d50d 100644 (file)
@@ -42,21 +42,21 @@ exclude-result-prefixes="rdf xlink msxsl">
   <xsl:choose>\r
     <xsl:when test="starts-with($colorspec, 'rgb(') and not(contains($colorspec , '%'))">\r
       <xsl:value-of select="'#'" />\r
-      <xsl:if test="$opacityspec != '' and number($opacityspec) != 1"><xsl:call-template name="to_hex"><xsl:with-param name="convert"><xsl:value-of select="number($opacityspec) * 255" /></xsl:with-param></xsl:call-template></xsl:if>\r
+      <xsl:if test="$opacityspec != '' and number($opacityspec) != 1"><xsl:call-template name="to_hex"><xsl:with-param name="convert"><xsl:value-of select="round(number($opacityspec) * 255)" /></xsl:with-param></xsl:call-template></xsl:if>\r
       <xsl:call-template name="to_hex"><xsl:with-param name="convert"><xsl:value-of select="substring-before(substring-after($colorspec, 'rgb('), ',')" /></xsl:with-param></xsl:call-template>\r
       <xsl:call-template name="to_hex"><xsl:with-param name="convert"><xsl:value-of select="substring-before(substring-after(substring-after($colorspec, 'rgb('), ','), ',')" /></xsl:with-param></xsl:call-template>\r
       <xsl:call-template name="to_hex"><xsl:with-param name="convert"><xsl:value-of select="substring-before(substring-after(substring-after(substring-after($colorspec, 'rgb('), ','), ','), ')')" /></xsl:with-param></xsl:call-template>\r
     </xsl:when>\r
     <xsl:when test="starts-with($colorspec, 'rgb(') and contains($colorspec , '%')">\r
       <xsl:value-of select="'#'" />\r
-      <xsl:if test="$opacityspec != '' and number($opacityspec) != 1"><xsl:call-template name="to_hex"><xsl:with-param name="convert"><xsl:value-of select="number($opacityspec) * 255" /></xsl:with-param></xsl:call-template></xsl:if>\r
+      <xsl:if test="$opacityspec != '' and number($opacityspec) != 1"><xsl:call-template name="to_hex"><xsl:with-param name="convert"><xsl:value-of select="round(number($opacityspec) * 255)" /></xsl:with-param></xsl:call-template></xsl:if>\r
       <xsl:call-template name="to_hex"><xsl:with-param name="convert"><xsl:value-of select="number(substring-before(substring-after($colorspec, 'rgb('), '%,')) * 255 div 100" /></xsl:with-param></xsl:call-template>\r
       <xsl:call-template name="to_hex"><xsl:with-param name="convert"><xsl:value-of select="number(substring-before(substring-after(substring-after($colorspec, 'rgb('), ','), '%,')) * 255 div 100" /></xsl:with-param></xsl:call-template>\r
       <xsl:call-template name="to_hex"><xsl:with-param name="convert"><xsl:value-of select="number(substring-before(substring-after(substring-after(substring-after($colorspec, 'rgb('), ','), ','), '%)')) * 255 div 100" /></xsl:with-param></xsl:call-template>\r
     </xsl:when>\r
     <xsl:when test="starts-with($colorspec, '#')">\r
       <xsl:value-of select="'#'" />\r
-      <xsl:if test="$opacityspec != ''"><xsl:call-template name="to_hex"><xsl:with-param name="convert"><xsl:value-of select="number($opacityspec) * 255" /></xsl:with-param></xsl:call-template></xsl:if>\r
+      <xsl:if test="$opacityspec != ''"><xsl:call-template name="to_hex"><xsl:with-param name="convert"><xsl:value-of select="round(number($opacityspec) * 255)" /></xsl:with-param></xsl:call-template></xsl:if>\r
       <xsl:choose>\r
         <xsl:when test="string-length(substring-after($colorspec, '#')) = 3">\r
           <xsl:variable name="colorspec3"><xsl:value-of select="translate(substring-after($colorspec, '#'), 'abcdefgh', 'ABCDEFGH')" /></xsl:variable>\r
@@ -65,7 +65,7 @@ exclude-result-prefixes="rdf xlink msxsl">
           <xsl:value-of select="concat(substring($colorspec3, 3, 1), substring($colorspec3, 3, 1))" />\r
         </xsl:when>\r
         <xsl:otherwise><xsl:value-of select="translate(substring-after($colorspec, '#'), 'abcdefgh', 'ABCDEFGH')" /></xsl:otherwise>\r
-      </xsl:choose>  \r
+      </xsl:choose>\r
     </xsl:when>\r
     <xsl:otherwise>\r
       <xsl:variable name="named_color_hex" select="document('colors.xml')/colors/color[@name = translate($colorspec, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')]/@hex" />\r
@@ -76,7 +76,7 @@ exclude-result-prefixes="rdf xlink msxsl">
           <xsl:value-of select="substring-after($named_color_hex, '#')" />\r
         </xsl:when>\r
         <xsl:otherwise><xsl:value-of select="$colorspec" /></xsl:otherwise>\r
-      </xsl:choose>  \r
+      </xsl:choose>\r
     </xsl:otherwise>\r
   </xsl:choose>\r
 </xsl:template>\r
@@ -91,9 +91,9 @@ exclude-result-prefixes="rdf xlink msxsl">
       <xsl:choose>\r
         <xsl:when test="contains($Fill, ';')">\r
           <xsl:value-of select="substring-before($Fill, ';')" />\r
-        </xsl:when>  \r
+        </xsl:when>\r
         <xsl:otherwise><xsl:value-of select="$Fill" /></xsl:otherwise>\r
-      </xsl:choose> \r
+      </xsl:choose>\r
     </xsl:when>\r
     <xsl:when test="name(..) = 'g' or name(..) = 'svg'"><xsl:apply-templates mode="fill" select="parent::*"/></xsl:when>\r
   </xsl:choose>\r
@@ -107,13 +107,12 @@ exclude-result-prefixes="rdf xlink msxsl">
       <xsl:choose>\r
         <xsl:when test="contains($Opacity, ';')"><xsl:value-of select="substring-before($Opacity, ';')" /></xsl:when>\r
         <xsl:otherwise><xsl:value-of select="$Opacity" /></xsl:otherwise>\r
-      </xsl:choose>  \r
+      </xsl:choose>\r
     </xsl:when>\r
     <xsl:when test="name(..) = 'g' or name(..) = 'svg'"><xsl:apply-templates mode="fill_opacity" select="parent::*" /></xsl:when>\r
-  </xsl:choose>  \r
+  </xsl:choose>\r
 </xsl:template>\r
 \r
-\r
 <xsl:template mode="fill_rule" match="*">\r
   <xsl:choose>\r
     <xsl:when test="@fill-rule and (@fill-rule = 'nonzero' or @fill-rule = 'evenodd')"><xsl:attribute name="FillRule"><xsl:value-of select="@fill-rule" /></xsl:attribute></xsl:when>\r
@@ -124,11 +123,11 @@ exclude-result-prefixes="rdf xlink msxsl">
           <xsl:if test="substring-before($FillRule, ';') = 'nonzero' or substring-before($FillRule, ';') = 'evenodd'"><xsl:attribute name="FillRule"><xsl:value-of select="substring-before($FillRule, ';')" /></xsl:attribute></xsl:if>\r
         </xsl:when>\r
         <xsl:when test="$FillRule = 'nonzero' or $FillRule = 'evenodd'"><xsl:attribute name="FillRule"><xsl:value-of select="$FillRule" /></xsl:attribute></xsl:when>\r
-      </xsl:choose>  \r
+      </xsl:choose>\r
     </xsl:when>\r
     <xsl:when test="name(..) = 'g' or name(..) = 'svg'"><xsl:apply-templates mode="fill_rule" select="parent::*"/></xsl:when>\r
     <xsl:otherwise><xsl:attribute name="FillRule">NonZero</xsl:attribute></xsl:otherwise>\r
-  </xsl:choose>  \r
+  </xsl:choose>\r
 </xsl:template>\r
 \r
 <xsl:template mode="template_fill" match="*">\r
@@ -148,28 +147,27 @@ exclude-result-prefixes="rdf xlink msxsl">
         <xsl:otherwise>#000000</xsl:otherwise>\r
       </xsl:choose>\r
     </xsl:attribute>\r
-  </xsl:if>   \r
+  </xsl:if>\r
 </xsl:template>\r
 \r
 <xsl:template mode="stroke" match="*">\r
   <xsl:choose>\r
     <xsl:when test="@stroke and starts-with(@stroke, 'url(#')"><xsl:value-of select="concat('{StaticResource ', substring-before(substring-after(@stroke, 'url(#'), ')'), '}')" /></xsl:when>\r
     <xsl:when test="@stroke and @stroke != 'none'"><xsl:value-of select="@stroke" /></xsl:when>\r
-    <xsl:when test="@style and contains(@style, 'stroke:') and starts-with(substring-after(@style, 'stroke:'), 'url(#')"><xsl:value-of select="concat('{StaticResource ', substring-before(substring-after(@style, 'url(#'), ')'), '}')" /></xsl:when>    \r
+    <xsl:when test="@style and contains(@style, 'stroke:') and starts-with(substring-after(@style, 'stroke:'), 'url(#')"><xsl:value-of select="concat('{StaticResource ', substring-before(substring-after(@style, 'url(#'), ')'), '}')" /></xsl:when>\r
     <xsl:when test="@style and contains(@style, 'stroke:')">\r
       <xsl:variable name="Stroke" select="substring-after(@style, 'stroke:')" />\r
       <xsl:choose>\r
         <xsl:when test="contains($Stroke, ';')">\r
           <xsl:if test="substring-before($Stroke, ';') != 'none'"><xsl:value-of select="substring-before($Stroke, ';')" /></xsl:if>\r
-        </xsl:when>  \r
+        </xsl:when>\r
         <xsl:when test="$Stroke != 'none'"><xsl:value-of select="$Stroke" /></xsl:when>\r
-      </xsl:choose>  \r
+      </xsl:choose>\r
     </xsl:when>\r
     <xsl:when test="name(..) = 'g' or name(..) = 'svg'"><xsl:apply-templates mode="stroke" select="parent::*"/></xsl:when>\r
   </xsl:choose>\r
 </xsl:template>\r
 \r
-\r
 <xsl:template mode="stroke_opacity" match="*">\r
   <xsl:choose>\r
     <xsl:when test="@stroke-opacity"><xsl:value-of select="@stroke-opacity" /></xsl:when>\r
@@ -178,10 +176,10 @@ exclude-result-prefixes="rdf xlink msxsl">
       <xsl:choose>\r
         <xsl:when test="contains($Opacity, ';')"><xsl:value-of select="substring-before($Opacity, ';')" /></xsl:when>\r
         <xsl:otherwise><xsl:value-of select="$Opacity" /></xsl:otherwise>\r
-      </xsl:choose>  \r
+      </xsl:choose>\r
     </xsl:when>\r
     <xsl:when test="name(..) = 'g' or name(..) = 'svg'"><xsl:apply-templates mode="stroke_opacity" select="parent::*" /></xsl:when>\r
-  </xsl:choose>  \r
+  </xsl:choose>\r
 </xsl:template>\r
 \r
 <xsl:template mode="template_stroke" match="*">\r
@@ -192,7 +190,7 @@ exclude-result-prefixes="rdf xlink msxsl">
       <xsl:call-template name="template_color">\r
         <xsl:with-param name="colorspec"><xsl:value-of select="$stroke" /></xsl:with-param>\r
         <xsl:with-param name="opacityspec"><xsl:value-of select="$stroke_opacity" /></xsl:with-param>\r
-      </xsl:call-template>  \r
+      </xsl:call-template>\r
     </xsl:attribute>\r
   </xsl:if>\r
 </xsl:template>\r
@@ -206,11 +204,11 @@ exclude-result-prefixes="rdf xlink msxsl">
         <xsl:choose>\r
           <xsl:when test="contains($StrokeThickness, ';')"><xsl:value-of select="substring-before($StrokeThickness, ';')" /></xsl:when>\r
           <xsl:otherwise><xsl:value-of select="$StrokeThickness" /></xsl:otherwise>\r
-        </xsl:choose>  \r
+        </xsl:choose>\r
       </xsl:attribute>\r
     </xsl:when>\r
     <xsl:when test="name(..) = 'g' or name(..) = 'svg'"><xsl:apply-templates mode="stroke_width" select="parent::*"/></xsl:when>\r
-  </xsl:choose>  \r
+  </xsl:choose>\r
 </xsl:template>\r
 \r
 <xsl:template mode="stroke_miterlimit" match="*">\r
@@ -222,11 +220,11 @@ exclude-result-prefixes="rdf xlink msxsl">
         <xsl:choose>\r
           <xsl:when test="contains($StrokeMiterLimit, ';')"><xsl:value-of select="substring-before($StrokeMiterLimit, ';')" /></xsl:when>\r
           <xsl:otherwise><xsl:value-of select="$StrokeMiterLimit" /></xsl:otherwise>\r
-        </xsl:choose>  \r
+        </xsl:choose>\r
       </xsl:attribute>\r
     </xsl:when>\r
     <xsl:when test="name(..) = 'g' or name(..) = 'svg'"><xsl:apply-templates mode="stroke_miterlimit" select="parent::*"/></xsl:when>\r
-  </xsl:choose>  \r
+  </xsl:choose>\r
 </xsl:template>\r
 \r
 <xsl:template mode="stroke_dasharray" match="*">\r
@@ -240,10 +238,10 @@ exclude-result-prefixes="rdf xlink msxsl">
           <xsl:if test="substring-before($StrokeDashArray, ';') != 'none'"><xsl:attribute name="StrokeDashArray"><xsl:value-of select="substring-before($StrokeDashArray, ';')" /></xsl:attribute></xsl:if>\r
         </xsl:when>\r
         <xsl:when test="$StrokeDashArray != 'none'"><xsl:attribute name="StrokeDashArray"><xsl:value-of select="$StrokeDashArray" /></xsl:attribute></xsl:when>\r
-      </xsl:choose>  \r
+      </xsl:choose>\r
     </xsl:when>\r
     <xsl:when test="name(..) = 'g' or name(..) = 'svg'"><xsl:apply-templates mode="stroke_dasharray" select="parent::*"/></xsl:when>\r
-  </xsl:choose>  \r
+  </xsl:choose>\r
 </xsl:template>\r
 \r
 <xsl:template mode="stroke_dashoffset" match="*">\r
@@ -255,11 +253,11 @@ exclude-result-prefixes="rdf xlink msxsl">
         <xsl:choose>\r
           <xsl:when test="contains($StrokeDashOffset, ';')"><xsl:value-of select="substring-before($StrokeDashOffset, ';')" /></xsl:when>\r
           <xsl:otherwise><xsl:value-of select="$StrokeDashOffset" /></xsl:otherwise>\r
-        </xsl:choose>  \r
+        </xsl:choose>\r
       </xsl:attribute>\r
     </xsl:when>\r
     <xsl:when test="name(..) = 'g' or name(..) = 'svg'"><xsl:apply-templates mode="stroke_dashoffset" select="parent::*"/></xsl:when>\r
-  </xsl:choose>  \r
+  </xsl:choose>\r
 </xsl:template>\r
 \r
 <xsl:template name="linejoin_svg_to_xaml">\r
@@ -287,11 +285,11 @@ exclude-result-prefixes="rdf xlink msxsl">
           <xsl:otherwise>\r
             <xsl:call-template name="linejoin_svg_to_xaml"><xsl:with-param name="linejoin"><xsl:value-of select="$StrokeLineJoin" /></xsl:with-param></xsl:call-template>\r
           </xsl:otherwise>\r
-        </xsl:choose>  \r
+        </xsl:choose>\r
       </xsl:attribute>\r
     </xsl:when>\r
     <xsl:when test="name(..) = 'g' or name(..) = 'svg'"><xsl:apply-templates mode="stroke_linejoin" select="parent::*"/></xsl:when>\r
-  </xsl:choose>  \r
+  </xsl:choose>\r
 </xsl:template>\r
 \r
 <xsl:template name="linecap_svg_to_xaml">\r
@@ -323,7 +321,7 @@ exclude-result-prefixes="rdf xlink msxsl">
           <xsl:otherwise>\r
             <xsl:call-template name="linecap_svg_to_xaml"><xsl:with-param name="linecap"><xsl:value-of select="$StrokeStartLineCap" /></xsl:with-param></xsl:call-template>\r
           </xsl:otherwise>\r
-        </xsl:choose>  \r
+        </xsl:choose>\r
       </xsl:attribute>\r
       <xsl:attribute name="StrokeEndLineCap">\r
         <xsl:choose>\r
@@ -333,17 +331,17 @@ exclude-result-prefixes="rdf xlink msxsl">
           <xsl:otherwise>\r
             <xsl:call-template name="linecap_svg_to_xaml"><xsl:with-param name="linecap"><xsl:value-of select="$StrokeEndLineCap" /></xsl:with-param></xsl:call-template>\r
           </xsl:otherwise>\r
-        </xsl:choose>  \r
+        </xsl:choose>\r
       </xsl:attribute>\r
     </xsl:when>\r
     <xsl:when test="name(..) = 'g' or name(..) = 'svg'"><xsl:apply-templates mode="stroke_linecap" select="parent::*"/></xsl:when>\r
-  </xsl:choose>  \r
+  </xsl:choose>\r
 </xsl:template>\r
 \r
 <xsl:template mode="resources" match="*">\r
   <!-- should be in-depth -->\r
   <xsl:if test="ancestor::*[name(.) = 'defs']"><xsl:attribute name="x:Key"><xsl:value-of select="@id" /></xsl:attribute></xsl:if>\r
-</xsl:template>  \r
+</xsl:template>\r
 \r
 <xsl:template name="to_hex">\r
   <xsl:param name="convert" />\r
@@ -359,36 +357,36 @@ exclude-result-prefixes="rdf xlink msxsl">
         <xsl:choose>\r
           <xsl:when test="contains($temp_opacity, ';')"><xsl:value-of select="substring-before($temp_opacity, ';')" /></xsl:when>\r
           <xsl:otherwise><xsl:value-of select="$temp_opacity" /></xsl:otherwise>\r
-        </xsl:choose>          \r
+        </xsl:choose>\r
       </xsl:when>\r
       <xsl:otherwise><xsl:value-of select="''" /></xsl:otherwise>\r
     </xsl:choose>\r
   </xsl:variable>\r
   <xsl:variable name="hex_opacity">\r
     <xsl:choose>\r
-      <xsl:when test="$Opacity != ''"><xsl:call-template name="to_hex"><xsl:with-param name="convert"><xsl:value-of select="number($Opacity) * 255" /></xsl:with-param></xsl:call-template>  </xsl:when>  \r
+      <xsl:when test="$Opacity != ''"><xsl:call-template name="to_hex"><xsl:with-param name="convert"><xsl:value-of select="number($Opacity) * 255" /></xsl:with-param></xsl:call-template>  </xsl:when>\r
       <xsl:otherwise><xsl:value-of select="$Opacity" /></xsl:otherwise>\r
-    </xsl:choose>  \r
+    </xsl:choose>\r
   </xsl:variable>\r
   <xsl:variable name="stopcolor">\r
     <xsl:choose>\r
       <xsl:when test="@stop-color">\r
-        <xsl:call-template name="template_color"><xsl:with-param name="colorspec"><xsl:value-of select="@stop-color" /></xsl:with-param></xsl:call-template>  \r
+        <xsl:call-template name="template_color"><xsl:with-param name="colorspec"><xsl:value-of select="@stop-color" /></xsl:with-param></xsl:call-template>\r
       </xsl:when>\r
       <xsl:when test="@style and contains(@style, 'stop-color:')">\r
         <xsl:variable name="Color" select="substring-after(@style, 'stop-color:')" />\r
         <xsl:choose>\r
           <xsl:when test="contains($Color, ';')">\r
-            <xsl:call-template name="template_color"><xsl:with-param name="colorspec"><xsl:value-of select="substring-before($Color, ';')" /></xsl:with-param></xsl:call-template>  \r
+            <xsl:call-template name="template_color"><xsl:with-param name="colorspec"><xsl:value-of select="substring-before($Color, ';')" /></xsl:with-param></xsl:call-template>\r
           </xsl:when>\r
           <xsl:otherwise>\r
-            <xsl:call-template name="template_color"><xsl:with-param name="colorspec"><xsl:value-of select="$Color" /></xsl:with-param></xsl:call-template>  \r
+            <xsl:call-template name="template_color"><xsl:with-param name="colorspec"><xsl:value-of select="$Color" /></xsl:with-param></xsl:call-template>\r
           </xsl:otherwise>\r
-        </xsl:choose>  \r
+        </xsl:choose>\r
       </xsl:when>\r
       <xsl:when test="name(..) = 'g' or name(..) = 'svg'"><xsl:apply-templates mode="stop_color" select="parent::*"/></xsl:when>\r
       <xsl:otherwise>#000</xsl:otherwise>\r
-    </xsl:choose>  \r
+    </xsl:choose>\r
   </xsl:variable>\r
   <xsl:attribute name="Color">\r
     <xsl:choose>\r
@@ -407,11 +405,11 @@ exclude-result-prefixes="rdf xlink msxsl">
         <xsl:choose>\r
           <xsl:when test="contains($Opacity, ';')"><xsl:value-of select="substring-before($Opacity, ';')" /></xsl:when>\r
           <xsl:otherwise><xsl:value-of select="$Opacity" /></xsl:otherwise>\r
-        </xsl:choose>  \r
+        </xsl:choose>\r
       </xsl:attribute>\r
     </xsl:when>\r
     <xsl:when test="name(..) = 'g' or name(..) = 'svg'"><xsl:apply-templates mode="stop_opacity" select="parent::*"/></xsl:when>\r
-  </xsl:choose>  \r
+  </xsl:choose>\r
 </xsl:template>\r
 \r
 <xsl:template mode="offset" match="*">\r
@@ -421,7 +419,7 @@ exclude-result-prefixes="rdf xlink msxsl">
         <xsl:choose>\r
           <xsl:when test="contains(@offset, '%')"><xsl:value-of select="number(substring-before(@offset, '%')) div 100" /></xsl:when>\r
           <xsl:otherwise><xsl:value-of select="@offset" /></xsl:otherwise>\r
-        </xsl:choose>  \r
+        </xsl:choose>\r
       </xsl:attribute>\r
     </xsl:when>\r
     <xsl:when test="@style and contains(@style, 'offset:')">\r
@@ -431,11 +429,11 @@ exclude-result-prefixes="rdf xlink msxsl">
           <xsl:when test="contains($Offset, '%')"><xsl:value-of select="number(substring-before($Offset, '%')) div 100" /></xsl:when>        \r
           <xsl:when test="contains($Offset, ';')"><xsl:value-of select="substring-before($Offset, ';')" /></xsl:when>\r
           <xsl:otherwise><xsl:value-of select="$Offset" /></xsl:otherwise>\r
-        </xsl:choose>  \r
+        </xsl:choose>\r
       </xsl:attribute>\r
     </xsl:when>\r
     <xsl:when test="name(..) = 'g' or name(..) = 'svg'"><xsl:apply-templates mode="stop_offset" select="parent::*"/></xsl:when>\r
-  </xsl:choose>  \r
+  </xsl:choose>\r
 </xsl:template>\r
 \r
 <xsl:template name="parse_transform">\r
@@ -457,7 +455,7 @@ exclude-result-prefixes="rdf xlink msxsl">
             <xsl:attribute name="ScaleX"><xsl:value-of select="$scale" /></xsl:attribute>\r
             <xsl:attribute name="ScaleY"><xsl:value-of select="$scale" /></xsl:attribute>\r
           </xsl:otherwise>\r
-        </xsl:choose>  \r
+        </xsl:choose>\r
       </ScaleTransform>\r
       <xsl:call-template name="parse_transform"><xsl:with-param name="input" select="substring-after($input, ') ')" /></xsl:call-template>\r
     </xsl:when>\r
@@ -494,10 +492,10 @@ exclude-result-prefixes="rdf xlink msxsl">
             <xsl:attribute name="Y"><xsl:value-of select="substring-after($translate, ' ')" /></xsl:attribute>\r
           </xsl:when>\r
           <xsl:otherwise><xsl:attribute name="X"><xsl:value-of select="$translate" /></xsl:attribute></xsl:otherwise>\r
-        </xsl:choose>  \r
+        </xsl:choose>\r
       </TranslateTransform>\r
       <xsl:call-template name="parse_transform"><xsl:with-param name="input" select="substring-after($input, ') ')" /></xsl:call-template>\r
-    </xsl:when>  \r
+    </xsl:when>\r
   </xsl:choose>\r
 </xsl:template>\r
 \r
@@ -525,7 +523,7 @@ exclude-result-prefixes="rdf xlink msxsl">
         <xsl:choose>\r
           <xsl:when test="count(msxsl:node-set($transform_nodes)/*) = 1"><xsl:copy-of select="msxsl:node-set($transform_nodes)" /></xsl:when>\r
           <xsl:when test="count(msxsl:node-set($transform_nodes)/*) &gt; 1"><TransformGroup><xsl:copy-of select="msxsl:node-set($transform_nodes)" /></TransformGroup></xsl:when>\r
-        </xsl:choose>  \r
+        </xsl:choose>\r
       </xsl:element>\r
     </xsl:when>\r
     <xsl:when test="system-property('xsl:vendor') = 'Microsoft'">\r
@@ -533,17 +531,17 @@ exclude-result-prefixes="rdf xlink msxsl">
       <xsl:choose>\r
         <xsl:when test="count(msxsl:node-set($transform_nodes)/*) = 1"><xsl:copy-of select="msxsl:node-set($transform_nodes)" /></xsl:when>\r
         <xsl:when test="count(msxsl:node-set($transform_nodes)/*) &gt; 1"><TransformGroup><xsl:copy-of select="msxsl:node-set($transform_nodes)" /></TransformGroup></xsl:when>\r
-      </xsl:choose>  \r
+      </xsl:choose>\r
     </xsl:when>\r
-  </xsl:choose>  \r
+  </xsl:choose>\r
 </xsl:template>\r
 \r
 <xsl:template mode="clip" match="*">\r
   <xsl:choose>\r
-    <xsl:when test="@clip-path and defs/clipPath/path/@d"><xsl:attribute name="Clip"><xsl:value-of select="defs/clipPath/path/@d" /></xsl:attribute></xsl:when>  \r
-    <xsl:when test="@clip-path and starts-with(@clip-path, 'url(#')"><xsl:attribute name="Clip"><xsl:value-of select="concat('{StaticResource ', substring-before(substring-after(@clip-path, 'url(#'), ')'), '}')" /></xsl:attribute></xsl:when>  \r
-    <xsl:when test="@style and contains(@style, 'clip-path:url(#')"><xsl:attribute name="Clip"><xsl:value-of select="concat('{StaticResource ', substring-before(substring-after(@style, 'url(#'), ')'), '}')" /></xsl:attribute></xsl:when>  \r
-    <xsl:when test="clipPath"><xsl:apply-templates mode="forward" /></xsl:when>  \r
+    <xsl:when test="@clip-path and defs/clipPath/path/@d"><xsl:attribute name="Clip"><xsl:value-of select="defs/clipPath/path/@d" /></xsl:attribute></xsl:when>\r
+    <xsl:when test="@clip-path and starts-with(@clip-path, 'url(#')"><xsl:attribute name="Clip"><xsl:value-of select="concat('{StaticResource ', substring-before(substring-after(@clip-path, 'url(#'), ')'), '}')" /></xsl:attribute></xsl:when>\r
+    <xsl:when test="@style and contains(@style, 'clip-path:url(#')"><xsl:attribute name="Clip"><xsl:value-of select="concat('{StaticResource ', substring-before(substring-after(@style, 'url(#'), ')'), '}')" /></xsl:attribute></xsl:when>\r
+    <xsl:when test="clipPath"><xsl:apply-templates mode="forward" /></xsl:when>\r
   </xsl:choose>\r
 </xsl:template>\r
 \r
@@ -566,7 +564,7 @@ exclude-result-prefixes="rdf xlink msxsl">
         <xsl:apply-templates mode="forward" />\r
       </Viewbox>\r
     </xsl:otherwise>   \r
-  </xsl:choose>   \r
+  </xsl:choose>\r
 </xsl:template>\r
 \r
 <xsl:template mode="forward" match="defs">\r
@@ -582,9 +580,9 @@ exclude-result-prefixes="rdf xlink msxsl">
         <xsl:apply-templates mode="clip" select="." />\r
         -->\r
         <xsl:if test="@width and not(contains(@width, '%'))"><xsl:attribute name="Width"><xsl:value-of select="@width" /></xsl:attribute></xsl:if>\r
-        <xsl:if test="@height and not(contains(@height, '%'))"><xsl:attribute name="Height"><xsl:value-of select="@height" /></xsl:attribute></xsl:if>    \r
+        <xsl:if test="@height and not(contains(@height, '%'))"><xsl:attribute name="Height"><xsl:value-of select="@height" /></xsl:attribute></xsl:if>\r
         <xsl:if test="@x"><xsl:attribute name="Canvas.Left"><xsl:value-of select="@x" /></xsl:attribute></xsl:if>\r
-        <xsl:if test="@y"><xsl:attribute name="Canvas.Top"><xsl:value-of select="@y" /></xsl:attribute></xsl:if>    \r
+        <xsl:if test="@y"><xsl:attribute name="Canvas.Top"><xsl:value-of select="@y" /></xsl:attribute></xsl:if>\r
         <xsl:if test="@viewBox">\r
           <xsl:variable name="viewBox"><xsl:value-of select="normalize-space(translate(@viewBox, ',', ' '))" /></xsl:variable>\r
           <xsl:attribute name="Width"><xsl:value-of select="substring-before(substring-after(substring-after($viewBox, ' '), ' '), ' ')" /></xsl:attribute>\r
@@ -661,7 +659,7 @@ exclude-result-prefixes="rdf xlink msxsl">
           </xsl:when>\r
           <xsl:otherwise><xsl:value-of select="$font_size" /></xsl:otherwise>\r
         </xsl:choose>\r
-      </xsl:attribute>  \r
+      </xsl:attribute>\r
     </xsl:if>\r
     <xsl:if test="@font-weight"><xsl:attribute name="FontWeight"><xsl:value-of select="@font-weight" /></xsl:attribute></xsl:if>\r
     <xsl:if test="@style and contains(@style, 'font-weight:')">\r
@@ -673,7 +671,7 @@ exclude-result-prefixes="rdf xlink msxsl">
           </xsl:when>\r
           <xsl:otherwise><xsl:value-of select="$font_weight" /></xsl:otherwise>\r
         </xsl:choose>\r
-      </xsl:attribute>  \r
+      </xsl:attribute>\r
     </xsl:if>\r
     <xsl:if test="@font-family"><xsl:attribute name="FontFamily"><xsl:value-of select="@font-family" /></xsl:attribute></xsl:if>\r
     <xsl:if test="@style and contains(@style, 'font-family:')">\r
@@ -685,7 +683,7 @@ exclude-result-prefixes="rdf xlink msxsl">
           </xsl:when>\r
           <xsl:otherwise><xsl:value-of select="$font_family" /></xsl:otherwise>\r
         </xsl:choose>\r
-      </xsl:attribute>  \r
+      </xsl:attribute>\r
     </xsl:if>\r
     <xsl:if test="@font-style"><xsl:attribute name="FontStyle"><xsl:value-of select="@font-style" /></xsl:attribute></xsl:if>\r
     <xsl:if test="@style and contains(@style, 'font-style:')">\r
@@ -697,7 +695,7 @@ exclude-result-prefixes="rdf xlink msxsl">
           </xsl:when>\r
           <xsl:otherwise><xsl:value-of select="$font_style" /></xsl:otherwise>\r
         </xsl:choose>\r
-      </xsl:attribute>  \r
+      </xsl:attribute>\r
     </xsl:if>\r
     <xsl:if test="@fill"><xsl:attribute name="Foreground"><xsl:value-of select="@fill" /></xsl:attribute></xsl:if>\r
     <xsl:if test="@style and contains(@style, 'fill')">\r
@@ -709,7 +707,7 @@ exclude-result-prefixes="rdf xlink msxsl">
           </xsl:when>\r
           <xsl:otherwise><xsl:value-of select="$fill" /></xsl:otherwise>\r
         </xsl:choose>\r
-      </xsl:attribute>  \r
+      </xsl:attribute>\r
     </xsl:if>\r
     <xsl:if test="@text-anchor">\r
       <xsl:attribute name="HorizontalAlignment">\r
@@ -795,7 +793,7 @@ exclude-result-prefixes="rdf xlink msxsl">
           <xsl:otherwise>\r
             <xsl:attribute name="StartPoint"><xsl:value-of select="concat(@x1, ',', @y1)" /></xsl:attribute>\r
           </xsl:otherwise>\r
-        </xsl:choose>  \r
+        </xsl:choose>\r
         <xsl:choose>\r
           <xsl:when test="contains(@x2, '%') and contains(@y2, '%')">\r
             <xsl:attribute name="EndPoint"><xsl:value-of select="concat(substring-before(@x2, '%') div 100, ',', substring-before(@y2,'%') div 100)" /></xsl:attribute>\r
@@ -817,15 +815,15 @@ exclude-result-prefixes="rdf xlink msxsl">
             <xsl:variable name="reference_id" select="@xlink:href" />\r
             <xsl:apply-templates mode="forward" select="//*[name(.) = 'linearGradient' and $reference_id = concat('#', @id)]/*" />\r
           </xsl:when>\r
-          <xsl:otherwise><xsl:apply-templates mode="forward" /></xsl:otherwise>  \r
-        </xsl:choose>  \r
+          <xsl:otherwise><xsl:apply-templates mode="forward" /></xsl:otherwise>\r
+        </xsl:choose>\r
       </GradientStopCollection>\r
     </LinearGradientBrush.GradientStops>\r
     <xsl:if test="@gradientTransform">\r
     <LinearGradientBrush.Transform>\r
       <xsl:apply-templates mode="transform" select="." />\r
     </LinearGradientBrush.Transform>\r
-  </xsl:if>  \r
+  </xsl:if>\r
   </LinearGradientBrush>\r
 </xsl:template>\r
 \r
@@ -852,10 +850,10 @@ exclude-result-prefixes="rdf xlink msxsl">
         <xsl:choose>\r
           <xsl:when test="contains(@cx, '%') and contains(@cy, '%')">\r
             <xsl:value-of select="concat(number(substring-before(@cx, '%')) div 100, ',', number(substring-before(@cy, '%')) div 100)" />\r
-          </xsl:when>  \r
+          </xsl:when>\r
           <xsl:otherwise>\r
             <xsl:value-of select="concat(@cx, ',', @cy)" />\r
-          </xsl:otherwise>  \r
+          </xsl:otherwise>\r
         </xsl:choose>\r
       </xsl:attribute>\r
     </xsl:if>  \r
@@ -864,25 +862,25 @@ exclude-result-prefixes="rdf xlink msxsl">
         <xsl:choose>\r
           <xsl:when test="contains(@fx, '%') and contains(@fy, '%')">\r
             <xsl:value-of select="concat(number(substring-before(@fx, '%')) div 100, ',', number(substring-before(@fy, '%')) div 100)" />\r
-          </xsl:when>  \r
+          </xsl:when>\r
           <xsl:otherwise>\r
             <xsl:value-of select="concat(@fx, ',', @fy)" />\r
-          </xsl:otherwise>  \r
+          </xsl:otherwise>\r
         </xsl:choose>\r
       </xsl:attribute>\r
-    </xsl:if>  \r
+    </xsl:if>\r
     <xsl:if test="@r">\r
       <xsl:choose>\r
         <xsl:when test="contains(@r, '%')">\r
           <xsl:attribute name="RadiusX"><xsl:value-of select="number(substring-before(@r, '%')) div 100" /></xsl:attribute>\r
           <xsl:attribute name="RadiusY"><xsl:value-of select="number(substring-before(@r, '%')) div 100" /></xsl:attribute>\r
-        </xsl:when>  \r
+        </xsl:when>\r
         <xsl:otherwise>\r
           <xsl:attribute name="RadiusX"><xsl:value-of select="@r" /></xsl:attribute>\r
           <xsl:attribute name="RadiusY"><xsl:value-of select="@r" /></xsl:attribute>\r
-        </xsl:otherwise>  \r
+        </xsl:otherwise>\r
       </xsl:choose>\r
-    </xsl:if>  \r
+    </xsl:if>\r
     <RadialGradientBrush.GradientStops>\r
       <GradientStopCollection>\r
         <xsl:choose>\r
@@ -898,7 +896,7 @@ exclude-result-prefixes="rdf xlink msxsl">
     <RadialGradientBrush.Transform>\r
       <xsl:apply-templates mode="transform" select="." />\r
     </RadialGradientBrush.Transform>\r
-    </xsl:if>  \r
+    </xsl:if>\r
   </RadialGradientBrush>\r
 </xsl:template>\r
 \r
@@ -932,18 +930,18 @@ exclude-result-prefixes="rdf xlink msxsl">
     <xsl:apply-templates mode="transform" select=".">\r
       <xsl:with-param name="mapped_type" select="'Line'" />\r
     </xsl:apply-templates>    \r
-    \r
+\r
     <xsl:apply-templates mode="forward" />\r
   </Line>\r
 </xsl:template>\r
 \r
 <xsl:template mode="forward" match="*[name(.) = 'rect']">\r
   <Rectangle>\r
-    <xsl:if test="@x"><xsl:attribute name="Canvas.Left"><xsl:value-of select="@x" /></xsl:attribute></xsl:if>  \r
-    <xsl:if test="@y"><xsl:attribute name="Canvas.Top"><xsl:value-of select="@y" /></xsl:attribute></xsl:if>  \r
-    <xsl:if test="@width"><xsl:attribute name="Width"><xsl:value-of select="@width" /></xsl:attribute></xsl:if>  \r
-    <xsl:if test="@height"><xsl:attribute name="Height"><xsl:value-of select="@height" /></xsl:attribute></xsl:if>  \r
-    <xsl:if test="@rx"><xsl:attribute name="RadiusX"><xsl:value-of select="@rx" /></xsl:attribute></xsl:if>  \r
+    <xsl:if test="@x"><xsl:attribute name="Canvas.Left"><xsl:value-of select="@x" /></xsl:attribute></xsl:if>\r
+    <xsl:if test="@y"><xsl:attribute name="Canvas.Top"><xsl:value-of select="@y" /></xsl:attribute></xsl:if>\r
+    <xsl:if test="@width"><xsl:attribute name="Width"><xsl:value-of select="@width" /></xsl:attribute></xsl:if>\r
+    <xsl:if test="@height"><xsl:attribute name="Height"><xsl:value-of select="@height" /></xsl:attribute></xsl:if>\r
+    <xsl:if test="@rx"><xsl:attribute name="RadiusX"><xsl:value-of select="@rx" /></xsl:attribute></xsl:if>\r
     <xsl:if test="@ry"><xsl:attribute name="RadiusY"><xsl:value-of select="@ry" /></xsl:attribute></xsl:if>\r
     <xsl:if test="@rx and not(@ry)"><xsl:attribute name="RadiusX"><xsl:value-of select="@rx" /></xsl:attribute><xsl:attribute name="RadiusY"><xsl:value-of select="@rx" /></xsl:attribute></xsl:if>\r
     <xsl:if test="@ry and not(@rx)"><xsl:attribute name="RadiusX"><xsl:value-of select="@ry" /></xsl:attribute><xsl:attribute name="RadiusY"><xsl:value-of select="@ry" /></xsl:attribute></xsl:if>\r
@@ -956,15 +954,15 @@ exclude-result-prefixes="rdf xlink msxsl">
     <xsl:apply-templates mode="stroke_dashoffset" select="." />\r
     <xsl:apply-templates mode="stroke_linejoin" select="." />\r
     <xsl:apply-templates mode="stroke_linecap" select="." />\r
-    \r
+\r
     <xsl:apply-templates mode="resources" select="." />\r
-    \r
+\r
     <xsl:apply-templates mode="clip" select="." />\r
-    \r
+\r
     <xsl:apply-templates mode="transform" select=".">\r
       <xsl:with-param name="mapped_type" select="'Rectangle'" />\r
-    </xsl:apply-templates>    \r
-    \r
+    </xsl:apply-templates>\r
+\r
     <xsl:apply-templates mode="forward" />\r
   </Rectangle>\r
 </xsl:template>\r
@@ -982,11 +980,11 @@ exclude-result-prefixes="rdf xlink msxsl">
     <xsl:apply-templates mode="stroke_dashoffset" select="." />\r
     <xsl:apply-templates mode="stroke_linejoin" select="." />\r
     <xsl:apply-templates mode="stroke_linecap" select="." />\r
-    \r
+\r
     <xsl:apply-templates mode="transform" select=".">\r
       <xsl:with-param name="mapped_type" select="'Polygon'" />\r
-    </xsl:apply-templates>    \r
-    \r
+    </xsl:apply-templates>\r
+\r
     <xsl:apply-templates mode="forward" />\r
   </Polygon>\r
 </xsl:template>\r
@@ -1004,11 +1002,11 @@ exclude-result-prefixes="rdf xlink msxsl">
     <xsl:apply-templates mode="stroke_dashoffset" select="." />\r
     <xsl:apply-templates mode="stroke_linejoin" select="." />\r
     <xsl:apply-templates mode="stroke_linecap" select="." />\r
-    \r
+\r
     <xsl:apply-templates mode="transform" select=".">\r
       <xsl:with-param name="mapped_type" select="'Polyline'" />\r
-    </xsl:apply-templates>    \r
-    \r
+    </xsl:apply-templates>\r
+\r
     <xsl:apply-templates mode="forward" />\r
   </Polyline>\r
 </xsl:template>\r
@@ -1038,16 +1036,16 @@ exclude-result-prefixes="rdf xlink msxsl">
                 <xsl:value-of select="translate(@d , ',', ' ')" />\r
               </xsl:attribute>\r
               <xsl:apply-templates mode="fill_rule" select="." />\r
-            </PathGeometry>  \r
+            </PathGeometry>\r
           </Path.Data>\r
-         </xsl:otherwise>   \r
-      </xsl:choose>   \r
+         </xsl:otherwise>\r
+      </xsl:choose>\r
     </xsl:if>\r
-    \r
+\r
     <xsl:apply-templates mode="transform" select=".">\r
       <xsl:with-param name="mapped_type" select="'Path'" />\r
     </xsl:apply-templates>\r
-    \r
+\r
     <xsl:apply-templates mode="forward" />\r
   </Path>\r
 </xsl:template>\r
@@ -1058,13 +1056,13 @@ exclude-result-prefixes="rdf xlink msxsl">
       <xsl:choose>\r
         <xsl:when test="@cx"><xsl:value-of select="@cx" /></xsl:when>\r
         <xsl:otherwise>0</xsl:otherwise>\r
-      </xsl:choose>  \r
+      </xsl:choose>\r
     </xsl:variable>\r
     <xsl:variable name="cy">\r
       <xsl:choose>\r
         <xsl:when test="@cy"><xsl:value-of select="@cy" /></xsl:when>\r
         <xsl:otherwise>0</xsl:otherwise>\r
-      </xsl:choose>  \r
+      </xsl:choose>\r
     </xsl:variable>\r
     <xsl:if test="@rx">\r
       <xsl:attribute name="Canvas.Left"><xsl:value-of select='format-number($cx - @rx, "#.#")' /></xsl:attribute>\r
@@ -1083,13 +1081,13 @@ exclude-result-prefixes="rdf xlink msxsl">
     <xsl:apply-templates mode="stroke_dashoffset" select="." />\r
     <xsl:apply-templates mode="stroke_linejoin" select="." />\r
     <xsl:apply-templates mode="stroke_linecap" select="." />\r
-    \r
+\r
     <xsl:apply-templates mode="clip" select="." />\r
-    \r
+\r
     <xsl:apply-templates mode="transform" select=".">\r
       <xsl:with-param name="mapped_type" select="'Ellipse'" />\r
     </xsl:apply-templates>\r
-    \r
+\r
     <xsl:apply-templates mode="forward" />\r
   </Ellipse>\r
 </xsl:template>\r
@@ -1100,19 +1098,19 @@ exclude-result-prefixes="rdf xlink msxsl">
       <xsl:choose>\r
         <xsl:when test="@cx"><xsl:value-of select="@cx" /></xsl:when>\r
         <xsl:otherwise>0</xsl:otherwise>\r
-      </xsl:choose>  \r
+      </xsl:choose>\r
     </xsl:variable>\r
     <xsl:variable name="cy">\r
       <xsl:choose>\r
         <xsl:when test="@cy"><xsl:value-of select="@cy" /></xsl:when>\r
         <xsl:otherwise>0</xsl:otherwise>\r
-      </xsl:choose>  \r
+      </xsl:choose>\r
     </xsl:variable>\r
     <xsl:if test="@r">\r
        <xsl:attribute name="Canvas.Left"><xsl:value-of select='format-number($cx - @r, "#.#")' /></xsl:attribute>
        <xsl:attribute name="Canvas.Top"><xsl:value-of select='format-number($cy - @r, "#.#")' /></xsl:attribute>
        <xsl:attribute name="Width"><xsl:value-of select='format-number(2 * @r, "#.#")' /></xsl:attribute>
-       <xsl:attribute name="Height"><xsl:value-of select='format-number(2 * @r, "#.#")' /></xsl:attribute>       \r
+       <xsl:attribute name="Height"><xsl:value-of select='format-number(2 * @r, "#.#")' /></xsl:attribute>\r
     </xsl:if>\r
     <xsl:apply-templates mode="id" select="." />\r
     <xsl:apply-templates mode="template_fill" select="." />\r
@@ -1123,13 +1121,13 @@ exclude-result-prefixes="rdf xlink msxsl">
     <xsl:apply-templates mode="stroke_dashoffset" select="." />\r
     <xsl:apply-templates mode="stroke_linejoin" select="." />\r
     <xsl:apply-templates mode="stroke_linecap" select="." />\r
-    \r
+\r
     <xsl:apply-templates mode="clip" select="." />\r
-    \r
+\r
     <xsl:apply-templates mode="transform" select=".">\r
       <xsl:with-param name="mapped_type" select="'Ellipse'" />\r
     </xsl:apply-templates>\r
-    \r
+\r
     <xsl:apply-templates mode="forward" />\r
   </Ellipse>\r
 </xsl:template>\r
@@ -1140,7 +1138,7 @@ exclude-result-prefixes="rdf xlink msxsl">
 \r
 <xsl:template mode="geometry" match="*[name(.) = 'circle']">\r
   <EllipseGeometry>\r
-    <xsl:if test="../@id"><xsl:attribute name="x:Key"><xsl:value-of select="../@id" /></xsl:attribute></xsl:if>  \r
+    <xsl:if test="../@id"><xsl:attribute name="x:Key"><xsl:value-of select="../@id" /></xsl:attribute></xsl:if>\r
     <xsl:if test="@cx and @cy"><xsl:attribute name="Center"><xsl:value-of select="concat(@cx, ',', @cy)" /></xsl:attribute></xsl:if>\r
     <xsl:if test="@r">\r
       <xsl:attribute name="RadiusX"><xsl:value-of select="@r" /></xsl:attribute>\r
@@ -1151,14 +1149,14 @@ exclude-result-prefixes="rdf xlink msxsl">
 \r
 <xsl:template mode="geometry" match="*[name(.) = 'rect']">\r
   <RectangleGeometry>\r
-    <xsl:if test="../@id"><xsl:attribute name="x:Key"><xsl:value-of select="../@id" /></xsl:attribute></xsl:if>  \r
+    <xsl:if test="../@id"><xsl:attribute name="x:Key"><xsl:value-of select="../@id" /></xsl:attribute></xsl:if>\r
     <!--\r
-    <xsl:if test="@x"><xsl:attribute name="Canvas.Left"><xsl:value-of select="@x" /></xsl:attribute></xsl:if>  \r
-    <xsl:if test="@y"><xsl:attribute name="Canvas.Top"><xsl:value-of select="@y" /></xsl:attribute></xsl:if>  \r
-    <xsl:if test="@width"><xsl:attribute name="Width"><xsl:value-of select="@width" /></xsl:attribute></xsl:if>  \r
-    <xsl:if test="@height"><xsl:attribute name="Height"><xsl:value-of select="@height" /></xsl:attribute></xsl:if>  \r
-    <xsl:if test="@rx"><xsl:attribute name="RadiusX"><xsl:value-of select="@rx" /></xsl:attribute></xsl:if>  \r
-    <xsl:if test="@ry"><xsl:attribute name="RadiusY"><xsl:value-of select="@ry" /></xsl:attribute></xsl:if>  \r
+    <xsl:if test="@x"><xsl:attribute name="Canvas.Left"><xsl:value-of select="@x" /></xsl:attribute></xsl:if>\r
+    <xsl:if test="@y"><xsl:attribute name="Canvas.Top"><xsl:value-of select="@y" /></xsl:attribute></xsl:if>\r
+    <xsl:if test="@width"><xsl:attribute name="Width"><xsl:value-of select="@width" /></xsl:attribute></xsl:if>\r
+    <xsl:if test="@height"><xsl:attribute name="Height"><xsl:value-of select="@height" /></xsl:attribute></xsl:if>\r
+    <xsl:if test="@rx"><xsl:attribute name="RadiusX"><xsl:value-of select="@rx" /></xsl:attribute></xsl:if>\r
+    <xsl:if test="@ry"><xsl:attribute name="RadiusY"><xsl:value-of select="@ry" /></xsl:attribute></xsl:if>\r
     -->\r
     <xsl:attribute name="Rect"><xsl:value-of select="concat('0, 0, ', @width, ', ', @height)" /></xsl:attribute>\r
   </RectangleGeometry>\r