1cdf0e10cSrcweir<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0" xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:wx="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:aml="http://schemas.microsoft.com/aml/2001/core" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0" xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0" xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0" xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0" xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0" xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0" xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0" xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0" xmlns:math="http://www.w3.org/1998/Math/MathML" xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0" xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0" xmlns:config="urn:oasis:names:tc:opendocument:xmlns:config:1.0" xmlns:ooo="http://openoffice.org/2004/office" xmlns:ooow="http://openoffice.org/2004/writer" xmlns:oooc="http://openoffice.org/2004/calc" xmlns:dom="http://www.w3.org/2001/xml-events" exclude-result-prefixes="w wx aml o dt v" xmlns:an="urn:flr:annotate"> 28eb6fccdSAndrew Rist<!--*********************************************************** 38eb6fccdSAndrew Rist * 48eb6fccdSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 58eb6fccdSAndrew Rist * or more contributor license agreements. See the NOTICE file 68eb6fccdSAndrew Rist * distributed with this work for additional information 78eb6fccdSAndrew Rist * regarding copyright ownership. The ASF licenses this file 88eb6fccdSAndrew Rist * to you under the Apache License, Version 2.0 (the 98eb6fccdSAndrew Rist * "License"); you may not use this file except in compliance 108eb6fccdSAndrew Rist * with the License. You may obtain a copy of the License at 118eb6fccdSAndrew Rist * 128eb6fccdSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 138eb6fccdSAndrew Rist * 148eb6fccdSAndrew Rist * Unless required by applicable law or agreed to in writing, 158eb6fccdSAndrew Rist * software distributed under the License is distributed on an 168eb6fccdSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 178eb6fccdSAndrew Rist * KIND, either express or implied. See the License for the 188eb6fccdSAndrew Rist * specific language governing permissions and limitations 198eb6fccdSAndrew Rist * under the License. 208eb6fccdSAndrew Rist * 218eb6fccdSAndrew Rist ***********************************************************--> 22cdf0e10cSrcweir 23cdf0e10cSrcweir<an:page-layout-properties 24cdf0e10cSrcweir context-node-input="w:sectPr" 25cdf0e10cSrcweir context-node-output="style:page-layout-properties"> 26cdf0e10cSrcweir<an:so-supported select="w:pgMar/@w:gutter"/> 27cdf0e10cSrcweir<an:so-supported select="w:pgSz/@w:code"/> 28cdf0e10cSrcweir</an:page-layout-properties> 29cdf0e10cSrcweir 30cdf0e10cSrcweir<xsl:template name="page-layout-properties"> 31cdf0e10cSrcweir 32*ed89ea2cSArmin Le Grand<!-- NOTE: "div 567.0" converts from twips to cm --> 33*ed89ea2cSArmin Le Grand<xsl:attribute name="fo:margin-top"> 34*ed89ea2cSArmin Le Grand <xsl:variable name="header-margin"> 35*ed89ea2cSArmin Le Grand <xsl:choose> 36*ed89ea2cSArmin Le Grand <xsl:when test="w:pgMar/@w:header"> 37*ed89ea2cSArmin Le Grand <xsl:value-of select="w:pgMar/@w:header"/> 38*ed89ea2cSArmin Le Grand </xsl:when> 39*ed89ea2cSArmin Le Grand <xsl:otherwise>720</xsl:otherwise> 40*ed89ea2cSArmin Le Grand </xsl:choose> 41*ed89ea2cSArmin Le Grand </xsl:variable> 42*ed89ea2cSArmin Le Grand <xsl:variable name="margin-top"> 43*ed89ea2cSArmin Le Grand <xsl:choose> 44*ed89ea2cSArmin Le Grand <xsl:when test="w:hdr"> 45*ed89ea2cSArmin Le Grand <xsl:choose> 46*ed89ea2cSArmin Le Grand <xsl:when test="w:pgMar/@w:top >= $header-margin"> 47*ed89ea2cSArmin Le Grand <xsl:value-of select="$header-margin"/> 48*ed89ea2cSArmin Le Grand </xsl:when> 49*ed89ea2cSArmin Le Grand <xsl:otherwise> 50*ed89ea2cSArmin Le Grand <xsl:value-of select="w:pgMar/@w:top"/> 51*ed89ea2cSArmin Le Grand </xsl:otherwise> 52*ed89ea2cSArmin Le Grand </xsl:choose> 53*ed89ea2cSArmin Le Grand </xsl:when> 54*ed89ea2cSArmin Le Grand <xsl:otherwise> 55*ed89ea2cSArmin Le Grand <xsl:value-of select="w:pgMar/@w:top"/> 56*ed89ea2cSArmin Le Grand </xsl:otherwise> 57*ed89ea2cSArmin Le Grand </xsl:choose> 58*ed89ea2cSArmin Le Grand </xsl:variable> 59*ed89ea2cSArmin Le Grand <xsl:value-of select="concat($margin-top div 567.0, 'cm')"/> 60cdf0e10cSrcweir</xsl:attribute> 61*ed89ea2cSArmin Le Grand<xsl:attribute name="fo:margin-bottom"> 62*ed89ea2cSArmin Le Grand <xsl:variable name="footer-margin"> 63*ed89ea2cSArmin Le Grand <xsl:choose> 64*ed89ea2cSArmin Le Grand <xsl:when test="w:pgMar/@w:footer"> 65*ed89ea2cSArmin Le Grand <xsl:value-of select="w:pgMar/@w:footer"/> 66*ed89ea2cSArmin Le Grand </xsl:when> 67*ed89ea2cSArmin Le Grand <xsl:otherwise>720</xsl:otherwise> 68*ed89ea2cSArmin Le Grand </xsl:choose> 69*ed89ea2cSArmin Le Grand </xsl:variable> 70*ed89ea2cSArmin Le Grand <xsl:variable name="margin-bottom"> 71*ed89ea2cSArmin Le Grand <xsl:choose> 72*ed89ea2cSArmin Le Grand <xsl:when test="w:ftr"> 73*ed89ea2cSArmin Le Grand <xsl:value-of select="$footer-margin"/> 74*ed89ea2cSArmin Le Grand </xsl:when> 75*ed89ea2cSArmin Le Grand <xsl:otherwise> 76*ed89ea2cSArmin Le Grand <xsl:value-of select="w:pgMar/@w:bottom"/> 77*ed89ea2cSArmin Le Grand </xsl:otherwise> 78*ed89ea2cSArmin Le Grand </xsl:choose> 79*ed89ea2cSArmin Le Grand </xsl:variable> 80*ed89ea2cSArmin Le Grand <xsl:value-of select="concat($margin-bottom div 567.0, 'cm')"/> 81cdf0e10cSrcweir</xsl:attribute> 82*ed89ea2cSArmin Le Grand<xsl:attribute name="fo:margin-left"> 83*ed89ea2cSArmin Le Grand <xsl:value-of select="concat(w:pgMar/@w:left div 567.0, 'cm')"/> 84cdf0e10cSrcweir</xsl:attribute> 85*ed89ea2cSArmin Le Grand<xsl:attribute name="fo:margin-right"> 86*ed89ea2cSArmin Le Grand <xsl:value-of select="concat(w:pgMar/@w:right div 567.0, 'cm')"/> 87cdf0e10cSrcweir</xsl:attribute> 88cdf0e10cSrcweir 89*ed89ea2cSArmin Le Grand<xsl:attribute name="fo:page-width"> 90*ed89ea2cSArmin Le Grand <xsl:value-of select="concat(w:pgSz/@w:w div 567.0, 'cm')"/> 91cdf0e10cSrcweir</xsl:attribute> 92*ed89ea2cSArmin Le Grand<xsl:attribute name="fo:page-height"> 93*ed89ea2cSArmin Le Grand <xsl:value-of select="concat(w:pgSz/@w:h div 567.0, 'cm')"/> 94cdf0e10cSrcweir</xsl:attribute> 95*ed89ea2cSArmin Le Grand<xsl:attribute name="style:footnote-max-height"> 96*ed89ea2cSArmin Le Grand <xsl:value-of select="'0cm'"/> 97cdf0e10cSrcweir</xsl:attribute> 98*ed89ea2cSArmin Le Grand<xsl:attribute name="style:print-orientation"> 99*ed89ea2cSArmin Le Grand <xsl:choose> 100*ed89ea2cSArmin Le Grand <xsl:when test="w:pgSz/@w:orient"> 101*ed89ea2cSArmin Le Grand <xsl:value-of select="w:pgSz/@w:orient"/> 102*ed89ea2cSArmin Le Grand </xsl:when> 103*ed89ea2cSArmin Le Grand <xsl:otherwise>portrait</xsl:otherwise> 104*ed89ea2cSArmin Le Grand </xsl:choose> 105cdf0e10cSrcweir</xsl:attribute> 106cdf0e10cSrcweir<xsl:apply-templates select="//w:bgPict"/> 107cdf0e10cSrcweir<xsl:call-template name="column-properties"/> 108cdf0e10cSrcweir</xsl:template> 109cdf0e10cSrcweir 110cdf0e10cSrcweir 111cdf0e10cSrcweir<an:column-properties 112cdf0e10cSrcweir context-node-input="w:sectPr" 113cdf0e10cSrcweir context-node-output="style:page-layout-properties"> 114cdf0e10cSrcweir<an:so-supported select="w:cols/@w:sep"/> 115cdf0e10cSrcweir</an:column-properties> 116cdf0e10cSrcweir<xsl:template name="column-properties"> 117cdf0e10cSrcweir<style:columns> 118*ed89ea2cSArmin Le Grand<xsl:attribute name="fo:column-count"> 119*ed89ea2cSArmin Le Grand <xsl:choose> 120*ed89ea2cSArmin Le Grand <xsl:when test="w:cols/@w:num"> 121*ed89ea2cSArmin Le Grand <xsl:value-of select="w:cols/@w:num"/> 122*ed89ea2cSArmin Le Grand </xsl:when> 123*ed89ea2cSArmin Le Grand <xsl:otherwise>1</xsl:otherwise> 124*ed89ea2cSArmin Le Grand </xsl:choose> 125cdf0e10cSrcweir</xsl:attribute> 126cdf0e10cSrcweir 127cdf0e10cSrcweir<xsl:if test="not(w:cols/w:col)"> 128cdf0e10cSrcweir<!-- bug in the OASIS spec resp. bug in xmloff --> 129*ed89ea2cSArmin Le Grand<xsl:attribute name="fo:column-gap"> 130*ed89ea2cSArmin Le Grand <xsl:value-of select="concat(w:cols/@w:space div 567.0, 'cm')"/> 131cdf0e10cSrcweir</xsl:attribute> 132cdf0e10cSrcweir</xsl:if> 133cdf0e10cSrcweir 134cdf0e10cSrcweir<xsl:for-each select="w:cols/w:col"> 135cdf0e10cSrcweir <style:column> 136*ed89ea2cSArmin Le Grand <xsl:attribute name="style:rel-width"> 137*ed89ea2cSArmin Le Grand <xsl:value-of select="concat(@w:w, '*')"/> 138cdf0e10cSrcweir </xsl:attribute> 139*ed89ea2cSArmin Le Grand <xsl:attribute name="fo:start-indent"> 140*ed89ea2cSArmin Le Grand <xsl:value-of select="'0cm'"/> 141cdf0e10cSrcweir </xsl:attribute> 142*ed89ea2cSArmin Le Grand <xsl:attribute name="fo:end-indent"> 143*ed89ea2cSArmin Le Grand <xsl:choose> 144*ed89ea2cSArmin Le Grand <xsl:when test="@w:space"> 145*ed89ea2cSArmin Le Grand <xsl:value-of select="concat(@w:space div 567.0, 'cm')"/> 146*ed89ea2cSArmin Le Grand </xsl:when> 147*ed89ea2cSArmin Le Grand <xsl:otherwise>0cm</xsl:otherwise> 148*ed89ea2cSArmin Le Grand </xsl:choose> 149cdf0e10cSrcweir </xsl:attribute> 150cdf0e10cSrcweir </style:column> 151cdf0e10cSrcweir</xsl:for-each> 152cdf0e10cSrcweir</style:columns> 153cdf0e10cSrcweir</xsl:template> 154cdf0e10cSrcweir 155cdf0e10cSrcweir<an:text-properties 156cdf0e10cSrcweir context-node-input="w:rPr" 157cdf0e10cSrcweir context-node-output="style:text-properties"> 158cdf0e10cSrcweir</an:text-properties > 159cdf0e10cSrcweir<xsl:template name="text-properties"> 160*ed89ea2cSArmin Le Grand<xsl:variable name="b-value"> 161*ed89ea2cSArmin Le Grand <xsl:choose> 162*ed89ea2cSArmin Le Grand <xsl:when test="w:b/@val"> 163*ed89ea2cSArmin Le Grand <xsl:value-of select="w:b/@val"/> 164*ed89ea2cSArmin Le Grand </xsl:when> 165*ed89ea2cSArmin Le Grand <xsl:otherwise> 166*ed89ea2cSArmin Le Grand <xsl:value-of select="local-name(w:b)"/> 167*ed89ea2cSArmin Le Grand </xsl:otherwise> 168*ed89ea2cSArmin Le Grand </xsl:choose> 169*ed89ea2cSArmin Le Grand</xsl:variable> 170*ed89ea2cSArmin Le Grand<!-- could be simplified: is "b" actually a valid value of w:b/@val ? --> 171*ed89ea2cSArmin Le Grand<xsl:variable name="font-weight"> 172*ed89ea2cSArmin Le Grand <xsl:choose> 173*ed89ea2cSArmin Le Grand <xsl:when test="$b-value = 'on'">bold</xsl:when> 174*ed89ea2cSArmin Le Grand <xsl:when test="$b-value = 'off'">normal</xsl:when> 175*ed89ea2cSArmin Le Grand <xsl:when test="$b-value = 'b'">bold</xsl:when> 176*ed89ea2cSArmin Le Grand <xsl:otherwise></xsl:otherwise> 177*ed89ea2cSArmin Le Grand </xsl:choose> 178*ed89ea2cSArmin Le Grand</xsl:variable> 179*ed89ea2cSArmin Le Grand<xsl:attribute name="fo:font-weight"> 180*ed89ea2cSArmin Le Grand <xsl:value-of select="$font-weight"/> 181cdf0e10cSrcweir</xsl:attribute> 182*ed89ea2cSArmin Le Grand<xsl:attribute name="style:font-weight-asian"> 183*ed89ea2cSArmin Le Grand <xsl:value-of select="$font-weight"/> 184cdf0e10cSrcweir</xsl:attribute> 185*ed89ea2cSArmin Le Grand<xsl:attribute name="style:font-weight-complex"> 186*ed89ea2cSArmin Le Grand <xsl:variable name="b-cs-value"> 187*ed89ea2cSArmin Le Grand <xsl:choose> 188*ed89ea2cSArmin Le Grand <xsl:when test="w:b-cs/@val"> 189*ed89ea2cSArmin Le Grand <xsl:value-of select="w:b-cs/@val"/> 190*ed89ea2cSArmin Le Grand </xsl:when> 191*ed89ea2cSArmin Le Grand <xsl:otherwise> 192*ed89ea2cSArmin Le Grand <xsl:value-of select="local-name(w:b-cs)"/> 193*ed89ea2cSArmin Le Grand </xsl:otherwise> 194*ed89ea2cSArmin Le Grand </xsl:choose> 195*ed89ea2cSArmin Le Grand </xsl:variable> 196*ed89ea2cSArmin Le Grand <!-- could be simplified: is "b-cs" actually a valid value of w:b-cs/@val --> 197*ed89ea2cSArmin Le Grand <xsl:choose> 198*ed89ea2cSArmin Le Grand <xsl:when test="$b-cs-value = 'on'">bold</xsl:when> 199*ed89ea2cSArmin Le Grand <xsl:when test="$b-cs-value = 'off'">normal</xsl:when> 200*ed89ea2cSArmin Le Grand <xsl:when test="$b-cs-value = 'b-cs'">bold</xsl:when> 201*ed89ea2cSArmin Le Grand <xsl:otherwise></xsl:otherwise> 202*ed89ea2cSArmin Le Grand </xsl:choose> 203cdf0e10cSrcweir</xsl:attribute> 204*ed89ea2cSArmin Le Grand<xsl:variable name="i-value"> 205*ed89ea2cSArmin Le Grand <xsl:choose> 206*ed89ea2cSArmin Le Grand <xsl:when test="w:i/@val"> 207*ed89ea2cSArmin Le Grand <xsl:value-of select="w:i/@val"/> 208*ed89ea2cSArmin Le Grand </xsl:when> 209*ed89ea2cSArmin Le Grand <xsl:otherwise> 210*ed89ea2cSArmin Le Grand <xsl:value-of select="local-name(w:i)"/> 211*ed89ea2cSArmin Le Grand </xsl:otherwise> 212*ed89ea2cSArmin Le Grand </xsl:choose> 213*ed89ea2cSArmin Le Grand</xsl:variable> 214*ed89ea2cSArmin Le Grand<!-- could be simplified: is "i" actually a valid value of w:i/@val ? --> 215*ed89ea2cSArmin Le Grand<xsl:variable name="font-style"> 216*ed89ea2cSArmin Le Grand <xsl:choose> 217*ed89ea2cSArmin Le Grand <xsl:when test="$i-value = 'on'">italic</xsl:when> 218*ed89ea2cSArmin Le Grand <xsl:when test="$i-value = 'off'">normal</xsl:when> 219*ed89ea2cSArmin Le Grand <xsl:when test="$i-value = 'i'">italic</xsl:when> 220*ed89ea2cSArmin Le Grand <xsl:otherwise></xsl:otherwise> 221*ed89ea2cSArmin Le Grand </xsl:choose> 222*ed89ea2cSArmin Le Grand</xsl:variable> 223*ed89ea2cSArmin Le Grand<xsl:attribute name="fo:font-style"> 224*ed89ea2cSArmin Le Grand <xsl:value-of select="$font-style"/> 225cdf0e10cSrcweir</xsl:attribute> 226*ed89ea2cSArmin Le Grand<xsl:attribute name="style:font-style-asian"> 227*ed89ea2cSArmin Le Grand <xsl:value-of select="$font-style"/> 228cdf0e10cSrcweir</xsl:attribute> 229*ed89ea2cSArmin Le Grand<xsl:attribute name="style:font-style-complex"> 230*ed89ea2cSArmin Le Grand <xsl:variable name="i-cs-value"> 231*ed89ea2cSArmin Le Grand <xsl:choose> 232*ed89ea2cSArmin Le Grand <xsl:when test="w:i-cs/@val"> 233*ed89ea2cSArmin Le Grand <xsl:value-of select="w:i-cs/@val"/> 234*ed89ea2cSArmin Le Grand </xsl:when> 235*ed89ea2cSArmin Le Grand <xsl:otherwise> 236*ed89ea2cSArmin Le Grand <xsl:value-of select="local-name(w:i-cs)"/> 237*ed89ea2cSArmin Le Grand </xsl:otherwise> 238*ed89ea2cSArmin Le Grand </xsl:choose> 239*ed89ea2cSArmin Le Grand </xsl:variable> 240*ed89ea2cSArmin Le Grand <!-- could be simplified: is "i-cs" actually a valid value of w:i-cs/@val --> 241*ed89ea2cSArmin Le Grand <xsl:choose> 242*ed89ea2cSArmin Le Grand <xsl:when test="$i-cs-value = 'on'">italic</xsl:when> 243*ed89ea2cSArmin Le Grand <xsl:when test="$i-cs-value = 'off'">normal</xsl:when> 244*ed89ea2cSArmin Le Grand <xsl:when test="$i-cs-value = 'i-cs'">italic</xsl:when> 245*ed89ea2cSArmin Le Grand <xsl:otherwise></xsl:otherwise> 246*ed89ea2cSArmin Le Grand </xsl:choose> 247cdf0e10cSrcweir</xsl:attribute> 248*ed89ea2cSArmin Le Grand<xsl:attribute name="fo:text-transform"> 249*ed89ea2cSArmin Le Grand <xsl:variable name="caps-value"> 250*ed89ea2cSArmin Le Grand <xsl:choose> 251*ed89ea2cSArmin Le Grand <xsl:when test="w:caps/@val"> 252*ed89ea2cSArmin Le Grand <xsl:value-of select="w:caps/@val"/> 253*ed89ea2cSArmin Le Grand </xsl:when> 254*ed89ea2cSArmin Le Grand <xsl:otherwise> 255*ed89ea2cSArmin Le Grand <xsl:value-of select="local-name(w:caps)"/> 256*ed89ea2cSArmin Le Grand </xsl:otherwise> 257*ed89ea2cSArmin Le Grand </xsl:choose> 258*ed89ea2cSArmin Le Grand </xsl:variable> 259*ed89ea2cSArmin Le Grand <!-- could be simplified: is "caps" actually a valid value of w:caps/@val --> 260*ed89ea2cSArmin Le Grand <xsl:choose> 261*ed89ea2cSArmin Le Grand <xsl:when test="$caps-value = 'on'">uppercase</xsl:when> 262*ed89ea2cSArmin Le Grand <xsl:when test="$caps-value = 'off'">normal</xsl:when> 263*ed89ea2cSArmin Le Grand <xsl:when test="$caps-value = 'caps'">uppercase</xsl:when> 264*ed89ea2cSArmin Le Grand <xsl:otherwise></xsl:otherwise> 265*ed89ea2cSArmin Le Grand </xsl:choose> 266cdf0e10cSrcweir</xsl:attribute> 267*ed89ea2cSArmin Le Grand<xsl:attribute name="fo:font-variant"> 268*ed89ea2cSArmin Le Grand <xsl:variable name="small-caps-value"> 269*ed89ea2cSArmin Le Grand <xsl:choose> 270*ed89ea2cSArmin Le Grand <xsl:when test="w:smallCaps/@val"> 271*ed89ea2cSArmin Le Grand <xsl:value-of select="w:smallCaps/@val"/> 272*ed89ea2cSArmin Le Grand </xsl:when> 273*ed89ea2cSArmin Le Grand <xsl:otherwise> 274*ed89ea2cSArmin Le Grand <xsl:value-of select="local-name(w:smallCaps)"/> 275*ed89ea2cSArmin Le Grand </xsl:otherwise> 276*ed89ea2cSArmin Le Grand </xsl:choose> 277*ed89ea2cSArmin Le Grand </xsl:variable> 278*ed89ea2cSArmin Le Grand <!-- could be simplified: is "smallCaps" actually a valid value of w:smallCaps/@val --> 279*ed89ea2cSArmin Le Grand <xsl:choose> 280*ed89ea2cSArmin Le Grand <xsl:when test="$small-caps-value = 'on'">small-caps</xsl:when> 281*ed89ea2cSArmin Le Grand <xsl:when test="$small-caps-value = 'off'">normal</xsl:when> 282*ed89ea2cSArmin Le Grand <xsl:when test="$small-caps-value = 'smallCaps'">small-caps</xsl:when> 283*ed89ea2cSArmin Le Grand <xsl:otherwise></xsl:otherwise> 284*ed89ea2cSArmin Le Grand </xsl:choose> 285cdf0e10cSrcweir</xsl:attribute> 286cdf0e10cSrcweir</xsl:template> 287cdf0e10cSrcweir 2888eb6fccdSAndrew Rist</xsl:stylesheet> 289