[ Index ]
 

Code source de Horde 3.1.3

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/lib/Horde/MIME/Viewer/ooo/ -> common.xsl (source)

   1  <!--
   2  
   3     The Contents of this file are made available subject to the terms of
   4     either of the following licenses
   5  
   6            - GNU Lesser General Public License Version 2.1
   7            - Sun Industry Standards Source License Version 1.1
   8  
   9     Sun Microsystems Inc., October, 2000
  10  
  11     GNU Lesser General Public License Version 2.1
  12     =============================================
  13     Copyright 2000 by Sun Microsystems, Inc.
  14     901 San Antonio Road, Palo Alto, CA 94303, USA
  15  
  16     This library is free software; you can redistribute it and/or
  17     modify it under the terms of the GNU Lesser General Public
  18     License version 2.1, as published by the Free Software Foundation.
  19  
  20     This library is distributed in the hope that it will be useful,
  21     but WITHOUT ANY WARRANTY; without even the implied warranty of
  22     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  23     Lesser General Public License for more details.
  24  
  25     You should have received a copy of the GNU Lesser General Public
  26     License along with this library; if not, write to the Free Software
  27     Foundation, Inc., 59 Temple Place, Suite 330, Boston,
  28     MA  02111-1307  USA
  29  
  30  
  31     Sun Industry Standards Source License Version 1.1
  32     =================================================
  33     The contents of this file are subject to the Sun Industry Standards
  34     Source License Version 1.1 (the "License"); You may not use this file
  35     except in compliance with the License. You may obtain a copy of the
  36     License at http://www.openoffice.org/license.html.
  37  
  38     Software provided under this License is provided on an "AS IS" basis,
  39     WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING,
  40     WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
  41     MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
  42     See the License for the specific provisions governing your rights and
  43     obligations concerning the Software.
  44  
  45     The Initial Developer of the Original Code is: Sun Microsystems, Inc.
  46  
  47     Copyright © 2002 by Sun Microsystems, Inc.
  48  
  49     All Rights Reserved.
  50  
  51     Contributor(s): _______________________________________
  52  
  53  -->
  54  <xsl:stylesheet version="1.0"
  55                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  56                  xmlns:office="http://openoffice.org/2000/office"
  57                  xmlns:style="http://openoffice.org/2000/style"
  58                  xmlns:text="http://openoffice.org/2000/text"
  59                  xmlns:table="http://openoffice.org/2000/table"
  60                  xmlns:draw="http://openoffice.org/2000/drawing"
  61                  xmlns:fo="http://www.w3.org/1999/XSL/Format"
  62                  xmlns:xlink="http://www.w3.org/1999/xlink"
  63                  xmlns:number="http://openoffice.org/2000/datastyle"
  64                  xmlns:svg="http://www.w3.org/2000/svg"
  65                  xmlns:chart="http://openoffice.org/2000/chart"
  66                  xmlns:dr3d="http://openoffice.org/2000/dr3d"
  67                  xmlns:math="http://www.w3.org/1998/Math/MathML"
  68                  xmlns:form="http://openoffice.org/2000/form"
  69                  xmlns:script="http://openoffice.org/2000/script"
  70                  office:class="text"
  71                  office:version="1.0"
  72                  xmlns:dc="http://purl.org/dc/elements/1.1/"
  73                  xmlns:meta="http://openoffice.org/2000/meta"
  74                  xmlns:config="http://openoffice.org/2001/config"
  75                  xmlns:help="http://openoffice.org/2000/help"
  76                  xmlns:xt="http://www.jclark.com/xt"
  77                  extension-element-prefixes="xt"
  78                  xmlns:xalan="http://xml.apache.org/xalan"
  79                  xmlns:java="http://xml.apache.org/xslt/java"
  80                  exclude-result-prefixes="java">
  81  
  82  
  83  
  84      <!-- ************ -->
  85      <!-- *** body *** -->
  86      <!-- ************ -->
  87  
  88  
  89      <xsl:template match="/*/office:body">
  90          <xsl:param name="collectedGlobalData"/>
  91  
  92          <!-- isDebugMode-START: only isDebugMode purpose: shows the inlined style attributes of the temporary variable -->
  93          <xsl:if test="$isDebugMode and not($outputType = 'CSS_HEADER')">
  94              <xsl:element name="debug_tree_of_styles"><xsl:text>
  95              </xsl:text><xsl:for-each select="$collectedGlobalData/allstyles/*">
  96  <xsl:text>                      </xsl:text><xsl:value-of select="name()"/><xsl:text> = </xsl:text><xsl:value-of select="."/><xsl:text>
  97              </xsl:text>
  98                      </xsl:for-each>
  99              </xsl:element>
 100          </xsl:if>
 101      <!-- isDebugMode-END -->
 102  
 103  
 104          <!-- not using of 'apply-styles-and-content' as the content table information migth have been added to 'collectedGlobalData' variable -->
 105          <xsl:apply-templates select="@text:style-name | @draw:style-name | @draw:text-style-name | @table:style-name"><!-- | @presentation:style-name -->
 106              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 107          </xsl:apply-templates>
 108  
 109  
 110          <!-- Usability feature, a link to the Content talbe above all level 1 header -->
 111          <xsl:if test="$contentTableHeadings">
 112              <xsl:call-template name="add-child-document-usability-links"/>
 113          </xsl:if>
 114  
 115  
 116          <xsl:choose>
 117              <xsl:when test="not($outputType = 'WML') and not($outputType = 'PALM')">
 118                  <xsl:choose>
 119                      <!--If the input document is a global document and embed child documents (links) the transformation of the children will be started as well.
 120                          This is necessary as child documents do not know anything about their embedding into a global document. Chapters of childs
 121                          always start to count by zero instead of continously numbering.
 122                          For this, the chapter numbers of the current document (as a sequence of a global document) is dependent
 123                          of the number of chapter of the same level in preceding documents.
 124                          In case of multiple children, for usability reasons some linking is gonna be offered and the URLs of the content-table,
 125                          preceding and following file have to be given for the transformation.
 126                          -->
 127                      <xsl:when test="/*/@office:class='text-global' and /*/office:body/text:section/text:section-source/@xlink:href">
 128                          <!-- the children will be called later with a modified 'collectedGlobalData' variable -->
 129                          <xsl:call-template name="transform-global-document-and-children">
 130                              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 131                          </xsl:call-template>
 132                      </xsl:when>
 133                      <xsl:otherwise>
 134                          <xsl:apply-templates>
 135                              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 136                          </xsl:apply-templates>
 137                      </xsl:otherwise>
 138                  </xsl:choose>
 139              </xsl:when>
 140              <xsl:otherwise>
 141                  <xsl:apply-templates>
 142                      <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 143                  </xsl:apply-templates>
 144              </xsl:otherwise>
 145          </xsl:choose>
 146  
 147  
 148  
 149          <!-- Usability feature, a link to the Content talbe above all level 1 header -->
 150          <xsl:if test="$contentTableHeadings">
 151              <xsl:call-template name="add-child-document-usability-links"/>
 152          </xsl:if>
 153  
 154  
 155      </xsl:template>
 156  
 157  
 158  
 159  
 160      <!-- deactivating default template -->
 161      <xsl:template match="*"/>
 162  
 163  
 164      <!-- allowing all matched text nodes -->
 165      <xsl:template match="text()">
 166  <!-- WML         <xsl:value-of select="normalize-space(.)"/> -->
 167          <xsl:value-of select="."/>
 168      </xsl:template>
 169  
 170  
 171  
 172      <!-- ################### -->
 173      <!-- ### INLINE-TEXT ### -->
 174      <!-- ################### -->
 175  
 176  
 177      <!-- ****************** -->
 178      <!-- *** Whitespace *** -->
 179      <!-- ****************** -->
 180  
 181  
 182      <xsl:template match="text:s">
 183          <xsl:call-template name="write-breakable-whitespace">
 184              <xsl:with-param name="whitespaces" select="@text:c"/>
 185          </xsl:call-template>
 186      </xsl:template>
 187  
 188  
 189      <!--write the number of 'whitespaces' -->
 190      <xsl:template name="write-breakable-whitespace">
 191          <xsl:param name="whitespaces"/>
 192  
 193          <!--write two space chars as the normal white space character will be stripped
 194              and the other is able to break -->
 195          <xsl:text>&#160;</xsl:text>
 196          <xsl:if test="$whitespaces >= 2">
 197              <xsl:call-template name="write-breakable-whitespace-2">
 198                  <xsl:with-param name="whitespaces" select="$whitespaces - 1"/>
 199              </xsl:call-template>
 200          </xsl:if>
 201      </xsl:template>
 202  
 203  
 204      <!--write the number of 'whitespaces' -->
 205      <xsl:template name="write-breakable-whitespace-2">
 206          <xsl:param name="whitespaces"/>
 207          <!--write two space chars as the normal white space character will be stripped
 208              and the other is able to break -->
 209          <xsl:text> </xsl:text>
 210          <xsl:if test="$whitespaces >= 2">
 211              <xsl:call-template name="write-breakable-whitespace">
 212                  <xsl:with-param name="whitespaces" select="$whitespaces - 1"/>
 213              </xsl:call-template>
 214          </xsl:if>
 215      </xsl:template>
 216  
 217  
 218  
 219  
 220      <!-- *************** -->
 221      <!-- *** Textbox *** -->
 222      <!-- *************** -->
 223  
 224      <xsl:template match="draw:text-box">
 225          <xsl:param name="collectedGlobalData"/>
 226  
 227              <xsl:choose>
 228                  <!--+++++ CSS (CASCADING STLYE SHEET) HEADER STYLE WAY +++++-->
 229                  <!--                or                  -->
 230                  <!--+++++ HTML 4.0 INLINED WAY  +++++-->
 231                  <xsl:when test="$outputType = 'CSS_HEADER' or $outputType = 'CSS_INLINED'">
 232                      <xsl:element name="span">
 233                          <xsl:if test="@fo:min-height | @svg:width">
 234                              <xsl:attribute name="style">
 235                                  <xsl:choose>
 236                                      <xsl:when test="not(@svg:width)">
 237                                          <xsl:text>height: </xsl:text><xsl:value-of select="@fo:min-height"/><xsl:text>; </xsl:text>
 238                                      </xsl:when>
 239                                      <xsl:when test="not(@fo:min-height)">
 240                                          <xsl:text>width: </xsl:text><xsl:value-of select="@svg:width"/><xsl:text>; </xsl:text>
 241                                      </xsl:when>
 242                                      <xsl:otherwise>
 243                                          <xsl:text>height: </xsl:text><xsl:value-of select="@fo:min-height"/><xsl:text>; </xsl:text>
 244                                          <xsl:text>width: </xsl:text><xsl:value-of select="@svg:width"/><xsl:text>; </xsl:text>
 245                                      </xsl:otherwise>
 246                                  </xsl:choose>
 247                              </xsl:attribute>
 248                          </xsl:if>
 249                          <xsl:apply-templates select="@draw:name"/>
 250                          <xsl:call-template name="apply-styles-and-content">
 251                              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 252                          </xsl:call-template>
 253                      </xsl:element>
 254                  </xsl:when>
 255                  <!-- 2DO prove best usage for PALM -->
 256                  <!--+++++ PALM 3.2 SUBSET INLINED WAY  +++++-->
 257                  <xsl:when test="$outputType = 'PALM'">
 258                      <xsl:element name="span">
 259                          <xsl:call-template name="apply-styles-and-content">
 260                              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 261                          </xsl:call-template>
 262                      </xsl:element>
 263                  </xsl:when>
 264                  <!-- 2DO prove best usage for WML -->
 265                  <!--+++++ WML / WAP  +++++-->
 266                  <xsl:otherwise>
 267                      <!-- no nested p tags in wml1.1 allowed -->
 268                      <xsl:choose>
 269                          <xsl:when test="ancestor::*[contains($wap-paragraph-elements, name())]">
 270                              <xsl:call-template name="apply-styles-and-content">
 271                                  <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 272                              </xsl:call-template>
 273                          </xsl:when>
 274                          <xsl:otherwise>
 275                              <xsl:element name="p">
 276                                  <xsl:call-template name="apply-styles-and-content">
 277                                      <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 278                                  </xsl:call-template>
 279                               </xsl:element>
 280                          </xsl:otherwise>
 281                      </xsl:choose>
 282                  </xsl:otherwise>
 283              </xsl:choose>
 284      </xsl:template>
 285  
 286      <!-- ID / NAME of text-box -->
 287      <xsl:template match="@draw:name">
 288  
 289          <xsl:attribute name="id">
 290              <xsl:value-of select="."/>
 291          </xsl:attribute>
 292      </xsl:template>
 293  
 294  
 295  
 296      <!-- ****************** -->
 297      <!-- *** Paragraphs *** -->
 298      <!-- ****************** -->
 299  
 300      <xsl:template match="text:p | draw:page">
 301          <xsl:param name="collectedGlobalData"/>
 302  
 303              <xsl:choose>
 304                  <!--+++++ CSS (CASCADING STLYE SHEET) HEADER STYLE WAY +++++-->
 305                  <xsl:when test="$outputType = 'CSS_HEADER'">
 306                      <xsl:element name="p">
 307                          <xsl:call-template name="apply-styles-and-content">
 308                              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 309                          </xsl:call-template>
 310                      </xsl:element>
 311                  </xsl:when>
 312  
 313                  <!--+++++ HTML 4.0 INLINED WAY  +++++-->
 314                  <xsl:when test="$outputType = 'CSS_INLINED'">
 315                      <xsl:element name="p">
 316                          <xsl:call-template name="apply-styles-and-content">
 317                              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 318                          </xsl:call-template>
 319                      </xsl:element>
 320                  </xsl:when>
 321                  <!--+++++ PALM 3.2 SUBSET INLINED WAY  +++++-->
 322                  <xsl:when test="$outputType = 'PALM'">
 323                      <xsl:choose>
 324                          <!-- in palm paragraphs children of text:list-items are better shown without 'p' tag-->
 325                          <xsl:when test="name(parent::*) = 'text:list-item'">
 326                              <xsl:call-template name="apply-styles-and-content">
 327                                  <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 328                              </xsl:call-template>
 329                          </xsl:when>
 330                          <xsl:otherwise>
 331                              <xsl:element name="p">
 332                                  <xsl:call-template name="apply-styles-and-content">
 333                                      <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 334                                  </xsl:call-template>
 335                              </xsl:element>
 336                          </xsl:otherwise>
 337                      </xsl:choose>
 338                  </xsl:when>
 339                  <!--+++++ WML / WAP  +++++-->
 340                  <xsl:otherwise>
 341                      <!-- no nested p tags in wml1.1 allowed -->
 342                      <xsl:choose>
 343                          <xsl:when test="ancestor::*[contains($wap-paragraph-elements, name())]">
 344                              <xsl:call-template name="apply-styles-and-content">
 345                                  <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 346                              </xsl:call-template>
 347                          </xsl:when>
 348                          <xsl:otherwise>
 349                              <xsl:element name="p">
 350                                  <xsl:call-template name="apply-styles-and-content">
 351                                      <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 352                                  </xsl:call-template>
 353                               </xsl:element>
 354                          </xsl:otherwise>
 355                      </xsl:choose>
 356                  </xsl:otherwise>
 357              </xsl:choose>
 358      </xsl:template>
 359  
 360  
 361  
 362      <!-- ***************** -->
 363      <!-- *** Text Span *** -->
 364      <!-- ***************** -->
 365  
 366      <xsl:template match="text:span">
 367          <xsl:param name="collectedGlobalData"/>
 368  
 369          <xsl:choose>
 370              <!--+++++ CSS (CASCADING STLYE SHEET) HEADER STYLE WAY +++++-->
 371              <xsl:when test="$outputType = 'CSS_HEADER'">
 372                  <xsl:element name="span">
 373                      <xsl:call-template name="apply-styles-and-content">
 374                          <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 375                      </xsl:call-template>
 376                  </xsl:element>
 377              </xsl:when>
 378  
 379              <!--+++++ HTML 4.0 INLINED WAY  +++++-->
 380              <xsl:when test="$outputType = 'CSS_INLINED'">
 381                  <xsl:element name="span">
 382                      <xsl:call-template name="apply-styles-and-content">
 383                          <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 384                      </xsl:call-template>
 385                  </xsl:element>
 386              </xsl:when>
 387              <!--+++++ PALM 3.2 SUBSET INLINED WAY  +++++-->
 388              <xsl:when test="$outputType = 'PALM'">
 389                  <xsl:call-template name="apply-styles-and-content">
 390                      <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 391                  </xsl:call-template>
 392              </xsl:when>
 393              <!--+++++ WML / WAP  +++++-->
 394              <xsl:otherwise>
 395                  <!-- no nested p tags in wml1.1 allowed -->
 396                  <xsl:choose>
 397                      <xsl:when test="ancestor::*[contains($wap-paragraph-elements, name())]">
 398                          <xsl:call-template name="apply-styles-and-content">
 399                              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 400                          </xsl:call-template>
 401                      </xsl:when>
 402                      <xsl:otherwise>
 403                          <xsl:element name="p">
 404                              <xsl:call-template name="apply-styles-and-content">
 405                                  <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 406                              </xsl:call-template>
 407                          </xsl:element>
 408                      </xsl:otherwise>
 409                  </xsl:choose>
 410              </xsl:otherwise>
 411          </xsl:choose>
 412      </xsl:template>
 413  
 414  
 415  
 416      <!-- **************** -->
 417      <!-- *** Headings *** -->
 418      <!-- **************** -->
 419  
 420      <xsl:template match="text:h">
 421          <xsl:param name="collectedGlobalData"/>
 422  
 423          <!-- Every heading element will get an unique anchor for its file, from its hiearchy level and name:
 424              For example:  The heading title 'My favorite heading' might get <a name="1+2+2+My+favorite+heading"/> -->
 425          <xsl:choose>
 426              <xsl:when test="$disableLinkedTableOfContent or $isJavaDisabled or not($outputType = 'CSS_HEADER')">
 427              <!-- The URL linking of an table-of-content is due to a bug (cmp. bug id# 102311) not mapped as URL in the XML.
 428                   Linking of the table-of-content can therefore only be archieved by a work-around in HTML -->
 429                  <xsl:call-template name="create-heading">
 430                      <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 431                  </xsl:call-template>
 432             </xsl:when>
 433             <xsl:otherwise>
 434                  <!-- necessary as anchor for the content table -->
 435                  <xsl:call-template name="create-heading-anchor">
 436                      <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 437                  </xsl:call-template>
 438  
 439                  <!-- no embedding the orginal header, as an explicit anchor might be already set -->
 440                  <xsl:call-template name="create-heading">
 441                      <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 442                  </xsl:call-template>
 443              </xsl:otherwise>
 444          </xsl:choose>
 445      </xsl:template>
 446  
 447  
 448      <!-- default matching for header elements -->
 449      <xsl:template name="create-heading">
 450          <xsl:param name="collectedGlobalData"/>
 451  
 452          <xsl:choose>
 453              <!--+++++ CSS (CASCADING STLYE SHEET) HEADER STYLE WAY +++++-->
 454              <xsl:when test="$outputType = 'CSS_HEADER'">
 455  
 456                  <xsl:variable name="headertyp" select="concat('h', @text:level)"/>
 457                  <xsl:element name="{$headertyp}">
 458  
 459                      <!-- outline style 'text:min-label-width' is interpreted as a CSS 'margin-left' attribute -->
 460                      <xsl:variable name="min-label" select="$office:styles/text:outline-style/text:outline-level-style[@text:level = current()/@text:level]/style:properties/@text:min-label-width"/>
 461                      <xsl:if test="$min-label">
 462                          <xsl:attribute name="style"><xsl:text>margin-left:</xsl:text><xsl:value-of select="$min-label"/><xsl:text>;</xsl:text></xsl:attribute>
 463                      </xsl:if>
 464  
 465  
 466                      <xsl:attribute name="class"><xsl:value-of select="translate(@text:style-name, '. %()/\', '')"/></xsl:attribute>
 467  
 468                      <!-- writing out a chapter number if desired (noticable when a corresponding 'text:outline-style' exist -->
 469                      <xsl:if test="string-length($office:styles/text:outline-style/text:outline-level-style[@text:level = current()/@text:level]/@style:num-format) != 0">
 470  
 471                          <xsl:choose>
 472                              <xsl:when test="$disableLinkedTableOfContent or $isJavaDisabled or not($outputType = 'CSS_HEADER')">
 473                                  <!-- the chapter number is the sum of 'text:start-value' and preceding siblings of 'text:h' with the same 'text:level',
 474                                       furthermore when the current document is referenced by a global document - as part of a whole sequence of documents -,
 475                                       the chapter no. is dependent of the amount of started headers in preceding documents.
 476                                       If the 'text:start-value is not set the default value of '1' has to be taken. -->
 477                                  <xsl:variable name="startValue" select="$office:styles/text:outline-style/text:outline-level-style[@text:level = current()/@text:level]/@text:start-value"/>
 478                                  <xsl:choose>
 479                                      <xsl:when test="$startValue">
 480                                          <xsl:choose>
 481                                              <xsl:when test="@text:level='1'">
 482                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 483                                                              + $precedingChapterLevel1
 484                                                              + $startValue"/>
 485                                              </xsl:when>
 486                                              <xsl:when test="@text:level='2'">
 487                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 488                                                              + $precedingChapterLevel2
 489                                                              + $startValue"/>
 490                                              </xsl:when>
 491                                              <xsl:when test="@text:level='3'">
 492                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 493                                                              + $precedingChapterLevel3
 494                                                              + $startValue"/>
 495                                              </xsl:when>
 496                                              <xsl:when test="@text:level='4'">
 497                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 498                                                              + $precedingChapterLevel4
 499                                                              + $startValue"/>
 500                                              </xsl:when>
 501                                              <xsl:when test="@text:level='5'">
 502                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 503                                                              + $precedingChapterLevel5
 504                                                              + $startValue"/>
 505                                              </xsl:when>
 506                                              <xsl:when test="@text:level='6'">
 507                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 508                                                              + $precedingChapterLevel6
 509                                                              + $startValue"/>
 510                                              </xsl:when>
 511                                              <xsl:when test="@text:level='7'">
 512                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 513                                                              + $precedingChapterLevel7
 514                                                              + $startValue"/>
 515                                              </xsl:when>
 516                                              <xsl:when test="@text:level='8'">
 517                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 518                                                              + $precedingChapterLevel8
 519                                                              + $startValue"/>
 520                                              </xsl:when>
 521                                              <xsl:when test="@text:level='9'">
 522                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 523                                                              + $precedingChapterLevel9
 524                                                              + $startValue"/>
 525                                              </xsl:when>
 526                                              <xsl:when test="@text:level='10'">
 527                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 528                                                              + $precedingChapterLevel10
 529                                                              + $startValue"/>
 530                                              </xsl:when>
 531                                          </xsl:choose>
 532                                      </xsl:when>
 533                                      <xsl:otherwise>
 534                                          <xsl:choose>
 535                                              <xsl:when test="@text:level='1'">
 536                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 537                                                              + $precedingChapterLevel1
 538                                                              + 1"/>
 539                                              </xsl:when>
 540                                              <xsl:when test="@text:level='2'">
 541                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 542                                                              + $precedingChapterLevel2
 543                                                              + 1"/>
 544                                              </xsl:when>
 545                                              <xsl:when test="@text:level='3'">
 546                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 547                                                              + $precedingChapterLevel3
 548                                                              + 1"/>
 549                                              </xsl:when>
 550                                              <xsl:when test="@text:level='4'">
 551                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 552                                                              + $precedingChapterLevel4
 553                                                              + 1"/>
 554                                              </xsl:when>
 555                                              <xsl:when test="@text:level='5'">
 556                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 557                                                              + $precedingChapterLevel5
 558                                                              + 1"/>
 559                                              </xsl:when>
 560                                              <xsl:when test="@text:level='6'">
 561                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 562                                                              + $precedingChapterLevel6
 563                                                              + 1"/>
 564                                              </xsl:when>
 565                                              <xsl:when test="@text:level='7'">
 566                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 567                                                              + $precedingChapterLevel7
 568                                                              + 1"/>
 569                                              </xsl:when>
 570                                              <xsl:when test="@text:level='8'">
 571                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 572                                                              + $precedingChapterLevel8
 573                                                              + 1"/>
 574                                              </xsl:when>
 575                                              <xsl:when test="@text:level='9'">
 576                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 577                                                              + $precedingChapterLevel9
 578                                                              + 1"/>
 579                                              </xsl:when>
 580                                              <xsl:when test="@text:level='10'">
 581                                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 582                                                              + $precedingChapterLevel10
 583                                                              + 1"/>
 584                                              </xsl:when>
 585                                          </xsl:choose>
 586                                      </xsl:otherwise>
 587                                  </xsl:choose>
 588                              </xsl:when>
 589                              <xsl:otherwise>
 590                                  <xsl:call-template name="get-absolute-chapter-no">
 591                                      <xsl:with-param name="precedingChapterLevel1"    select="$precedingChapterLevel1"/>
 592                                      <xsl:with-param name="collectedGlobalData"       select="$collectedGlobalData"/>
 593                                  </xsl:call-template>
 594                              </xsl:otherwise>
 595                          </xsl:choose>
 596                          <xsl:text> &#160; &#160;</xsl:text>
 597                      </xsl:if>
 598                      <xsl:apply-templates>
 599                          <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 600                      </xsl:apply-templates>
 601  
 602                  </xsl:element>
 603              </xsl:when>
 604  
 605  
 606              <!--+++++ HTML 4.0 INLINED WAY  +++++-->
 607              <xsl:when test="$outputType = 'CSS_INLINED'">
 608                  <xsl:variable name="headertyp" select="concat('h', @text:level)"/>
 609                  <xsl:element name="{$headertyp}">
 610  
 611                      <xsl:apply-templates select="@text:style-name">
 612                          <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 613                      </xsl:apply-templates>
 614  
 615                      <!-- writing out a chapter number if desired (noticable when a corresponding 'text:outline-style' exist -->
 616                      <xsl:if test="$office:styles/text:outline-style/text:outline-level-style[@text:level = current()/@text:level]/@text:style-name">
 617  
 618                          <!-- the chapter number is the sum of 'text:start-value' and preceding siblings of 'text:h' with the same 'text:level' -->
 619                          <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 620                                              + $office:styles/text:outline-style/text:outline-level-style[@text:level = current()/@text:level]/@text:start-value"/>
 621                          <xsl:text> &#160; &#160;</xsl:text>
 622                      </xsl:if>
 623  
 624                  </xsl:element>
 625              </xsl:when>
 626  
 627              <!-- 2DO: add Chapter No. for PALM and WML <-> problem nested apply-templates -->
 628  
 629              <!--+++++ PALM 3.2 SUBSET INLINED WAY  +++++-->
 630              <xsl:when test="$outputType = 'PALM'">
 631                  <xsl:variable name="headertyp" select="concat('h', @text:level)"/>
 632                  <xsl:element name="{$headertyp}">
 633  
 634  
 635                      <!-- All children content have to be nested in the styles (e.g. <i><b>ANY CONTENT</b></i>)
 636                           for this xsl:apply-templates will be called later / implicit -->
 637                      <xsl:call-template name="create-attribute-ALIGN">
 638                          <!-- getting the css styles for the style name (mapped by style-mapping.xsl) -->
 639                          <xsl:with-param name="styleProperties" select="$collectedGlobalData/allstyles/*[name()=current()/@text:style-name]"/>
 640                      </xsl:call-template>
 641                  </xsl:element>
 642              </xsl:when>
 643  
 644              <!--+++++ WML / WAP  +++++-->
 645              <xsl:otherwise>
 646                  <!-- no nested p tags in wml1.1 allowed -->
 647                  <xsl:choose>
 648                      <xsl:when test="ancestor::*[contains($wap-paragraph-elements, name())]">
 649                          <!-- since no header styles exist, an emphasis is used -->
 650                          <xsl:element name="em">
 651  
 652                              <!-- writing out a chapter number if desired (noticable when a corresponding 'text:outline-style' exist -->
 653                              <xsl:if test="$office:styles/text:outline-style/text:outline-level-style[@text:level = current()/@text:level]/@text:style-name">
 654  
 655                                  <!-- the chapter number is the sum of 'text:start-value' and preceding siblings of 'text:h' with the same 'text:level' -->
 656                                  <xsl:value-of select="count(preceding-sibling::text:h[@text:level = current()/@text:level])
 657                                                      + $office:styles/text:outline-style/text:outline-level-style[@text:level = current()/@text:level]/@text:start-value"/>
 658                                  <xsl:text> &#160; &#160;</xsl:text>
 659                              </xsl:if>
 660  
 661                              <xsl:apply-templates select="@text:style-name">
 662                                  <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 663                              </xsl:apply-templates>
 664  
 665                          </xsl:element>
 666                      </xsl:when>
 667                      <xsl:otherwise>
 668                          <xsl:element name="p">
 669                              <!-- since no header styles exist, an emphasis is used -->
 670                              <xsl:element name="em">
 671                                  <xsl:call-template name="apply-styles-and-content">
 672                                      <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 673                                  </xsl:call-template>
 674                              </xsl:element>
 675                          </xsl:element>
 676                      </xsl:otherwise>
 677                  </xsl:choose>
 678              </xsl:otherwise>
 679          </xsl:choose>
 680      </xsl:template>
 681  
 682  
 683  
 684      <!-- ************* -->
 685      <!-- *** Link  *** -->
 686      <!-- ************* -->
 687  
 688      <xsl:template match="text:a | draw:a">
 689          <xsl:param name="collectedGlobalData"/>
 690  
 691          <xsl:call-template name="create-common-link">
 692              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 693          </xsl:call-template>
 694      </xsl:template>
 695  
 696  
 697      <xsl:template name="create-common-link">
 698          <xsl:param name="collectedGlobalData"/>
 699  
 700          <xsl:choose>
 701              <xsl:when test="not($outputType = 'WML')">
 702                  <xsl:element name="a">
 703                      <xsl:attribute name="href"><xsl:value-of select="@xlink:href"/></xsl:attribute>
 704                      <!--<xsl:attribute name="class">ContentLink</xsl:attribute>-->
 705                      <xsl:call-template name="apply-styles-and-content">
 706                          <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 707                      </xsl:call-template>
 708                  </xsl:element>
 709              </xsl:when>
 710              <xsl:otherwise>
 711                  <!-- no nested p tags in wml1.1 allowed -->
 712                  <xsl:choose>
 713                      <xsl:when test="ancestor::*[contains($wap-paragraph-elements, name())]">
 714                          <xsl:element name="a">
 715                              <xsl:attribute name="href"><xsl:value-of select="@xlink:href"/></xsl:attribute>
 716                              <xsl:apply-templates select="descendant::text()"/>
 717                          </xsl:element>
 718                      </xsl:when>
 719                      <xsl:otherwise>
 720                          <xsl:element name="p">
 721                              <xsl:element name="a">
 722                                  <xsl:attribute name="href"><xsl:value-of select="@xlink:href"/></xsl:attribute>
 723                                  <xsl:apply-templates select="descendant::text()"/>
 724                              </xsl:element>
 725                          </xsl:element>
 726                      </xsl:otherwise>
 727                  </xsl:choose>
 728              </xsl:otherwise>
 729          </xsl:choose>
 730      </xsl:template>
 731  
 732  
 733  
 734  
 735  
 736      <!-- ******************* -->
 737      <!-- *** Image Link  *** -->
 738      <!-- ******************* -->
 739  
 740      <xsl:template match="draw:image">
 741          <xsl:param name="collectedGlobalData"/>
 742  
 743          <!-- NO IMAGES SUPPLIED FOR WAP OR PALM -->
 744          <xsl:if test="$outputType = 'CSS_HEADER' or $outputType = 'CSS_INLINED'">
 745  
 746              <xsl:element name="img">
 747                  <xsl:if test="@svg:width">
 748                      <xsl:attribute name="width">
 749                          <xsl:call-template name="convert2pixel">
 750                              <xsl:with-param name="value" select="@svg:width"/>
 751                          </xsl:call-template>
 752                      </xsl:attribute>
 753                  </xsl:if>
 754                  <xsl:if test="@svg:height">
 755                      <xsl:attribute name="height">
 756                          <xsl:call-template name="convert2pixel">
 757                              <xsl:with-param name="value" select="@svg:height"/>
 758                          </xsl:call-template>
 759                      </xsl:attribute>
 760                  </xsl:if>
 761                  <xsl:if test="svg:desc">
 762                      <xsl:attribute name="alt">
 763                          <xsl:value-of select="svg:desc"/>
 764                      </xsl:attribute>
 765                  </xsl:if>
 766                  <xsl:choose>
 767                       <!-- for images jared in open office document -->
 768                      <xsl:when test="contains(@xlink:href, '#Pictures/')">
 769                          <!-- creating an absolute http URL to the packed image file -->
 770                          <xsl:attribute name="src"><xsl:value-of select="concat($jaredRootURL, '/Pictures/', substring-after(@xlink:href, '#Pictures/'), $optionalURLSuffix)"/></xsl:attribute>
 771                      </xsl:when>
 772  <!--                    Due to a XT bug no DOS ':' before DRIVE letter is allowed, it would result in a unkown protoco exception, but a file URL for a DOS
 773                          path needs the DRIVE letter, therefore all relative URLs remain relativ
 774  
 775                      <xsl:when test="contains(@xlink:href,'//') or (substring(@xlink:href,2,1) = ':') or starts-with(@xlink:href, '/')">
 776                          <xsl:attribute name="src"><xsl:value-of select="@xlink:href"/></xsl:attribute>
 777                      </xsl:when>
 778                      <xsl:otherwise>
 779                          <!~~ creating a absolute path/URL for the referenced resource ~~>
 780                          <xsl:attribute name="src"><xsl:value-of select="concat($absoluteSourceDirRef, @xlink:href, $optionalURLSuffix)"/></xsl:attribute>
 781                      </xsl:otherwise>
 782  -->
 783                      <xsl:otherwise>
 784                          <xsl:attribute name="src"><xsl:value-of select="@xlink:href"/></xsl:attribute>
 785                      </xsl:otherwise>
 786                  </xsl:choose>
 787  
 788                  <xsl:call-template name="apply-styles-and-content">
 789                      <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 790                  </xsl:call-template>
 791              </xsl:element>
 792              <!-- adding a line break to make the presentation more even with the OOo view -->
 793              <xsl:element name="br"/>
 794          </xsl:if>
 795      </xsl:template>
 796  
 797  
 798  
 799      <!-- ******************** -->
 800      <!-- *** ordered list *** -->
 801      <!-- ******************** -->
 802  
 803      <xsl:template match="text:ordered-list">
 804          <xsl:param name="collectedGlobalData"/>
 805  
 806              <xsl:choose>
 807                  <!--+++++ CSS (CASCADING STLYE SHEET) HEADER STYLE WAY +++++-->
 808                  <xsl:when test="$outputType = 'CSS_HEADER'">
 809                      <xsl:element name="ol">
 810                          <xsl:call-template name="apply-styles-and-content">
 811                              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 812                          </xsl:call-template>
 813                      </xsl:element>
 814                  </xsl:when>
 815                  <!--+++++ HTML 4.0 INLINED WAY  +++++-->
 816                  <xsl:when test="$outputType = 'CSS_INLINED'">
 817                      <xsl:element name="ol">
 818                          <xsl:call-template name="apply-styles-and-content">
 819                              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 820                          </xsl:call-template>
 821                      </xsl:element>
 822                  </xsl:when>
 823                  <!--+++++ PALM 3.2 SUBSET AND WAP INLINED WAY  +++++-->
 824                  <xsl:when test="$outputType = 'PALM'">
 825                      <xsl:element name="ol">
 826                          <xsl:call-template name="apply-styles-and-content">
 827                              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 828                          </xsl:call-template>
 829                      </xsl:element>
 830                  </xsl:when>
 831                  <!--+++++ WML / WAP  +++++-->
 832                  <xsl:otherwise>
 833                      <xsl:choose>
 834                          <!-- simulating content break of capsulated list elements -->
 835                          <xsl:when test="ancestor::text:list-item">
 836                              <xsl:choose>
 837                                  <xsl:when test="ancestor::*[contains($wap-paragraph-elements, name())]">
 838                                      <!-- simulating content break of capsulated list elements -->
 839                                      <xsl:element name="br"></xsl:element>
 840                                      <xsl:call-template name="apply-styles-and-content">
 841                                          <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 842                                      </xsl:call-template>
 843                                  </xsl:when>
 844                                  <xsl:otherwise>
 845                                      <xsl:element name="p">
 846                                          <!-- simulating content break of capsulated list elements -->
 847                                          <xsl:element name="br"></xsl:element>
 848                                          <xsl:call-template name="apply-styles-and-content">
 849                                              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 850                                          </xsl:call-template>
 851                                      </xsl:element>
 852                                  </xsl:otherwise>
 853                              </xsl:choose>
 854                          </xsl:when>
 855                          <xsl:otherwise>
 856                              <xsl:call-template name="apply-styles-and-content">
 857                                  <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 858                              </xsl:call-template>
 859                          </xsl:otherwise>
 860                      </xsl:choose>
 861                  </xsl:otherwise>
 862              </xsl:choose>
 863      </xsl:template>
 864  
 865  
 866  
 867      <!-- ********************** -->
 868      <!-- *** unordered list *** -->
 869      <!-- ********************** -->
 870  
 871      <xsl:template match="text:unordered-list">
 872          <xsl:param name="collectedGlobalData"/>
 873  
 874          <xsl:choose>
 875              <!--+++++ CSS (CASCADING STLYE SHEET) HEADER STYLE WAY +++++-->
 876              <xsl:when test="$outputType = 'CSS_HEADER'">
 877                  <xsl:element name="ul">
 878                      <xsl:call-template name="apply-styles-and-content">
 879                          <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 880                      </xsl:call-template>
 881                  </xsl:element>
 882              </xsl:when>
 883  
 884              <!--+++++ HTML 4.0 INLINED WAY  +++++-->
 885              <xsl:when test="$outputType = 'CSS_INLINED'">
 886                  <xsl:element name="ul">
 887                      <xsl:call-template name="apply-styles-and-content">
 888                          <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 889                      </xsl:call-template>
 890                  </xsl:element>
 891              </xsl:when>
 892  
 893              <!--+++++ PALM 3.2 SUBSET AND WAP INLINED WAY  +++++-->
 894              <xsl:when test="$outputType = 'PALM'">
 895                  <xsl:element name="ul">
 896                      <xsl:call-template name="apply-styles-and-content">
 897                          <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 898                      </xsl:call-template>
 899                  </xsl:element>
 900              </xsl:when>
 901  
 902              <!--+++++ WML / WAP  +++++-->
 903              <xsl:otherwise>
 904                  <xsl:choose>
 905                      <!-- simulating content break of capsulated list elements -->
 906                      <xsl:when test="ancestor::text:list-item">
 907                          <xsl:choose>
 908                              <xsl:when test="ancestor::*[contains($wap-paragraph-elements, name())]">
 909                                  <!-- simulating content break of capsulated list elements -->
 910                                  <xsl:element name="br"></xsl:element>
 911                                  <xsl:call-template name="apply-styles-and-content">
 912                                      <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 913                                  </xsl:call-template>
 914                              </xsl:when>
 915                              <xsl:otherwise>
 916                                  <xsl:element name="p">
 917                                      <!-- simulating content break of capsulated list elements -->
 918                                      <xsl:element name="br"></xsl:element>
 919                                      <xsl:call-template name="apply-styles-and-content">
 920                                          <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 921                                      </xsl:call-template>
 922                                  </xsl:element>
 923                              </xsl:otherwise>
 924                          </xsl:choose>
 925                      </xsl:when>
 926                      <xsl:otherwise>
 927                          <xsl:call-template name="apply-styles-and-content">
 928                              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 929                          </xsl:call-template>
 930                      </xsl:otherwise>
 931                  </xsl:choose>
 932              </xsl:otherwise>
 933          </xsl:choose>
 934      </xsl:template>
 935  
 936  
 937  
 938      <!-- ****************** -->
 939      <!-- *** list item  *** -->
 940      <!-- ****************** -->
 941  
 942      <xsl:template match="text:list-item">
 943          <xsl:param name="collectedGlobalData"/>
 944  
 945          <xsl:choose>
 946              <!--+++++ CSS (CASCADING STLYE SHEET) HEADER STYLE WAY +++++-->
 947              <xsl:when test="$outputType = 'CSS_HEADER'">
 948                  <xsl:element name="li">
 949                      <xsl:call-template name="apply-styles-and-content">
 950                          <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 951                      </xsl:call-template>
 952                  </xsl:element>
 953              </xsl:when>
 954  
 955              <!--+++++ HTML 4.0 INLINED WAY  +++++-->
 956              <xsl:when test="$outputType = 'CSS_INLINED'">
 957                  <xsl:element name="li">
 958                      <xsl:call-template name="apply-styles-and-content">
 959                          <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 960                      </xsl:call-template>
 961                  </xsl:element>
 962              </xsl:when>
 963  
 964              <!--+++++ PALM 3.2 SUBSET AND WAP INLINED WAY  +++++-->
 965              <xsl:when test="$outputType = 'PALM'">
 966                  <xsl:element name="li">
 967                      <xsl:call-template name="apply-styles-and-content">
 968                          <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 969                      </xsl:call-template>
 970                  </xsl:element>
 971              </xsl:when>
 972  
 973              <!--+++++ WML / WAP  +++++-->
 974              <xsl:otherwise>
 975                  <xsl:choose>
 976                      <xsl:when test="ancestor::*[contains($wap-paragraph-elements, name())]">
 977                          <!-- simulating list elements -->
 978                          <xsl:for-each select="ancestor::text:list-item">*</xsl:for-each>
 979                          <xsl:text>* </xsl:text>
 980                          <xsl:call-template name="apply-styles-and-content">
 981                              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 982                          </xsl:call-template>
 983                          <!-- list item break simulation (not in a table)-->
 984                          <xsl:if test="not(ancestor::table:table-cell) or following-sibling::text:list-item">
 985                              <xsl:element name="br"/>
 986                          </xsl:if>
 987                      </xsl:when>
 988                      <xsl:otherwise>
 989                          <xsl:element name="p">
 990                              <!-- simulating list elements -->
 991                              <xsl:for-each select="ancestor::text:list-item">*</xsl:for-each>
 992                              <xsl:text>* </xsl:text>
 993                              <xsl:call-template name="apply-styles-and-content">
 994                                  <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
 995                              </xsl:call-template>
 996                              <!-- list item break simulation (not in a table)-->
 997                              <xsl:if test="not(ancestor::table:table-cell) or following-sibling::text:list-item">
 998                                  <xsl:element name="br"/>
 999                              </xsl:if>
1000                          </xsl:element>
1001                      </xsl:otherwise>
1002                  </xsl:choose>
1003              </xsl:otherwise>
1004          </xsl:choose>
1005      </xsl:template>
1006  
1007  
1008  
1009      <!-- ********************************************** -->
1010      <!-- *** Text Section (contains: draw:text-box) *** -->
1011      <!-- ********************************************** -->
1012  
1013          <xsl:template match="text:section">
1014          <xsl:param name="collectedGlobalData"/>
1015  
1016          <xsl:if test="not(contains(@text:display, 'none'))">
1017              <xsl:choose>
1018                  <!--+++++ CSS (CASCADING STLYE SHEET) HEADER STYLE WAY +++++-->
1019                  <xsl:when test="$outputType = 'CSS_HEADER'">
1020                      <xsl:element name="span">
1021                          <xsl:call-template name="apply-styles-and-content">
1022                              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
1023                          </xsl:call-template>
1024                      </xsl:element>
1025                  </xsl:when>
1026                  <!--+++++ HTML 4.0 INLINED WAY  +++++-->
1027                  <xsl:when test="$outputType = 'CSS_INLINED'">
1028                      <xsl:element name="span">
1029                          <xsl:call-template name="apply-styles-and-content">
1030                              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
1031                          </xsl:call-template>
1032                      </xsl:element>
1033                  </xsl:when>
1034                  <!--+++++ PALM 3.2 SUBSET INLINED WAY  +++++-->
1035                  <xsl:when test="$outputType = 'PALM'">
1036                      <xsl:choose>
1037                          <xsl:when test="name(parent::*) = 'text:list-item'">
1038                                          <xsl:call-template name="apply-styles-and-content">
1039                                              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
1040                                          </xsl:call-template>
1041                          </xsl:when>
1042                          <xsl:otherwise>
1043                              <xsl:element name="p">
1044                                  <xsl:call-template name="apply-styles-and-content">
1045                                      <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
1046                                  </xsl:call-template>
1047                              </xsl:element>
1048                          </xsl:otherwise>
1049                      </xsl:choose>
1050                  </xsl:when>
1051                  <!--+++++ WML / WAP  +++++-->
1052                  <xsl:otherwise>
1053                      <xsl:choose>
1054                          <xsl:when test="not($outputType = 'WML')">
1055                              <xsl:element name="a">
1056                                  <xsl:attribute name="href"><xsl:value-of select="@xlink:href"/></xsl:attribute>
1057                                  <xsl:call-template name="apply-styles-and-content">
1058                                      <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
1059                                  </xsl:call-template>
1060                              </xsl:element>
1061                          </xsl:when>
1062                          <xsl:otherwise>
1063                              <!-- no nested p tags in wml1.1 allowed -->
1064                              <xsl:choose>
1065                                  <xsl:when test="ancestor::*[contains($wap-paragraph-elements, name())]">
1066                                      <xsl:call-template name="apply-styles-and-content">
1067                                          <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
1068                                      </xsl:call-template>
1069                                  </xsl:when>
1070                                  <xsl:otherwise>
1071                                      <xsl:element name="p">
1072                                          <xsl:call-template name="apply-styles-and-content">
1073                                              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
1074                                          </xsl:call-template>
1075                                      </xsl:element>
1076                                  </xsl:otherwise>
1077                              </xsl:choose>
1078                          </xsl:otherwise>
1079                      </xsl:choose>
1080                  </xsl:otherwise>
1081              </xsl:choose>
1082          </xsl:if>
1083      </xsl:template>
1084  
1085  
1086  
1087      <xsl:template match="text:line-break">
1088          <xsl:element name="br"/>
1089      </xsl:template>
1090  
1091  
1092  <!--
1093      TABHANDLING PROBLEM: Tabs are possible to be shown in the HTML text file, but will be later stripped as whitespaces.
1094          To prevent this one way would be the PRE tag which unfortunately ALWAYS result into a line-break. No surrounding NOBR tags help.
1095  
1096      <xsl:template match="text:tab-stop">
1097          <xsl:if test="not(preceding-sibling::text:tab-stop)">
1098              <xsl:element name="pre"><xsl:text>&#9;</xsl:text><xsl:for-each select="following-sibling::text:tab-stop"><xsl:text>&#9;</xsl:text></xsl:for-each></xsl:element>
1099          </xsl:if>
1100       </xsl:template>
1101  
1102      <xsl:template match="text:tab-stop"><xsl:text>&#9;</xsl:text></xsl:template>
1103  -->
1104      <!-- HOTFIX: 8 non-breakable-spaces instead of a TAB is a hack sometimes less Tabs are needed and the code more difficult to read -->
1105      <xsl:template match="text:tab-stop">
1106          <xsl:call-template name="write-breakable-whitespace">
1107              <xsl:with-param name="whitespaces" select="8"/>
1108          </xsl:call-template>
1109      </xsl:template>
1110  
1111      <!-- currently there have to be an explicit call of the style attribute nodes, maybe the attributes nodes have no priority only order relevant-->
1112      <!-- STRANGE: checked with biorythm.sxc a simple xsl:apply-templates did not recognice the styles. Maybe caused by the template match order?  -->
1113      <xsl:template name="apply-styles-and-content">
1114          <xsl:param name="collectedGlobalData"/>
1115  
1116          <xsl:apply-templates select="@text:style-name | @draw:style-name | @draw:text-style-name | @table:style-name"><!-- | @presentation:style-name -->
1117              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
1118          </xsl:apply-templates>
1119  
1120          <xsl:apply-templates>
1121              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
1122          </xsl:apply-templates>
1123      </xsl:template>
1124  
1125  
1126      <xsl:template match="@text:style-name | @draw:style-name | @draw:text-style-name | @table:style-name"><!-- | @presentation:style-name-->
1127          <xsl:param name="collectedGlobalData"/>
1128  
1129          <xsl:choose>
1130              <!--+++++ CSS (CASCADING STLYE SHEET) HEADER STYLE WAY +++++-->
1131              <xsl:when test="$outputType = 'CSS_HEADER'">
1132                  <xsl:attribute name="class"><xsl:value-of select="translate(., '. %()/\', '')"/></xsl:attribute>
1133              </xsl:when>
1134  
1135              <!--+++++ HTML 4.0 INLINED WAY  +++++-->
1136              <xsl:when test="$outputType = 'CSS_INLINED'">
1137                  <xsl:attribute name="style"><xsl:value-of select="$collectedGlobalData/allstyles/*[name()=current()/.]"/></xsl:attribute>
1138              </xsl:when>
1139  
1140              <!--+++++ PALM 3.2 SUBSET INLINED WAY  and  WML / WAP   +++++-->
1141              <xsl:when test="$outputType = 'PALM' or $outputType = 'WML'">
1142                  <!-- getting the css styles for the style name (mapped by style-mapping.xsl) -->
1143                  <xsl:variable name="styleProperties" select="$collectedGlobalData/allstyles/*[name()=current()/.]"/>
1144                  <!-- changing the context node -->
1145                  <xsl:for-each select="parent::*">
1146                      <xsl:call-template name="create-nested-format-tags">
1147                          <xsl:with-param name="styleProperties" select="$styleProperties"/>
1148                          <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
1149                      </xsl:call-template>
1150                  </xsl:for-each>
1151              </xsl:when>
1152          </xsl:choose>
1153      </xsl:template>
1154  
1155  
1156      <xsl:template match="text:sequence">
1157          <xsl:param name="collectedGlobalData"/>
1158  
1159          <xsl:apply-templates>
1160              <xsl:with-param name="collectedGlobalData" select="$collectedGlobalData"/>
1161          </xsl:apply-templates>
1162      </xsl:template>
1163  
1164  
1165  </xsl:stylesheet>


Généré le : Sun Feb 25 18:01:28 2007 par Balluche grâce à PHPXref 0.7