src/share/vm/prims/jvmti.xsl

Thu, 27 May 2010 19:08:38 -0700

author
trims
date
Thu, 27 May 2010 19:08:38 -0700
changeset 1907
c18cbe5936b8
parent 435
a61af66fc99e
child 2862
1d80a2429f59
permissions
-rw-r--r--

6941466: Oracle rebranding changes for Hotspot repositories
Summary: Change all the Sun copyrights to Oracle copyright
Reviewed-by: ohair

     1 <?xml version="1.0"?> 
     2 <!--
     3  Copyright (c) 2002, 2006, Oracle and/or its affiliates. All rights reserved.
     4  DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     6  This code is free software; you can redistribute it and/or modify it
     7  under the terms of the GNU General Public License version 2 only, as
     8  published by the Free Software Foundation.
    10  This code is distributed in the hope that it will be useful, but WITHOUT
    11  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    12  FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    13  version 2 for more details (a copy is included in the LICENSE file that
    14  accompanied this code).
    16  You should have received a copy of the GNU General Public License version
    17  2 along with this work; if not, write to the Free Software Foundation,
    18  Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    20  Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    21  or visit www.oracle.com if you need additional information or have any
    22  questions.
    24 -->
    26 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
    28 <xsl:import href="jvmtiLib.xsl"/>
    30 <xsl:output method="html" indent="yes" 
    31   doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" 
    32   doctype-system="http://www.w3.org/TR/html4/loose.dtd"/>
    34 <xsl:param name="development"></xsl:param>
    36 <xsl:template match="specification">
    37   <html>
    38   <head>
    39         <title>
    40           <xsl:value-of select="@label"/>
    41           <xsl:text> </xsl:text>
    42           <xsl:call-template name="showversion"/>
    43         </title>
    44         <style type="text/css">
    45           td.tableHeader {font-size: larger}
    46         </style>
    47   </head>
    48   <body>
    49     <table border="0" width="100%">
    50       <tr>
    51         <td align="center">
    52           <xsl:apply-templates select="title"/>
    53         </td>
    54       </tr>
    55     </table>
    56     <ul>
    57       <li>
    58         <a href="#SpecificationIntro"><b>Introduction</b></a>
    59         <ul>
    60           <xsl:for-each select="intro">
    61             <li>
    62               <a>
    63                 <xsl:attribute name="href">#<xsl:value-of select="@id"/>
    64                 </xsl:attribute>
    65                 <b><xsl:value-of select="@label"/></b>
    66               </a>
    67             </li>
    68           </xsl:for-each>
    69         </ul>
    70       </li>
    71       <li>
    72         <a href="#FunctionSection"><b>Functions</b></a>
    73         <ul>
    74           <xsl:for-each select="functionsection/intro">
    75             <li>
    76               <a>
    77                 <xsl:attribute name="href">#<xsl:value-of select="@id"/>
    78                 </xsl:attribute>
    79                 <b><xsl:value-of select="@label"/></b>
    80               </a>
    81             </li>
    82           </xsl:for-each>
    83           <li>
    84             <a href="#FunctionIndex"><b>Function Index</b></a>
    85             <ul>
    86               <xsl:for-each select="functionsection/category">
    87                 <li>
    88                   <a>
    89                     <xsl:attribute name="href">#<xsl:value-of select="@id"/>
    90                     </xsl:attribute>
    91                     <b><xsl:value-of select="@label"/></b>
    92                   </a>
    93                 </li>
    94               </xsl:for-each>
    95             </ul>
    96           </li>
    97           <li>
    98             <a href="#ErrorSection"><b>Error Codes</b></a>
    99           </li>
   100         </ul>
   101       </li>
   102       <li>
   103         <a href="#EventSection"><b>Events</b></a>
   104         <ul>
   105           <li>
   106             <a href="#EventIndex"><b>Event Index</b></a>
   107           </li>
   108         </ul>
   109       </li>
   110       <li>
   111         <a href="#DataSection"><b>Data Types</b></a>
   112         <ul>
   113           <xsl:for-each select="//basetypes">   
   114           <li>
   115             <a>
   116               <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
   117               <b>
   118                 <xsl:value-of select="@label"/>
   119               </b>
   120             </a>
   121           </li>
   122           </xsl:for-each>
   123           <li>
   124             <a href="#StructureTypeDefinitions"><b>Structure Type Definitions</b></a>
   125           </li>
   126           <li>
   127             <a href="#FunctionTypeDefinitions"><b>Function Type Definitions</b></a>
   128           </li>
   129           <li>
   130             <a href="#EnumerationDefinitions"><b>Enumeration Definitions</b></a>
   131           </li>
   132           <li>
   133             <a href="#FunctionTable"><b>Function Table</b></a>
   134           </li>
   135         </ul>
   136       </li>
   137       <li>
   138         <a href="#ConstantIndex"><b>Constant Index</b></a>
   139       </li>
   140       <xsl:if test="$development = 'Show'">
   141         <li>
   142           <a href="#SpecificationIssues"><b>Issues</b></a>
   143           <ul>
   144             <xsl:for-each select="issuessection/intro">
   145               <li>
   146                 <a>
   147                   <xsl:attribute name="href">#<xsl:value-of select="@id"/>
   148                   </xsl:attribute>
   149                   <b><xsl:value-of select="@label"/></b>
   150                 </a>
   151               </li>
   152             </xsl:for-each>
   153           </ul>
   154         </li>
   155       </xsl:if>
   156       <li>
   157         <a href="#ChangeHistory"><b>Change History</b></a>
   158       </li>
   159     </ul>
   160     <!-- end table of contents, begin body -->
   161     <p/>
   162     <hr noshade="noshade" size="3"/>
   163     <p/>
   164     <p id="SpecificationIntro"/>
   165       <xsl:apply-templates select="intro"/>
   166     <p id="FunctionSection"/>
   167       <xsl:apply-templates select="functionsection"/>
   168     <p id="ErrorSection"/>
   169       <xsl:apply-templates select="errorsection"/>
   170     <p id="DataSection"/>
   171       <xsl:apply-templates select="datasection"/>
   172     <p id="EventSection"/>
   173       <xsl:apply-templates select="eventsection"/>
   174     <p id="ConstantIndex"/>
   175       <p/>
   176       <hr noshade="noshade" size="3"/>
   177       <h2>
   178         Constant Index
   179       </h2>
   180       <blockquote>
   181         <xsl:apply-templates select="//constant" mode="index">
   182           <xsl:sort select="@id"/>
   183         </xsl:apply-templates>
   184       </blockquote>
   185     <xsl:if test="$development = 'Show'">
   186       <p id="SpecificationIssues"/>
   187       <p/>
   188       <hr noshade="noshade" size="3"/>
   189       <h2>
   190         <xsl:value-of select="issuessection/@label"/>
   191       </h2>
   192       <xsl:apply-templates select="issuessection/intro"/>
   193     </xsl:if>
   194     <p id="ChangeHistory"/>
   195       <xsl:apply-templates select="changehistory"/>
   196   </body>
   197 </html>
   198 </xsl:template>
   200 <xsl:template match="title">
   201     <h1>
   202       <xsl:apply-templates/>
   203     </h1>
   204     <h3>
   205       <xsl:value-of select="@subtitle"/>
   206       <xsl:text> </xsl:text>
   207       <xsl:call-template name="showbasicversion"/>
   208     </h3>
   209 </xsl:template>
   211 <xsl:template match="functionsection">
   212   <p/>
   213   <hr noshade="noshade" size="3"/>
   214   <h2>
   215     <xsl:value-of select="@label"/>
   216   </h2>
   217   <xsl:apply-templates select="intro"/>
   218   <h3 id="FunctionIndex">Function Index</h3>
   219   <ul>
   220     <xsl:apply-templates select="category" mode="index"/>
   221   </ul>
   222   <xsl:apply-templates select="category" mode="body"/>
   223 </xsl:template>
   225 <xsl:template match="category" mode="index">
   226   <li>
   227     <a>
   228       <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
   229       <b>
   230         <xsl:value-of select="@label"/>
   231       </b>
   232     </a>
   233     <ul>
   234       <xsl:apply-templates select="function[count(@hide)=0]" mode="index"/>
   235     </ul>
   236   </li>
   237 </xsl:template>
   239 <xsl:template match="function|callback" mode="index">
   240   <li>
   241     <a>
   242       <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
   243       <xsl:apply-templates select="synopsis" mode="index"/>
   244     </a>
   245   </li>
   246 </xsl:template>
   248 <xsl:template match="synopsis" mode="index">
   249     <xsl:value-of select="."/>
   250 </xsl:template>
   252 <xsl:template match="category" mode="body">
   253   <p>
   254     <xsl:attribute name="id">
   255       <xsl:value-of select="@id"/>
   256     </xsl:attribute>
   257   </p>
   258   <hr noshade="noshade" size="3"/>
   259   <h2 align="center"><xsl:value-of select="@label"/></h2>
   260   <xsl:value-of select="@label"/> functions:
   261   <ul>
   262     <xsl:apply-templates select="function[count(@hide)=0]" mode="index"/>
   263   </ul>
   264   <xsl:variable name="calltypes" select="callback"/>
   265   <xsl:if test="count($calltypes)!=0">
   266     <xsl:value-of select="@label"/> function types:
   267     <ul>
   268       <xsl:apply-templates select="$calltypes" mode="index"/>
   269     </ul>
   270   </xsl:if>
   271   <xsl:variable name="cattypes" 
   272     select="(descendant::typedef|descendant::uniontypedef|descendant::capabilitiestypedef|descendant::constants[@kind='enum'])"/>
   273   <xsl:if test="count($cattypes)!=0">
   274     <xsl:value-of select="@label"/> types:
   275     <ul>
   276       <xsl:for-each select="$cattypes">
   277         <li>
   278           <a>
   279             <xsl:attribute name="href">
   280               <xsl:text>#</xsl:text>
   281               <xsl:value-of select="@id"/>
   282             </xsl:attribute>
   283             <code><xsl:value-of select="@id"/></code>
   284           </a>
   285           <xsl:text> - </xsl:text>
   286           <xsl:value-of select="@label"/>
   287         </li>
   288       </xsl:for-each>
   289     </ul>    
   290   </xsl:if>
   291   <xsl:variable name="catconst" 
   292     select="(descendant::constants[@kind!='enum'])"/>
   293   <xsl:if test="count($catconst)!=0">
   294     <xsl:value-of select="@label"/> flags and constants:
   295     <ul>
   296       <xsl:for-each select="$catconst">
   297         <li>
   298           <a>
   299             <xsl:attribute name="href">
   300               <xsl:text>#</xsl:text>
   301               <xsl:value-of select="@id"/>
   302             </xsl:attribute>
   303             <xsl:value-of select="@label"/>
   304           </a>
   305         </li>
   306       </xsl:for-each>
   307     </ul>    
   308   </xsl:if>
   309   <xsl:apply-templates select="intro|typedef|uniontypedef|capabilitiestypedef"/>
   310   <p/>
   311   <xsl:apply-templates select="function[count(@hide)=0]|callback" mode="body"/>
   312 </xsl:template>
   314 <xsl:template match="function" mode="body">
   315   <hr noshade="noshade" width="100%" size="1">
   316     <xsl:attribute name="id">
   317       <xsl:value-of select="@id"/>
   318     </xsl:attribute>
   320   </hr>
   321   <xsl:apply-templates select="synopsis" mode="body"/>
   322   <blockquote>
   323     <xsl:apply-templates select="typedef" mode="code"/>
   324     <xsl:apply-templates select="descendant::constants[@kind='enum']" mode="signature"/>
   325     <pre>
   326       <xsl:text>jvmtiError
   327 </xsl:text>
   328       <xsl:value-of select="@id"/>(jvmtiEnv* env<xsl:apply-templates select="parameters" mode="signature"/>)</pre>
   329   </blockquote>
   330   <xsl:apply-templates select="description"/>
   331   <xsl:apply-templates select="." mode="generalinfo"/>
   332   <xsl:apply-templates select="capabilities|eventcapabilities"/>
   333   <xsl:apply-templates select="typedef" mode="body"/>
   334   <xsl:apply-templates select="parameters" mode="body"/>
   335   <xsl:apply-templates select="." mode="errors"/>
   336 </xsl:template>
   338 <xsl:template match="function" mode="generalinfo">
   339   <table border="1" cellpadding="3" cellspacing="0" width="100%">
   340     <tr bgcolor="#EEEEFF">
   341       <td >
   342         <a href="#jvmtiPhase">Phase</a>
   343       </td>
   344       <td>
   345         <a href="#heapCallbacks">Callback Safe</a>
   346       </td>
   347       <td>
   348         <a href="#FunctionTable">Position</a>
   349       </td>
   350       <td>
   351         <a href="#ChangeHistory">Since</a>
   352       </td>
   353     </tr>
   354     <tr>
   355       <td >
   356         <xsl:apply-templates select="." mode="phaseinfo"/>
   357       </td>
   358       <td>
   359         <xsl:apply-templates select="." mode="callbacksafeinfo"/>
   360       </td>
   361       <td>
   362         <xsl:value-of select="@num"/>
   363       </td>
   364       <td>
   365         <xsl:value-of select="@since"/>
   366       </td>
   367     </tr>
   368   </table>
   369 </xsl:template>
   371 <xsl:template match="event" mode="generalinfo">
   372   <table border="1" cellpadding="3" cellspacing="0" width="100%">
   373     <tr bgcolor="#EEEEFF">
   374       <td >
   375         <a href="#jvmtiPhase">Phase</a>
   376       </td>
   377       <td>
   378         <a href="#jvmtiEvent">Event Type</a>
   379       </td>
   380       <td>
   381         <a href="#jvmtiEvent">Number</a>
   382       </td>
   383       <td>
   384         <a href="#enablingevents">Enabling</a>
   385       </td>
   386       <td>
   387         <a href="#ChangeHistory">Since</a>
   388       </td>
   389     </tr>
   390     <tr>
   391       <td >
   392         <xsl:apply-templates select="." mode="phaseinfo"/>
   393       </td>
   394       <td>
   395         <code><xsl:value-of select="@const"/></code>
   396       </td>
   397       <td>
   398         <xsl:value-of select="@num"/>
   399       </td>
   400       <td>
   401           <code><a href="#SetEventNotificationMode">SetEventNotificationMode</a>(JVMTI_ENABLE, 
   402           <xsl:value-of select="@const"/>, NULL)</code>
   403       </td>
   404       <td>
   405         <xsl:value-of select="@since"/>
   406       </td>
   407     </tr>
   408   </table>
   409 </xsl:template>
   411 <xsl:template match="function" mode="phaseinfo">
   412   may
   413   <xsl:choose>
   414     <xsl:when test="count(@phase) = 0 or @phase = 'live'">
   415       only be called during the live
   416     </xsl:when>
   417     <xsl:otherwise>
   418       <xsl:choose>
   419         <xsl:when test="@phase = 'onload'">
   420           only be called during the OnLoad or the live
   421         </xsl:when>
   422         <xsl:otherwise>
   423           <xsl:choose>
   424             <xsl:when test="@phase = 'any'">
   425               be called during any
   426             </xsl:when>
   427             <xsl:otherwise>
   428               <xsl:choose>
   429                 <xsl:when test="@phase = 'start'">
   430                   only be called during the start or the live
   431                 </xsl:when>
   432                 <xsl:otherwise>
   433                   <xsl:choose>
   434                     <xsl:when test="@phase = 'onloadOnly'">
   435                       only be called during the OnLoad
   436                     </xsl:when>
   437                     <xsl:otherwise>
   438                       <xsl:message terminate="yes">
   439                         bad phase - <xsl:value-of select="@phase"/>
   440                       </xsl:message>
   441                     </xsl:otherwise>
   442                   </xsl:choose>
   443                 </xsl:otherwise>
   444             </xsl:choose>
   445             </xsl:otherwise>
   446           </xsl:choose>
   447         </xsl:otherwise>
   448       </xsl:choose>
   449     </xsl:otherwise>
   450   </xsl:choose>
   451   phase
   452 </xsl:template>
   455 <xsl:template match="event" mode="phaseinfo">
   456   sent
   457   <xsl:choose>
   458     <xsl:when test="count(@phase) = 0 or @phase = 'live'">
   459       only during the live
   460     </xsl:when>
   461     <xsl:otherwise>
   462       <xsl:choose>
   463         <xsl:when test="@phase = 'any'">
   464           during the primordial, start or live
   465         </xsl:when>
   466         <xsl:otherwise>
   467           <xsl:choose>
   468             <xsl:when test="@phase = 'start'">
   469               during the start or live
   470             </xsl:when>
   471             <xsl:otherwise>
   472               <xsl:message terminate="yes">
   473                 bad phase - <xsl:value-of select="@phase"/>
   474               </xsl:message>
   475             </xsl:otherwise>
   476           </xsl:choose>
   477         </xsl:otherwise>
   478       </xsl:choose>
   479     </xsl:otherwise>
   480   </xsl:choose>
   481   phase
   482 </xsl:template>
   485 <xsl:template match="function" mode="callbacksafeinfo">
   486   <xsl:choose>
   487     <xsl:when test="contains(@callbacksafe,'safe')">
   488     This function may be called from the callbacks to the
   489     <a href="#Heap">Heap</a> iteration functions, or from the
   490     event handlers for the 
   491     <a href="#GarbageCollectionStart"><code>GarbageCollectionStart</code></a>,
   492     <a href="#GarbageCollectionFinish"><code>GarbageCollectionFinish</code></a>,
   493     and <a href="#ObjectFree"><code>ObjectFree</code></a> events.
   494     </xsl:when>
   495     <xsl:otherwise>
   496       No
   497     </xsl:otherwise>
   498   </xsl:choose>
   499 </xsl:template>
   502 <xsl:template match="callback" mode="body">
   503   <hr noshade="noshade" width="100%" size="1">
   504     <xsl:attribute name="id">
   505       <xsl:value-of select="@id"/>
   506     </xsl:attribute>
   507   </hr>
   508   <xsl:apply-templates select="synopsis" mode="body"/>
   509   <table cellpadding="0" cellspacing="0" border="0" width="90%" align="center"><tr><td>
   510   <blockquote>
   511     <pre>
   512       <xsl:text>typedef </xsl:text>
   513       <xsl:apply-templates select="child::*[position()=1]" mode="signature"/>
   514       <xsl:text> (JNICALL *</xsl:text>
   515       <xsl:value-of select="@id"/>
   516       <xsl:text>)
   517     (</xsl:text>
   518       <xsl:for-each select="parameters">
   519         <xsl:apply-templates select="param[position()=1]" mode="signature"/>
   520         <xsl:for-each select="param[position()>1]">
   521           <xsl:text>, 
   522      </xsl:text>
   523           <xsl:apply-templates select="." mode="signature"/>
   524         </xsl:for-each>
   525       </xsl:for-each>
   526       <xsl:text>);</xsl:text>
   527     </pre>
   528   </blockquote>
   529   <xsl:apply-templates select="description"/>
   530   <xsl:apply-templates select="parameters" mode="body"/>
   531 </td></tr></table>
   532 </xsl:template>
   534 <xsl:template match="synopsis" mode="body">
   535   <h3><xsl:value-of select="."/></h3>
   536 </xsl:template>
   538 <xsl:template match="eventsection">
   539   <p/>
   540   <hr noshade="noshade" size="3"/>
   541   <h2>
   542     <xsl:value-of select="@label"/>
   543   </h2>
   544   <xsl:apply-templates select="intro"/>
   545   <blockquote>
   546   <pre>
   547   <xsl:text>
   548 typedef struct {
   549 </xsl:text>
   550   <xsl:call-template name="eventStruct">
   551     <xsl:with-param name="events" select="event"/>
   552     <xsl:with-param name="index" select="0"/>
   553     <xsl:with-param name="started" select="false"/>
   554     <xsl:with-param name="comment" select="'No'"/>
   555   </xsl:call-template>
   556   <xsl:text>} jvmtiEventCallbacks;
   557 </xsl:text>
   558   </pre>
   559   </blockquote>
   560   <p/>
   561   <hr noshade="noshade" width="100%" size="1"/>
   562   <h3 id="EventIndex">Event Index</h3>
   563   <ul>
   564     <xsl:apply-templates select="event" mode="index">
   565       <xsl:sort select="@label"/>
   566     </xsl:apply-templates>
   567   </ul>
   568   <xsl:apply-templates select="event" mode="body"/>
   569 </xsl:template>
   571 <xsl:template match="event" mode="index">
   572   <li>
   573     <a>
   574       <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
   575       <b>
   576         <xsl:value-of select="@label"/>
   577       </b>
   578     </a>
   579   </li>
   580 </xsl:template>
   582 <xsl:template match="event" mode="body">
   583   <p>
   584     <xsl:attribute name="id">
   585       <xsl:value-of select="@id"/>
   586     </xsl:attribute>
   587   </p>
   588   <hr noshade="noshade" size="3"/>
   589   <h2><xsl:value-of select="@label"/></h2>
   590   <p/>
   591   <blockquote>
   592     <xsl:apply-templates select="typedef" mode="code"/>
   593     <pre>
   594 <xsl:text>void JNICALL
   595 </xsl:text>
   596       <xsl:value-of select="@id"/>(jvmtiEnv *jvmti_env<xsl:apply-templates select="parameters" mode="signature"/>)</pre>
   597   </blockquote>
   598   <xsl:apply-templates select="description"/>
   599   <xsl:apply-templates select="." mode="generalinfo"/>
   600   <xsl:apply-templates select="typedef" mode="body"/>
   601   <xsl:apply-templates select="capabilities"/>
   602   <xsl:apply-templates select="parameters" mode="body"/>
   603 </xsl:template>
   605 <xsl:template match="capabilitiestypedef" mode="code">
   606   <blockquote>
   607     <pre>
   608       <xsl:apply-templates select="." mode="genstruct"/>
   609     </pre>
   610   </blockquote>
   611 </xsl:template>
   613 <xsl:template match="typedef" mode="code">
   614   <pre>
   615   <xsl:call-template name="gentypedef">
   616     <xsl:with-param name="tdef" select="."/>
   617   </xsl:call-template>
   618   </pre>
   619 </xsl:template>
   621 <xsl:template match="uniontypedef" mode="code">
   622   <pre>
   623   <xsl:call-template name="genuniontypedef">
   624     <xsl:with-param name="tdef" select="."/>
   625   </xsl:call-template>
   626   </pre>
   627 </xsl:template>
   629 <xsl:template match="capabilitiestypedef|typedef|uniontypedef" mode="description">
   630   <xsl:apply-templates select="description"/>
   631 </xsl:template>
   633 <xsl:template match="capabilitiestypedef|typedef|uniontypedef">
   634   <h4>
   635     <xsl:attribute name="id">
   636       <xsl:value-of select="@id"/>
   637     </xsl:attribute>
   638     <xsl:value-of select="@label"/>
   639   </h4>
   640   <xsl:apply-templates select="." mode="description"/>
   641   <blockquote>
   642     <xsl:apply-templates select="." mode="code"/>
   643     <xsl:apply-templates select="." mode="justbody"/>
   644   </blockquote>
   645 </xsl:template>
   647 <xsl:template match="constants" mode="signature">
   648   <pre>
   649   <xsl:apply-templates select="." mode="enum"/>
   650   </pre>
   651 </xsl:template>
   653 <xsl:template match="typedef|uniontypedef" mode="body">
   654   <p>
   655     <xsl:attribute name="id">
   656       <xsl:value-of select="@id"/>
   657     </xsl:attribute>
   658   </p>
   659   <xsl:apply-templates select="." mode="justbody"/>
   660 </xsl:template>
   662 <xsl:template match="typedef|uniontypedef" mode="justbody">
   663     <table border="1" cellpadding="3" cellspacing="0" width="100%">
   664       <tr bgcolor="#CCCCFF">
   665         <td colspan="3" align="center" class="tableHeader">
   666           <code><xsl:value-of select="@id"/></code> - <xsl:value-of select="@label"/>
   667         </td>
   668       </tr>
   669       <tr bgcolor="#EEEEFF">
   670         <td>
   671           Field
   672         </td>
   673         <td>
   674           Type
   675         </td>
   676         <td>
   677           Description
   678         </td>
   679       </tr>
   680       <xsl:apply-templates select="field" mode="body"/>
   681     </table>
   682 </xsl:template>
   684 <xsl:template match="capabilitiestypedef" mode="body">
   685   <p>
   686     <xsl:attribute name="id">
   687       <xsl:value-of select="@id"/>
   688     </xsl:attribute>
   689   </p>
   690   <xsl:apply-templates select="." mode="justbody"/>
   691 </xsl:template>
   693 <xsl:template match="capabilitiestypedef" mode="justbody">
   694     <table border="1" cellpadding="3" cellspacing="0" width="100%">
   695       <tr bgcolor="#CCCCFF">
   696         <td colspan="3" align="center" class="tableHeader">
   697           <code><xsl:value-of select="@id"/></code> - <xsl:value-of select="@label"/>
   698         </td>
   699       </tr>
   700       <tr bgcolor="#EEEEFF">
   701         <td colspan="3">
   702           All types are <code>unsigned int : 1</code>
   703         </td>
   704       </tr>
   705       <tr bgcolor="#EEEEFF">
   706         <td>
   707           Field
   708         </td>
   709         <td>
   710           Description
   711         </td>
   712         <td>
   713           <a href="#ChangeHistory">Since</a>
   714         </td>
   715       </tr>
   716       <xsl:apply-templates select="capabilityfield" mode="body"/>
   717     </table>
   718 </xsl:template>
   720 <xsl:template match="typedef|uniontypedef|capabilitiestypedef|constants" mode="tableentry">
   721   <tr>
   722     <td>
   723       <a>
   724         <xsl:attribute name="href">
   725           <xsl:text>#</xsl:text>
   726           <xsl:value-of select="@id"/>
   727         </xsl:attribute>
   728         <code><xsl:value-of select="@id"/></code>
   729       </a>
   730     </td>
   731     <td>
   732       <xsl:value-of select="@label"/>
   733     </td>
   734   </tr>
   735 </xsl:template>
   737 <xsl:template match="field" mode="body">
   738   <tr>
   739     <td>
   740       <code>
   741         <xsl:attribute name="id">
   742           <xsl:value-of select="../@id"/>.<xsl:value-of select="@id"/>
   743         </xsl:attribute>
   744         <xsl:value-of select="@id"/>
   745       </code>
   746     </td>
   747     <td>
   748       <code>
   749         <xsl:apply-templates select="child::*[position()=1]" mode="link"/>
   750       </code>
   751     </td>
   752     <td>
   753       <xsl:apply-templates select="description" mode="brief"/>
   754     </td>
   755   </tr>
   756 </xsl:template>
   758 <xsl:template match="capabilityfield" mode="body">
   759   <tr>
   760     <td>
   761       <code>
   762         <xsl:choose>
   763           <xsl:when test="@disp1!=''">
   764             <xsl:value-of select="@disp1"/>
   765             <br></br>
   766             <xsl:value-of select="@disp2"/>
   767           </xsl:when>
   768           <xsl:otherwise>
   769             <xsl:value-of select="@id"/>
   770           </xsl:otherwise>
   771         </xsl:choose>
   772       </code>
   773     </td>
   774     <td>
   775       <a>
   776         <xsl:attribute name="name">
   777           <xsl:value-of select="../@id"/>.<xsl:value-of select="@id"/>
   778         </xsl:attribute>
   779       </a>
   780       <xsl:apply-templates select="description" mode="brief"/>
   781     </td>
   782     <td>
   783       <xsl:value-of select="@since"/>
   784     </td>
   785   </tr>
   786 </xsl:template>
   788 <xsl:template match="callback" mode="tableentry">
   789   <tr>
   790     <td>
   791       <a>
   792         <xsl:attribute name="href">
   793           <xsl:text>#</xsl:text>
   794           <xsl:value-of select="@id"/>
   795         </xsl:attribute>
   796         <code>
   797           <xsl:value-of select="@id"/>
   798         </code>
   799       </a>
   800     </td>
   801     <td>
   802       <xsl:apply-templates select="synopsis" mode="index"/>
   803     </td>
   804   </tr>
   805 </xsl:template>
   807 <xsl:template match="constants">
   808   <blockquote>
   809   <a>
   810     <xsl:attribute name="name">
   811       <xsl:value-of select="@id"/>
   812     </xsl:attribute>
   813   </a>
   814     <table border="1" cellpadding="3" cellspacing="0">
   815       <tr bgcolor="#CCCCFF">
   816         <td colspan="3" align="center" class="tableHeader">
   817             <xsl:value-of select="@label"/>
   818             <xsl:if test="@kind='enum'">
   819               <xsl:text> (</xsl:text>
   820               <code>
   821                 <xsl:value-of select="@id"/>
   822               </code>
   823               <xsl:text>)</xsl:text>
   824             </xsl:if>
   825         </td>
   826       </tr>
   827       <tr bgcolor="#EEEEFF">
   828         <td>
   829           Constant
   830         </td>
   831         <td>
   832           Value
   833         </td>
   834         <td>
   835           Description
   836         </td>
   837       </tr>
   838       <xsl:apply-templates select="constant" mode="body"/>
   839     </table>
   840   </blockquote>
   841 </xsl:template>
   843 <xsl:template match="constant" mode="index">
   844   <a>
   845     <xsl:attribute name="href">#<xsl:value-of select="@id"/>
   846     </xsl:attribute>
   847     <code>
   848       <xsl:value-of select="@id"/>
   849     </code>
   850   </a>
   851   <br/>
   852 </xsl:template>
   854 <xsl:template match="constant" mode="body">
   855   <tr>
   856     <td>
   857       <code>
   858         <xsl:attribute name="id">
   859           <xsl:value-of select="@id"/>
   860         </xsl:attribute>
   861         <xsl:value-of select="@id"/>
   862       </code>
   863     </td>
   864     <td align="right">
   865       <xsl:value-of select="@num"/>
   866     </td>
   867     <td>
   868       <xsl:apply-templates/>
   869     </td>
   870   </tr>
   871 </xsl:template>
   873 <xsl:template match="basetypes">
   874   <p>
   875     <xsl:attribute name="id">
   876       <xsl:value-of select="@id"/>
   877     </xsl:attribute>
   878   </p>
   879     <table border="1" cellpadding="3" cellspacing="0" width="100%">
   880       <tr bgcolor="#CCCCFF">
   881         <td colspan="2" align="center" class="tableHeader">
   882           <xsl:value-of select="@label"/>
   883         </td>
   884       </tr>
   885       <tr bgcolor="#EEEEFF">
   886         <td>
   887           Type
   888         </td>
   889         <td>
   890           Description
   891         </td>
   892       </tr>
   893       <xsl:apply-templates select="basetype" mode="body"/>
   894     </table>
   895 </xsl:template>
   897 <xsl:template match="basetype" mode="body">
   898   <xsl:choose>
   899     <xsl:when test="count(definition)=0">
   900       <tr>
   901         <td>
   902           <code>
   903             <xsl:value-of select="@id"/>
   904           </code>
   905         </td>
   906         <td>
   907           <a>
   908             <xsl:attribute name="name">
   909               <xsl:value-of select="@id"/>
   910             </xsl:attribute>
   911           </a>
   912           <xsl:apply-templates select="description" mode="brief"/>
   913         </td>
   914       </tr>      
   915     </xsl:when>
   916     <xsl:otherwise>
   917       <tr>
   918         <td rowspan="2">
   919           <code>
   920             <xsl:value-of select="@id"/>
   921           </code>
   922         </td>
   923         <td>
   924           <a>
   925             <xsl:attribute name="name">
   926               <xsl:value-of select="@id"/>
   927             </xsl:attribute>
   928           </a>
   929           <xsl:apply-templates select="description" mode="brief"/>
   930         </td>
   931       </tr>      
   932       <tr>
   933         <td>
   934           <pre>
   935             <xsl:apply-templates select="definition"/>
   936           </pre>          
   937         </td>
   938       </tr>
   939     </xsl:otherwise>
   940   </xsl:choose>
   941 </xsl:template>
   943 <xsl:template match="description">
   944   <xsl:apply-templates/>
   945   <p/>
   946 </xsl:template>
   948 <xsl:template match="description" mode="brief">
   949   <xsl:apply-templates/>
   950 </xsl:template>
   952 <xsl:template match="fieldlink">
   953   <a>
   954     <xsl:attribute name="href">#<xsl:value-of select="@struct"/>.<xsl:value-of select="@id"/></xsl:attribute>
   955     <xsl:choose>
   956       <xsl:when test=".=''">
   957         <code>
   958           <xsl:value-of select="@id"/>
   959         </code>        
   960       </xsl:when>
   961       <xsl:otherwise>
   962         <xsl:apply-templates/>
   963       </xsl:otherwise>
   964     </xsl:choose>
   965   </a>
   966 </xsl:template>
   968 <xsl:template match="paramlink">
   969   <a>
   970     <xsl:attribute name="href">#<xsl:value-of select="ancestor::function/@id|ancestor::event/@id"/>.<xsl:value-of select="@id"/>
   971     </xsl:attribute>
   972     <xsl:choose>
   973       <xsl:when test=".=''">
   974         <code>
   975           <xsl:value-of select="@id"/>
   976         </code>        
   977       </xsl:when>
   978       <xsl:otherwise>
   979         <xsl:apply-templates/>
   980       </xsl:otherwise>
   981     </xsl:choose>
   982   </a>
   983 </xsl:template>
   985 <xsl:template match="eventlink|errorlink|typelink|datalink|functionlink">
   986   <a>
   987     <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
   988     <xsl:choose>
   989       <xsl:when test=".=''">
   990         <code>
   991           <xsl:value-of select="@id"/>
   992         </code>        
   993       </xsl:when>
   994       <xsl:otherwise>
   995         <xsl:apply-templates/>
   996       </xsl:otherwise>
   997     </xsl:choose>
   998   </a>
   999 </xsl:template>
  1001 <xsl:template match="functionphaselist">
  1002   <xsl:variable name="phase" select="@phase"/>
  1003   <ul>
  1004     <xsl:for-each select="/specification/functionsection/category/function[@phase=$phase and count(@hide)=0]">   
  1005       <li>
  1006         <a>
  1007           <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
  1008           <b>
  1009             <xsl:value-of select="@id"/>
  1010           </b>
  1011         </a>
  1012       </li>
  1013     </xsl:for-each>
  1014   </ul>
  1015 </xsl:template>
  1017 <xsl:template match="eventphaselist">
  1018   <xsl:variable name="phase" select="@phase"/>
  1019   <ul>
  1020     <xsl:for-each select="//eventsection/event[@phase=$phase]">   
  1021       <li>
  1022         <a>
  1023           <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
  1024           <b>
  1025             <xsl:value-of select="@id"/>
  1026           </b>
  1027         </a>
  1028       </li>
  1029     </xsl:for-each>
  1030   </ul>
  1031 </xsl:template>
  1033 <xsl:template match="externallink">
  1034   <a>
  1035     <xsl:attribute name="href">
  1036       <xsl:value-of select="@id"/>
  1037     </xsl:attribute>
  1038     <xsl:value-of select="."/>
  1039   </a>
  1040 </xsl:template>
  1042 <xsl:template match="vmspeclink">
  1043   <xsl:if test="count(@id)=1">
  1044     <a>
  1045       <xsl:attribute name="href">
  1046         <xsl:text>http://java.sun.com/docs/books/vmspec/2nd-edition/html/</xsl:text>
  1047         <xsl:value-of select="@id"/>
  1048       </xsl:attribute>
  1049       <xsl:value-of select="@name"/>
  1050     </a>
  1051     <xsl:text> </xsl:text>
  1052     <xsl:choose>
  1053       <xsl:when test="count(@preposition)=1">
  1054         <xsl:value-of select="@preposition"/>
  1055       </xsl:when>
  1056       <xsl:otherwise>
  1057         <xsl:text>of</xsl:text>
  1058       </xsl:otherwise>
  1059     </xsl:choose>
  1060     <xsl:text> the </xsl:text>
  1061   </xsl:if>
  1062   <a>
  1063     <xsl:attribute name="href">
  1064       <xsl:text>http://java.sun.com/docs/books/vmspec/</xsl:text>
  1065     </xsl:attribute>
  1066     <i>
  1067       <xsl:text>Java Virtual Machine Specification</xsl:text>
  1068     </i>
  1069   </a>
  1070 </xsl:template>
  1072 <xsl:template match="internallink">
  1073   <a>
  1074     <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
  1075     <xsl:apply-templates/>
  1076   </a>
  1077 </xsl:template>
  1079 <xsl:template match="parameters" mode="body">
  1080   <p/>
  1081   <table border="1" cellpadding="3" cellspacing="0" width="100%">
  1082     <tr bgcolor="#CCCCFF">
  1083       <td colspan="3" align="center" class="tableHeader">
  1084         Parameters
  1085       </td>
  1086     </tr>
  1087     <tr bgcolor="#EEEEFF">
  1088       <td>
  1089         Name
  1090       </td>
  1091       <td>
  1092         Type
  1093       </td>
  1094       <td>
  1095         Description
  1096       </td>
  1097     </tr>
  1098     <xsl:apply-templates select="param[count(jclass/@method)=0]" mode="body"/>
  1099   </table>
  1100 </xsl:template>
  1102 <xsl:template match="param" mode="body">
  1103   <tr>
  1104     <td>
  1105       <code>
  1106         <xsl:attribute name="id">
  1107           <xsl:value-of select="../../@id"/>.<xsl:value-of select="@id"/>
  1108         </xsl:attribute>
  1109         <xsl:value-of select="@id"/>
  1110       </code>
  1111     </td>
  1112     <td>
  1113       <code>
  1114         <xsl:apply-templates select="child::*[position()=1]" mode="link"/>
  1115       </code>
  1116     </td>
  1117     <td>
  1118       <xsl:apply-templates select="description" mode="brief"/>
  1119       <xsl:if test="count(ancestor::function)=1">
  1120         <xsl:apply-templates select="child::*[position()=1]" mode="funcdescription"/>
  1121       </xsl:if>
  1122     </td>
  1123   </tr>
  1124 </xsl:template>
  1126 <xsl:template match="capabilities">
  1127   <p/>
  1128   <table border="1" cellpadding="3" cellspacing="0" width="100%">
  1129     <tr bgcolor="#CCCCFF">
  1130       <td colspan="2" align="center" class="tableHeader">
  1131         Capabilities
  1132       </td>
  1133     </tr>
  1134     <xsl:choose>
  1135       <xsl:when test="count(required)=0">
  1136         <tr>
  1137           <td colspan="2">
  1138             <b>Required Functionality</b>
  1139           </td>
  1140         </tr>
  1141       </xsl:when>
  1142       <xsl:otherwise>
  1143         <tr>
  1144           <td colspan="2">
  1145             <b>Optional Functionality:</b> might not be implemented for all
  1146             virtual machines. 
  1147             <xsl:choose>
  1148               <xsl:when test="count(required)=1">
  1149                 The following capability 
  1150               </xsl:when>
  1151               <xsl:otherwise>
  1152                 One of the following capabilities
  1153               </xsl:otherwise>
  1154             </xsl:choose>
  1155             (as returned by 
  1156             <a href="#GetCapabilities"><code>GetCapabilities</code></a>)
  1157             must be true to use this      
  1158             <xsl:choose>
  1159               <xsl:when test="ancestor::function">
  1160                 function.
  1161               </xsl:when>
  1162               <xsl:otherwise>
  1163                 event.
  1164               </xsl:otherwise>
  1165             </xsl:choose>
  1166           </td>
  1167         </tr>
  1168         <tr bgcolor="#EEEEFF">
  1169           <td >
  1170             Capability
  1171           </td>
  1172           <td>
  1173             Effect
  1174           </td>
  1175         </tr>
  1176         <xsl:apply-templates select="required"/>
  1177       </xsl:otherwise>
  1178     </xsl:choose>
  1179     <xsl:if test="count(capability)!=0">
  1180       <tr bgcolor="#CCCCFF">
  1181         <td colspan="2" align="center">
  1182           Optional Features
  1183         </td>
  1184       </tr>
  1185       <xsl:if test="count(required)=0">
  1186         <tr bgcolor="#EEEEFF">
  1187           <td >
  1188             Capability
  1189           </td>
  1190           <td>
  1191             Effect
  1192           </td>
  1193         </tr>
  1194       </xsl:if>
  1195       <xsl:apply-templates select="capability"/>
  1196     </xsl:if>
  1197   </table>
  1198 </xsl:template>
  1200 <xsl:template match="eventcapabilities">
  1201   <p/>
  1202   <table border="1" cellpadding="3" cellspacing="0" width="100%">
  1203     <tr bgcolor="#CCCCFF">
  1204       <td colspan="2" align="center" class="tableHeader">
  1205         Capabilities
  1206       </td>
  1207     </tr>
  1208     <tr>
  1209       <td colspan="2">
  1210         <b>Required Functionality</b>
  1211       </td>
  1212     </tr>
  1213     <tr bgcolor="#CCCCFF">
  1214       <td colspan="2" align="center">
  1215         Event Enabling Capabilities
  1216       </td>
  1217     </tr>
  1218     <tr bgcolor="#EEEEFF">
  1219       <td >
  1220         Capability
  1221       </td>
  1222       <td>
  1223         Events
  1224       </td>
  1225     </tr>
  1226     <xsl:for-each select="//capabilityfield">
  1227       <xsl:variable name="capa" select="@id"/>
  1228       <xsl:variable name="events" select="//event[capabilities/required/@id=$capa]"/>
  1229       <xsl:if test="count($events)">
  1230         <tr>
  1231           <td>
  1232             <a>
  1233               <xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/>
  1234               </xsl:attribute>
  1235               <code>
  1236                 <xsl:value-of select="@id"/>
  1237               </code>
  1238             </a>
  1239           </td>
  1240           <td>
  1241             <xsl:for-each select="$events">
  1242               <a>
  1243                 <xsl:attribute name="href">#<xsl:value-of select="@id"/>
  1244                 </xsl:attribute>
  1245                 <code>
  1246                   <xsl:value-of select="@id"/>
  1247                 </code>
  1248               </a>
  1249               <br/>
  1250             </xsl:for-each>
  1251           </td>
  1252         </tr>
  1253       </xsl:if>
  1254     </xsl:for-each>
  1255   </table>
  1256 </xsl:template>
  1258 <xsl:template match="capability|required">
  1259   <tr>
  1260     <td>
  1261       <a>
  1262         <xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/>
  1263         </xsl:attribute>
  1264         <code>
  1265           <xsl:value-of select="@id"/>
  1266         </code>
  1267       </a>
  1268     </td>
  1269     <td>
  1270       <xsl:choose>
  1271         <xsl:when test=".=''">
  1272           <xsl:variable name="desiredID" select="@id"/>
  1273           <xsl:for-each select="//capabilityfield[@id=$desiredID]">
  1274             <xsl:apply-templates select="description" mode="brief"/>
  1275           </xsl:for-each>
  1276         </xsl:when>
  1277         <xsl:otherwise>
  1278           <xsl:apply-templates/>
  1279         </xsl:otherwise>
  1280       </xsl:choose>
  1281     </td>
  1282   </tr>
  1283 </xsl:template>
  1285 <xsl:template match="function" mode="errors">
  1286   <xsl:variable name="haserrors">
  1287     <xsl:apply-templates select="capabilities/required" mode="haserrors"/>
  1288     <xsl:apply-templates select="errors/error" mode="haserrors"/>
  1289     <xsl:apply-templates select="parameters/param" mode="haserrors"/>
  1290   </xsl:variable>
  1291   <p/>
  1292   <table border="1" cellpadding="3" cellspacing="0" width="100%">
  1293     <tr bgcolor="#CCCCFF">
  1294       <td colspan="2" align="center" class="tableHeader">
  1295         Errors
  1296       </td>
  1297     </tr>
  1298     <xsl:choose>
  1299       <xsl:when test="contains($haserrors,'yes')">
  1300         <tr>
  1301           <td colspan="2">
  1302             This function returns either a 
  1303             <a href="#universal-error">universal error</a> 
  1304             or one of the following errors
  1305           </td>
  1306         </tr>
  1307         <tr bgcolor="#EEEEFF">
  1308           <td>
  1309             Error
  1310           </td>
  1311           <td>
  1312             Description
  1313           </td>
  1314         </tr>
  1315         <xsl:apply-templates select="capabilities/required" mode="errors"/>
  1316         <xsl:apply-templates select="errors/error"/>
  1317         <xsl:apply-templates select="parameters/param" mode="errors"/>
  1318       </xsl:when>
  1319       <xsl:otherwise>
  1320         <tr>
  1321           <td colspan="2">
  1322             This function returns a 
  1323             <a href="#universal-error">universal error</a>
  1324           </td>
  1325         </tr>
  1326       </xsl:otherwise>
  1327     </xsl:choose>
  1328   </table>
  1329 </xsl:template>
  1331 <xsl:template match="required" mode="haserrors">
  1332   yes
  1333 </xsl:template>
  1335 <xsl:template match="required" mode="errors">
  1336   <tr>
  1337     <td>
  1338       <a href="#JVMTI_ERROR_MUST_POSSESS_CAPABILITY">
  1339         <code>
  1340           JVMTI_ERROR_MUST_POSSESS_CAPABILITY
  1341         </code>
  1342       </a>
  1343     </td>
  1344     <td>
  1345       The environment does not possess the capability
  1346       <a>
  1347         <xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/></xsl:attribute>
  1348         <code>
  1349           <xsl:value-of select="@id"/>
  1350         </code>        
  1351       </a>.
  1352       Use <a href="#AddCapabilities"><code>AddCapabilities</code></a>.
  1353     </td>
  1354   </tr>
  1355 </xsl:template>
  1357 <xsl:template match="param" mode="haserrors">
  1358   <xsl:apply-templates mode="haserrors"/>
  1359 </xsl:template>
  1361 <xsl:template match="param" mode="errors">
  1362   <xsl:apply-templates select="." mode="errors1"/>
  1363   <xsl:apply-templates select="." mode="errors2"/>
  1364 </xsl:template>
  1366 <xsl:template match="param" mode="errors1">
  1367   <xsl:variable name="haserrors">
  1368     <xsl:apply-templates mode="haserrors"/>
  1369   </xsl:variable>
  1370   <xsl:if test="contains($haserrors,'yes')!=0">
  1371     <xsl:variable name="erroridraw">
  1372       <xsl:apply-templates mode="errorid"/>
  1373     </xsl:variable>
  1374     <xsl:variable name="errorid" select="normalize-space($erroridraw)"/>
  1375     <tr>
  1376       <td>
  1377         <a>
  1378           <xsl:attribute name="href">#<xsl:value-of select="$errorid"/></xsl:attribute>
  1379           <code>
  1380             <xsl:value-of select="$errorid"/>
  1381           </code>
  1382         </a>
  1383       </td>
  1384       <td>
  1385         <xsl:apply-templates mode="errordesc">
  1386           <xsl:with-param name="id" select="@id"/>
  1387         </xsl:apply-templates>
  1388       </td>
  1389     </tr>
  1390   </xsl:if>
  1391 </xsl:template>
  1393 <xsl:template match="param" mode="errors2">
  1394   <xsl:variable name="haserrors2">
  1395     <xsl:apply-templates mode="haserrors2"/>
  1396   </xsl:variable>
  1397   <xsl:if test="contains($haserrors2,'yes')!=0">
  1398     <xsl:variable name="erroridraw2">
  1399       <xsl:apply-templates mode="errorid2"/>
  1400     </xsl:variable>
  1401     <xsl:variable name="errorid2" select="normalize-space($erroridraw2)"/>
  1402     <tr>
  1403       <td>
  1404         <a>
  1405           <xsl:attribute name="href">#<xsl:value-of select="$errorid2"/></xsl:attribute>
  1406           <code>
  1407             <xsl:value-of select="$errorid2"/>
  1408           </code>
  1409         </a>
  1410       </td>
  1411       <td>
  1412         <xsl:apply-templates mode="errordesc2">
  1413           <xsl:with-param name="id" select="@id"/>
  1414         </xsl:apply-templates>
  1415       </td>
  1416     </tr>
  1417   </xsl:if>
  1418 </xsl:template>
  1420 <xsl:template match="description" mode="haserrors">
  1421 </xsl:template>
  1423 <xsl:template match="description" mode="errorid">
  1424 </xsl:template>
  1426 <xsl:template match="description" mode="errordesc">
  1427 </xsl:template>
  1429 <xsl:template match="jmethodID|jfieldID|jframeID|jrawMonitorID|jthread|jthreadGroup|jobject|enum|jlocation" mode="haserrors">
  1430   yes
  1431 </xsl:template>
  1433 <xsl:template match="jclass" mode="haserrors">
  1434   <xsl:if test="count(@method)=0">
  1435     yes
  1436   </xsl:if>
  1437 </xsl:template>
  1439 <xsl:template match="description|jclass|jfieldID|jrawMonitorID|
  1440                     jthreadGroup|jobject|enum|jlocation|jvalue|jchar|jint|jlong|jfloat|jdouble|jboolean|
  1441                     char|uchar|size_t|void|varargs|struct|
  1442                     ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="haserrors2">
  1443 </xsl:template>
  1445 <xsl:template match="jmethodID" mode="haserrors2">
  1446   <xsl:if test="count(@native)=1 and contains(@native,'error')">
  1447     yes
  1448   </xsl:if>
  1449 </xsl:template>
  1451 <xsl:template match="jthread" mode="haserrors2">
  1452   <xsl:if test="count(@started)=0 or contains(@started,'yes') or @started=''">
  1453     yes
  1454   </xsl:if>
  1455 </xsl:template>
  1457 <xsl:template match="jframeID" mode="haserrors2">
  1458     yes
  1459 </xsl:template>
  1461 <xsl:template match="description" mode="errorid2">
  1462 </xsl:template>
  1464 <xsl:template match="description" mode="errordesc2">
  1465 </xsl:template>
  1467 <xsl:template match="jmethodID" mode="errorid">
  1468   <xsl:text>JVMTI_ERROR_INVALID_METHODID</xsl:text>
  1469 </xsl:template>
  1471 <xsl:template match="jmethodID" mode="errorid2">
  1472     <xsl:text>JVMTI_ERROR_NATIVE_METHOD</xsl:text>
  1473 </xsl:template>
  1475 <xsl:template match="jmethodID" mode="errordesc">
  1476   <xsl:param name="id"/>
  1477   <xsl:apply-templates select="." mode="paramlink"/>
  1478   <xsl:text> is not a jmethodID.</xsl:text>
  1479 </xsl:template>
  1481 <xsl:template match="jmethodID" mode="errordesc2">
  1482   <xsl:param name="id"/>
  1483   <xsl:apply-templates select="." mode="paramlink"/>
  1484   <xsl:text> is a native method.</xsl:text>
  1485 </xsl:template>
  1487 <xsl:template match="jfieldID" mode="errorid">
  1488   <xsl:text>JVMTI_ERROR_INVALID_FIELDID</xsl:text>
  1489 </xsl:template>
  1491 <xsl:template match="jfieldID" mode="errordesc">
  1492   <xsl:param name="id"/>
  1493   <xsl:apply-templates select="." mode="paramlink"/>
  1494   <xsl:text> is not a jfieldID.</xsl:text>
  1495 </xsl:template>
  1497 <xsl:template match="jframeID" mode="errorid">
  1498   <xsl:text>JVMTI_ERROR_ILLEGAL_ARGUMENT</xsl:text>
  1499 </xsl:template>
  1501 <xsl:template match="jframeID" mode="errorid2">
  1502   <xsl:text>JVMTI_ERROR_NO_MORE_FRAMES</xsl:text>
  1503 </xsl:template>
  1505 <xsl:template match="jframeID" mode="errordesc">
  1506   <xsl:param name="id"/>
  1507   <xsl:apply-templates select="." mode="paramlink"/>
  1508   <xsl:text> is less than zero.</xsl:text>
  1509 </xsl:template>
  1511 <xsl:template match="jframeID" mode="errordesc2">
  1512   <xsl:param name="id"/>
  1513   <xsl:text>There are no stack frames at the specified </xsl:text>
  1514   <xsl:apply-templates select="." mode="paramlink"/>
  1515   <xsl:text>.</xsl:text>
  1516 </xsl:template>
  1518 <xsl:template match="jrawMonitorID" mode="errorid">
  1519   <xsl:text>JVMTI_ERROR_INVALID_MONITOR</xsl:text>
  1520 </xsl:template>
  1522 <xsl:template match="jrawMonitorID" mode="errordesc">
  1523   <xsl:param name="id"/>
  1524   <xsl:apply-templates select="." mode="paramlink"/>
  1525   <xsl:text> is not a jrawMonitorID.</xsl:text>
  1526 </xsl:template>
  1528 <xsl:template match="jclass" mode="errorid">
  1529   <xsl:text>JVMTI_ERROR_INVALID_CLASS</xsl:text>
  1530 </xsl:template>
  1532 <xsl:template match="jclass" mode="errordesc">
  1533   <xsl:param name="id"/>
  1534   <xsl:apply-templates select="." mode="paramlink"/>
  1535   <xsl:text> is not a class object or the class has been unloaded.</xsl:text>
  1536 </xsl:template>
  1538 <xsl:template match="jthread" mode="errorid">
  1539   <xsl:text>JVMTI_ERROR_INVALID_THREAD</xsl:text>
  1540 </xsl:template>
  1542 <xsl:template match="jthread" mode="errorid2">
  1543   <xsl:text>JVMTI_ERROR_THREAD_NOT_ALIVE</xsl:text>
  1544 </xsl:template>
  1546 <xsl:template match="jthread" mode="errordesc">
  1547   <xsl:param name="id"/>
  1548   <xsl:apply-templates select="." mode="paramlink"/>
  1549   <xsl:text> is not a thread object.</xsl:text>
  1550 </xsl:template>
  1552 <xsl:template match="jthread" mode="errordesc2">
  1553   <xsl:param name="id"/>
  1554   <xsl:apply-templates select="." mode="paramlink"/>
  1555   <xsl:text> is not live (has not been started or is now dead).</xsl:text>
  1556 </xsl:template>
  1558 <xsl:template match="jthreadGroup" mode="errorid">
  1559   <xsl:text>JVMTI_ERROR_INVALID_THREAD_GROUP</xsl:text>
  1560 </xsl:template>
  1562 <xsl:template match="jthreadGroup" mode="errordesc">
  1563   <xsl:param name="id"/>
  1564   <xsl:apply-templates select="." mode="paramlink"/>
  1565   <xsl:text> is not a thread group object.</xsl:text>
  1566 </xsl:template>
  1568 <xsl:template match="jobject" mode="errorid">
  1569   <xsl:text>JVMTI_ERROR_INVALID_OBJECT</xsl:text>
  1570 </xsl:template>
  1572 <xsl:template match="jobject" mode="errordesc">
  1573   <xsl:param name="id"/>
  1574   <xsl:apply-templates select="." mode="paramlink"/>
  1575   <xsl:text> is not an object.</xsl:text>
  1576 </xsl:template>
  1578 <xsl:template match="enum" mode="errorid">
  1579   <xsl:choose>
  1580     <xsl:when test=".='jvmtiEvent'">
  1581       <xsl:text>JVMTI_ERROR_INVALID_EVENT_TYPE</xsl:text>
  1582     </xsl:when>
  1583     <xsl:otherwise>
  1584       <xsl:text>JVMTI_ERROR_ILLEGAL_ARGUMENT</xsl:text>
  1585     </xsl:otherwise>
  1586   </xsl:choose>
  1587 </xsl:template>
  1589 <xsl:template match="enum" mode="errordesc">
  1590   <xsl:param name="id"/>
  1591   <xsl:apply-templates select="." mode="paramlink"/>
  1592   <xsl:text> is not a </xsl:text>
  1593   <xsl:value-of select="."/>
  1594   <xsl:text>.</xsl:text>
  1595 </xsl:template>
  1597 <xsl:template match="jlocation" mode="errorid">
  1598   <xsl:text>JVMTI_ERROR_INVALID_LOCATION</xsl:text>
  1599 </xsl:template>
  1601 <xsl:template match="jlocation" mode="errordesc">
  1602   <xsl:param name="id"/>
  1603   <xsl:apply-templates select="." mode="paramlink"/>
  1604   <xsl:text> is not a valid location.</xsl:text>
  1605 </xsl:template>
  1607 <xsl:template match="jint" mode="haserrors">
  1608   <xsl:if test="count(@min)=1">
  1609     yes
  1610   </xsl:if>
  1611 </xsl:template>
  1613 <xsl:template match="jint" mode="errorid">
  1614   <xsl:text>JVMTI_ERROR_ILLEGAL_ARGUMENT</xsl:text>
  1615 </xsl:template>
  1617 <xsl:template match="jint" mode="errordesc">
  1618   <xsl:param name="id"/>
  1619   <xsl:apply-templates select="." mode="paramlink"/>
  1620   <xsl:text> is less than </xsl:text>
  1621   <code><xsl:value-of select="@min"/></code>
  1622   <xsl:text>.</xsl:text>
  1623 </xsl:template>
  1625 <xsl:template match="jvalue|jchar|jlong|jfloat|jdouble|jboolean|char|uchar|size_t|void|varargs|struct" mode="haserrors">
  1626 </xsl:template>
  1628 <xsl:template match="jvalue|jchar|jlong|jfloat|jdouble|jboolean|char|uchar|size_t|void|varargs|struct" mode="errordesc">
  1629   <xsl:param name="id"/>
  1630   <xsl:message terminate="yes">
  1631     attempt to get error description for <xsl:apply-templates select="." mode="paramlink"/>
  1632   </xsl:message>
  1633 </xsl:template>
  1635 <xsl:template match="ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="haserrors">
  1636   <xsl:if test="count(nullok)=0">
  1637     yes
  1638   </xsl:if>
  1639 </xsl:template>
  1641 <xsl:template match="ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="errorid">
  1642   <xsl:text>JVMTI_ERROR_NULL_POINTER</xsl:text>
  1643 </xsl:template>
  1645 <xsl:template match="ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="errordesc">
  1646   <xsl:param name="id"/>
  1647   <xsl:if test="count(nullok)=1">
  1648     <xsl:message terminate="yes">
  1649       attempt to get error description in null ok case for <xsl:apply-templates select="." mode="paramlink"/>
  1650     </xsl:message>
  1651   </xsl:if>
  1652   <xsl:apply-templates select="." mode="paramlink"/>
  1653   <xsl:text> is </xsl:text>
  1654   <code>NULL</code>
  1655   <xsl:text>.</xsl:text>
  1656 </xsl:template>
  1658 <xsl:template match="jmethodID|jfieldID|jframeID|jrawMonitorID|jint|jclass|jthread|jthreadGroup|jobject|enum|jlocation|ptrtype|outptr|allocbuf|allocallocbuf|inptr|inbuf|outbuf|vmbuf|agentbuf" mode="paramlink">
  1659   <a>
  1660     <xsl:attribute name="href">#<xsl:value-of select="ancestor::function/@id|ancestor::event/@id"/>.<xsl:value-of select="ancestor::param/@id"/>
  1661     </xsl:attribute>
  1662     <code>
  1663       <xsl:value-of select="ancestor::param/@id"/>
  1664     </code>        
  1665   </a>
  1666 </xsl:template>
  1668 <xsl:template match="error" mode="haserrors">
  1669   yes
  1670 </xsl:template>
  1672 <xsl:template match="error">
  1673   <tr>
  1674     <td>
  1675       <a>
  1676         <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
  1677         <code>
  1678           <xsl:value-of select="@id"/>
  1679         </code>
  1680       </a>
  1681     </td>
  1682     <td>
  1683       <xsl:apply-templates/>
  1684     </td>
  1685   </tr>
  1686 </xsl:template>
  1688 <xsl:template match="errorsection">
  1689   <p/>
  1690   <hr noshade="noshade" size="3"/>
  1691   <h2>
  1692     Errors
  1693   </h2>
  1694   <p/>
  1695   <xsl:apply-templates select="intro"/>
  1696   <p/>
  1697   <xsl:apply-templates select="errorcategory"/>
  1698   <p/>
  1699 </xsl:template>
  1701 <xsl:template match="datasection">
  1702   <p/>
  1703   <hr noshade="noshade" size="3"/>
  1704   <h2>
  1705     Data Types
  1706   </h2>
  1707   <p/>
  1708   <xsl:apply-templates select="intro"/>
  1709   <xsl:apply-templates select="basetypes"/>
  1710   <p/>
  1711   <a name="StructureTypeDefinitions"></a>
  1712   <table border="1" cellpadding="3" cellspacing="0" width="100%">
  1713     <tr bgcolor="#CCCCFF">
  1714       <td colspan="2" align="center" class="tableHeader">
  1715         Structure Type Definitions
  1716       </td>
  1717     </tr>
  1718     <tr bgcolor="#EEEEFF">
  1719       <td>
  1720         Type
  1721       </td>
  1722       <td>
  1723         Description
  1724       </td>
  1725     </tr>
  1726     <xsl:apply-templates select="//typedef|//uniontypedef|//capabilitiestypedef" mode="tableentry">
  1727       <xsl:sort select="@id"/>
  1728     </xsl:apply-templates>
  1729   </table>
  1730   <p/>
  1731   <a name="FunctionTypeDefinitions"></a>
  1732   <table border="1" cellpadding="3" cellspacing="0" width="100%">
  1733     <tr bgcolor="#CCCCFF">
  1734       <td colspan="2" align="center" class="tableHeader">
  1735         Function Type Definitions
  1736       </td>
  1737     </tr>
  1738     <tr bgcolor="#EEEEFF">
  1739       <td>
  1740         Type
  1741       </td>
  1742       <td>
  1743         Description
  1744       </td>
  1745     </tr>
  1746     <xsl:apply-templates select="//callback" mode="tableentry">
  1747       <xsl:sort select="@id"/>
  1748     </xsl:apply-templates>
  1749   </table>
  1750   <p/>
  1751   <a name="EnumerationDefinitions"></a>
  1752   <table border="1" cellpadding="3" cellspacing="0" width="100%">
  1753     <tr bgcolor="#CCCCFF">
  1754       <td colspan="2" align="center" class="tableHeader">
  1755         Enumeration Definitions
  1756       </td>
  1757     </tr>
  1758     <tr bgcolor="#EEEEFF">
  1759       <td>
  1760         Type
  1761       </td>
  1762       <td>
  1763         Description
  1764       </td>
  1765     </tr>
  1766     <xsl:apply-templates select="//constants[@kind='enum']" mode="tableentry">
  1767       <xsl:sort select="@id"/>
  1768     </xsl:apply-templates>
  1769   </table>
  1770   <p/>
  1771   <a name="FunctionTable"></a>
  1772   <table border="1" cellpadding="3" cellspacing="0" width="100%">
  1773     <tr bgcolor="#CCCCFF">
  1774       <td colspan="3" align="center" class="tableHeader">
  1775         Function Table Layout
  1776       </td>
  1777     </tr>
  1778     <tr bgcolor="#EEEEFF">
  1779       <td>
  1780         Position
  1781       </td>
  1782       <td>
  1783         Function
  1784       </td>
  1785       <td>
  1786         Declaration
  1787       </td>
  1788     </tr>
  1789     <xsl:call-template name="funcStruct">
  1790       <xsl:with-param name="funcs" select="//functionsection/category/function[count(@hide)=0]"/>
  1791       <xsl:with-param name="index" select="1"/>
  1792     </xsl:call-template>
  1793   </table>
  1794   <p/>
  1795 </xsl:template>
  1798 <xsl:template name="funcStruct">
  1799   <xsl:param name="funcs"/>
  1800   <xsl:param name="index"/>
  1801   <xsl:variable name="thisFunction" select="$funcs[@num=$index]"/>
  1802   <tr>
  1803     <td align="right">
  1804       <xsl:number value="$index" format="  1"/>
  1805     </td>
  1806     <xsl:choose>
  1807       <xsl:when test="count($thisFunction)=1">
  1808         <td>
  1809           <a>
  1810             <xsl:attribute name="href">
  1811               <xsl:text>#</xsl:text>
  1812               <xsl:value-of select="$thisFunction/@id"/>
  1813             </xsl:attribute>
  1814             <xsl:value-of select="$thisFunction/synopsis"/>
  1815           </a>
  1816         </td>
  1817         <td>
  1818           <pre>
  1819             <xsl:text>jvmtiError (JNICALL *</xsl:text>
  1820             <xsl:value-of select="$thisFunction/@id"/>
  1821             <xsl:text>) (jvmtiEnv* env</xsl:text>
  1822             <xsl:apply-templates select="$thisFunction/parameters" mode="signature">
  1823               <xsl:with-param name="comma">
  1824                 <xsl:text>, &#xA;                       </xsl:text>
  1825               </xsl:with-param>
  1826             </xsl:apply-templates>
  1827             <xsl:text>);</xsl:text>
  1828         </pre>
  1829       </td>
  1830     </xsl:when>
  1831     <xsl:otherwise>
  1832       <xsl:if test="count($thisFunction) != 0">
  1833         <xsl:message terminate="yes">
  1834           More than one function has index number <xsl:number value="$index" format="  1"/>.
  1835       </xsl:message>
  1836       </xsl:if>
  1837       <td>
  1838         <i>reserved</i>
  1839       </td>
  1840       <td>
  1841         <pre>
  1842           <xsl:text>void *reserved</xsl:text>        
  1843           <xsl:value-of select="$index"/>
  1844           <xsl:text>;</xsl:text>
  1845         </pre>
  1846       </td>
  1847     </xsl:otherwise>
  1848   </xsl:choose>
  1849   </tr>
  1850   <xsl:if test="count($funcs[@num &gt; $index]) &gt; 0">
  1851     <xsl:call-template name="funcStruct">
  1852       <xsl:with-param name="funcs" select="$funcs"/>
  1853       <xsl:with-param name="index" select="1+$index"/>
  1854     </xsl:call-template>
  1855   </xsl:if>
  1856 </xsl:template>
  1860 <xsl:template match="errorcategory">
  1861   <h3>
  1862     <xsl:attribute name="id">
  1863       <xsl:value-of select="@id"/>
  1864     </xsl:attribute>
  1865     <xsl:value-of select="@label"/>
  1866   </h3>
  1867   <xsl:apply-templates select="intro"/>
  1868   <p/>
  1869   <dl>
  1870     <xsl:apply-templates select="errorid"/>
  1871   </dl>
  1872   <p/>
  1873 </xsl:template>
  1875 <xsl:template match="errorid">
  1876   <dt>
  1877     <code>
  1878       <xsl:attribute name="id">
  1879         <xsl:value-of select="@id"/>
  1880       </xsl:attribute>
  1881       <xsl:value-of select="@id"/> (<xsl:value-of select="@num"/>)
  1882     </code>
  1883   </dt>
  1884   <dd>
  1885     <xsl:apply-templates/>
  1886     <p/>
  1887   </dd>
  1888 </xsl:template>
  1890 <xsl:template match="changehistory">
  1891     <p/><hr noshade="noshade" size="3"/>
  1892     <h2>Change History</h2>
  1893     Last update: <xsl:value-of select="@update"/><br/>
  1894     Version: <xsl:call-template name="showversion"/>
  1895     <p/>
  1896     <xsl:apply-templates select="intro"/>
  1897     <p/>
  1898     <table border="1" cellpadding="3" cellspacing="0" width="100%">
  1899       <tr bgcolor="#EEEEFF">
  1900         <td>
  1901           <b>Version</b><br/>
  1902           <b>Date</b>
  1903         </td>
  1904         <td>
  1905           <b>Changes</b>
  1906         </td>
  1907       </tr>
  1908       <xsl:apply-templates select="change"/>
  1909     </table>
  1910 </xsl:template>
  1912 <xsl:template match="change">
  1913   <tr>
  1914     <td>
  1915       <xsl:if test="count(@version)">
  1916         <b>
  1917           <xsl:value-of select="@version"/>
  1918         </b>
  1919         <br/>
  1920       </xsl:if>
  1921       <xsl:value-of select="@date"/>
  1922     </td>
  1923     <td>
  1924       <xsl:apply-templates/>
  1925     </td>
  1926   </tr>
  1927 </xsl:template>
  1929 <xsl:template match="intro">
  1930   <xsl:if test="@id!=''">
  1931     <xsl:choose>
  1932       <xsl:when test="@label!=''">
  1933         <h4>
  1934           <xsl:attribute name="id">
  1935             <xsl:value-of select="@id"/>
  1936           </xsl:attribute>
  1937           <xsl:value-of select="@label"/>
  1938         </h4>
  1939       </xsl:when>
  1940       <xsl:otherwise>
  1941         <a>
  1942           <xsl:attribute name="name">
  1943             <xsl:value-of select="@id"/>
  1944           </xsl:attribute>
  1945         </a>
  1946       </xsl:otherwise>
  1947     </xsl:choose>
  1948   </xsl:if>
  1949   <xsl:apply-templates/>
  1950 </xsl:template>
  1952 <xsl:template match="issue">
  1953   <xsl:if test="$development = 'Show'">
  1954     <p style="color: red">
  1955     To be resolved:
  1956       <xsl:apply-templates/>
  1957     </p>
  1958   </xsl:if>
  1959 </xsl:template>
  1961 <xsl:template match="rationale">
  1962   <p style="color: purple">
  1963   Rationale:
  1964       <xsl:apply-templates/>
  1965   </p>
  1966 </xsl:template>
  1968 <xsl:template match="todo">
  1969   <xsl:if test="$development = 'Show'">
  1970     <p style="color: green">
  1971     To do:
  1972       <xsl:apply-templates/>
  1973     </p>
  1974   </xsl:if>
  1975 </xsl:template>
  1977 <xsl:template match="elide">
  1978 </xsl:template>
  1980 <xsl:template match="b">
  1981   <b>
  1982   <xsl:apply-templates/>
  1983   </b>
  1984 </xsl:template>
  1986 <xsl:template match="example">
  1987   <blockquote>
  1988     <pre>
  1989       <xsl:apply-templates/>
  1990     </pre>
  1991   </blockquote>
  1992 </xsl:template>
  1995 <xsl:template match="table">
  1996   <table border="1" cellpadding="3" cellspacing="0" width="100%">
  1997     <xsl:apply-templates/>
  1998   </table>
  1999 </xsl:template>
  2001 <xsl:template match="tr">
  2002   <tr>
  2003     <xsl:apply-templates/>
  2004   </tr>
  2005 </xsl:template>
  2007 <xsl:template match="td">
  2008   <td>
  2009     <xsl:attribute name="align">
  2010       <xsl:value-of select="@align"/>
  2011     </xsl:attribute>
  2012     <xsl:apply-templates/>
  2013   </td>
  2014 </xsl:template>
  2016 <xsl:template match="th">
  2017   <th bgcolor="#EEEEFF">
  2018     <xsl:attribute name="align">
  2019       <xsl:value-of select="@align"/>
  2020     </xsl:attribute>
  2021     <xsl:apply-templates/>
  2022   </th>
  2023 </xsl:template>
  2025 <xsl:template match="dl">
  2026   <dl>
  2027     <xsl:apply-templates/>
  2028   </dl>
  2029 </xsl:template>
  2031 <xsl:template match="dt">
  2032   <dt>
  2033     <xsl:apply-templates/>
  2034   </dt>
  2035 </xsl:template>
  2037 <xsl:template match="dd">
  2038   <dd>
  2039     <xsl:apply-templates/>
  2040   </dd>
  2041 </xsl:template>
  2043 <xsl:template match="p">
  2044   <p>
  2045     <xsl:apply-templates/>
  2046   </p>
  2047 </xsl:template>
  2049 <xsl:template match="br">
  2050   <br>
  2051     <xsl:apply-templates/>
  2052   </br>
  2053 </xsl:template>
  2055 <xsl:template match="ul">
  2056   <ul>
  2057     <xsl:attribute name="type"><xsl:value-of select="@type"/></xsl:attribute>
  2058     <xsl:apply-templates/>
  2059   </ul>
  2060 </xsl:template>
  2062 <xsl:template match="li">
  2063   <li>
  2064     <xsl:apply-templates/>
  2065   </li>
  2066 </xsl:template>
  2068 <xsl:template match="code">
  2069   <code>
  2070     <xsl:apply-templates/>
  2071   </code>
  2072 </xsl:template>
  2074 <xsl:template match="tm">
  2075   <xsl:apply-templates/>
  2076   <sup style="font-size: xx-small">
  2077     <xsl:text>TM</xsl:text>
  2078   </sup>
  2079   <xsl:text>&#032;</xsl:text>
  2080 </xsl:template>
  2082 <xsl:template match="b">
  2083   <b>
  2084     <xsl:apply-templates/>
  2085   </b>
  2086 </xsl:template>
  2088 <xsl:template match="i">
  2089   <i>
  2090     <xsl:apply-templates/>
  2091   </i>
  2092 </xsl:template>
  2094 <xsl:template match="space">
  2095   <xsl:text>&#032;</xsl:text>
  2096 </xsl:template>
  2098 <xsl:template match="jvmti">
  2099   <xsl:text>JVM</xsl:text><small style="font-size: xx-small">&#160;</small><xsl:text>TI</xsl:text>
  2100 </xsl:template>
  2103 </xsl:stylesheet>

mercurial