src/hotspot/share/prims/jvmti.xsl
changeset 57825 8c73d2a46ba9
parent 55542 e1a876085988
child 58679 9c3209ff7550
equal deleted inserted replaced
57824:253c817653b6 57825:8c73d2a46ba9
    44           .centered { text-align: center; }
    44           .centered { text-align: center; }
    45           .leftAligned { text-align: left; }
    45           .leftAligned { text-align: left; }
    46           .rightAligned { text-align: right; }
    46           .rightAligned { text-align: right; }
    47           .bgLight { background-color: #EEEEFF; }
    47           .bgLight { background-color: #EEEEFF; }
    48           .bgDark { background-color: #CCCCFF}
    48           .bgDark { background-color: #CCCCFF}
    49           th { background-color: #EEEEFF; }
    49           th { font-weight: normal; text-align: left; }
    50           td.tableHeader {font-size: larger; text-align:center; }
       
    51           div.sep { height: 10px; }
    50           div.sep { height: 10px; }
    52           div.callbackCtnr { margin: 0 5%; }
    51           div.callbackCtnr { margin: 0 5%; }
    53           hr { border-width:0; color:gray; background-color:gray; }
    52           hr { border-width:0; color:gray; background-color:gray; }
    54           hr.thick { height:3px; }
    53           hr.thick { height:3px; }
    55           hr.thin { height:1px; }
    54           hr.thin { height:1px; }
    56           table.bordered { border: 1px solid gray; border-spacing: 0; border-collapse: separate; }
    55           table.bordered, div.bordered { border: 2px solid black; border-spacing: 0; border-collapse: collapse; }
    57           table.bordered td, table.bordered th { padding: 3px; border: 1px solid black; }
    56           table.bordered td, table.bordered th, div.bordered div.divTableHead, div.bordered .divTableCell {
    58           table.wide { width: 100%; }
    57             padding: 3px;
       
    58             border: 2px solid black;
       
    59           }
       
    60           .wide { width: 100%; }
       
    61           table.bordered caption, divCaption {
       
    62             border: 2px solid black;
       
    63             border-bottom-width: 0;
       
    64           }
       
    65           .captionTitle {
       
    66             background-color: #CCCCFF;
       
    67             font-size: larger;
       
    68             text-align:center;
       
    69             padding: 3px;
       
    70           }
       
    71           .captionDescr {
       
    72             border-top: 2px solid black;
       
    73             padding: 3px;
       
    74             text-align: left;
       
    75           }
       
    76           div.divTable { display: table; }
       
    77           <!-- workaround for <div> with border, display: table & width: 100% -->
       
    78           div.wideDivTableCtnr { padding-right: 2px; }
       
    79           div.divTableRow { display: table-row; }
       
    80           div.divTableHead, div.divTableCell { display: table-cell; vertical-align: middle; }
       
    81           div.divTableHead { font-weight: bold; text-align: center; }
       
    82           table.bordered td.noPadding { padding: 0; }
       
    83           div.withPadding { padding: 3px; }
       
    84           div.topBorder { border-top: 2px solid black; }
    59         </style>
    85         </style>
    60   </head>
    86   </head>
    61   <body>
    87   <body>
    62     <div class="centered" role="banner">
    88     <header class="centered">
    63       <xsl:apply-templates select="title"/>
    89       <xsl:apply-templates select="title"/>
    64     </div>
    90     </header>
    65     <nav>
    91     <nav>
    66       <ul>
    92       <ul>
    67         <li>
    93         <li>
    68           <a href="#SpecificationIntro"><b>Introduction</b></a>
    94           <a href="#SpecificationIntro"><b>Introduction</b></a>
    69           <ul>
    95           <ul>
   167           <a href="#ChangeHistory"><b>Change History</b></a>
   193           <a href="#ChangeHistory"><b>Change History</b></a>
   168         </li>
   194         </li>
   169       </ul>
   195       </ul>
   170     </nav>
   196     </nav>
   171     <!-- end table of contents, begin body -->
   197     <!-- end table of contents, begin body -->
   172     <div role="main">
   198     <main>
   173     <div class="sep"/>
   199     <div class="sep"/>
   174     <hr class="thick"/>
   200     <hr class="thick"/>
   175     <div class="sep"/>
   201     <div class="sep"/>
   176     <p id="SpecificationIntro"/>
   202     <p id="SpecificationIntro"/>
   177       <xsl:apply-templates select="intro"/>
   203       <xsl:apply-templates select="intro"/>
   203       </h2>
   229       </h2>
   204       <xsl:apply-templates select="issuessection/intro"/>
   230       <xsl:apply-templates select="issuessection/intro"/>
   205     </xsl:if>
   231     </xsl:if>
   206     <p id="ChangeHistory"/>
   232     <p id="ChangeHistory"/>
   207       <xsl:apply-templates select="changehistory"/>
   233       <xsl:apply-templates select="changehistory"/>
   208     </div>
   234     </main>
   209   </body>
   235   </body>
   210 </html>
   236 </html>
   211 </xsl:template>
   237 </xsl:template>
   212 
   238 
   213 <xsl:template match="title">
   239 <xsl:template match="title">
   347   <xsl:apply-templates select="parameters" mode="body"/>
   373   <xsl:apply-templates select="parameters" mode="body"/>
   348   <xsl:apply-templates select="." mode="errors"/>
   374   <xsl:apply-templates select="." mode="errors"/>
   349 </xsl:template>
   375 </xsl:template>
   350 
   376 
   351 <xsl:template match="function" mode="generalinfo">
   377 <xsl:template match="function" mode="generalinfo">
   352   <table class="bordered wide">
   378   <div class="wideDivTableCtnr">
   353      <tr class="bgLight">
   379   <div class="divTable bordered wide">
   354       <td >
   380     <div class="divTableRow bgLight">
   355         <a href="#jvmtiPhase">Phase</a>
   381       <div class="divTableCell"><a href="#jvmtiPhase">Phase</a></div>
   356       </td>
   382       <div class="divTableCell"><a href="#heapCallbacks">Callback Safe</a></div>
   357       <td>
   383       <div class="divTableCell"><a href="#FunctionTable">Position</a></div>
   358         <a href="#heapCallbacks">Callback Safe</a>
   384       <div class="divTableCell"><a href="#ChangeHistory">Since</a></div>
   359       </td>
   385     </div>
   360       <td>
   386     <div class="divTableRow">
   361         <a href="#FunctionTable">Position</a>
   387       <div class="divTableCell">
   362       </td>
       
   363       <td>
       
   364         <a href="#ChangeHistory">Since</a>
       
   365       </td>
       
   366     </tr>
       
   367     <tr>
       
   368       <td>
       
   369         <xsl:apply-templates select="." mode="phaseinfo"/>
   388         <xsl:apply-templates select="." mode="phaseinfo"/>
   370       </td>
   389       </div>
   371       <td>
   390       <div class="divTableCell">
   372         <xsl:apply-templates select="." mode="callbacksafeinfo"/>
   391         <xsl:apply-templates select="." mode="callbacksafeinfo"/>
   373       </td>
   392       </div>
   374       <td>
   393       <div class="divTableCell">
   375         <xsl:value-of select="@num"/>
   394         <xsl:value-of select="@num"/>
   376       </td>
   395       </div>
   377       <td>
   396       <div class="divTableCell">
   378         <xsl:value-of select="@since"/>
   397         <xsl:value-of select="@since"/>
   379       </td>
   398       </div>
   380     </tr>
   399     </div>
   381   </table>
   400   </div>
       
   401   </div>
   382 </xsl:template>
   402 </xsl:template>
   383 
   403 
   384 <xsl:template match="event" mode="generalinfo">
   404 <xsl:template match="event" mode="generalinfo">
   385   <table class="bordered wide">
   405   <div class="wideDivTableCtnr">
   386     <tr class="bgLight">
   406   <div class="divTable bordered wide">
   387       <td >
   407     <div class="divTableRow bgLight">
   388         <a href="#jvmtiPhase">Phase</a>
   408       <div class="divTableCell"><a href="#jvmtiPhase">Phase</a></div>
   389       </td>
   409       <div class="divTableCell"><a href="#heapCallbacks">Event Type</a></div>
   390       <td>
   410       <div class="divTableCell"><a href="#FunctionTable">Number</a></div>
   391         <a href="#jvmtiEvent">Event Type</a>
   411       <div class="divTableCell"><a href="#FunctionTable">Enabling</a></div>
   392       </td>
   412       <div class="divTableCell"><a href="#ChangeHistory">Since</a></div>
   393       <td>
   413     </div>
   394         <a href="#jvmtiEvent">Number</a>
   414     <div class="divTableRow">
   395       </td>
   415       <div class="divTableCell">
   396       <td>
       
   397         <a href="#enablingevents">Enabling</a>
       
   398       </td>
       
   399       <td>
       
   400         <a href="#ChangeHistory">Since</a>
       
   401       </td>
       
   402     </tr>
       
   403     <tr>
       
   404       <td >
       
   405         <xsl:apply-templates select="." mode="phaseinfo"/>
   416         <xsl:apply-templates select="." mode="phaseinfo"/>
   406       </td>
   417       </div>
   407       <td>
   418       <div class="divTableCell">
   408         <code><xsl:value-of select="@const"/></code>
   419         <code><xsl:value-of select="@const"/></code>
   409       </td>
   420       </div>
   410       <td>
   421       <div class="divTableCell">
   411         <xsl:value-of select="@num"/>
   422         <xsl:value-of select="@num"/>
   412       </td>
   423       </div>
   413       <td>
   424       <div class="divTableCell">
   414           <code><a href="#SetEventNotificationMode">SetEventNotificationMode</a>(JVMTI_ENABLE, 
   425         <code><a href="#SetEventNotificationMode">SetEventNotificationMode</a>(JVMTI_ENABLE, 
   415           <xsl:value-of select="@const"/>, NULL)</code>
   426         <xsl:value-of select="@const"/>, NULL)</code>
   416       </td>
   427       </div>
   417       <td>
   428       <div class="divTableCell">
   418         <xsl:value-of select="@since"/>
   429         <xsl:value-of select="@since"/>
   419       </td>
   430       </div>
   420     </tr>
   431     </div>
   421   </table>
   432   </div>
       
   433   </div>
   422 </xsl:template>
   434 </xsl:template>
   423 
   435 
   424 <xsl:template match="function" mode="phaseinfo">
   436 <xsl:template match="function" mode="phaseinfo">
   425   may
   437   may
   426   <xsl:choose>
   438   <xsl:choose>
   672   <xsl:apply-templates select="." mode="justbody"/>
   684   <xsl:apply-templates select="." mode="justbody"/>
   673 </xsl:template>
   685 </xsl:template>
   674 
   686 
   675 <xsl:template match="typedef|uniontypedef" mode="justbody">
   687 <xsl:template match="typedef|uniontypedef" mode="justbody">
   676     <table class="bordered wide">
   688     <table class="bordered wide">
   677       <tr class="bgDark">
   689       <caption class="captionTitle">
   678         <td colspan="3" class="tableHeader">
   690         <code><xsl:value-of select="@id"/></code> - <xsl:value-of select="@label"/>
   679           <code><xsl:value-of select="@id"/></code> - <xsl:value-of select="@label"/>
   691       </caption>
   680         </td>
       
   681       </tr>
       
   682       <tr class="bgLight">
   692       <tr class="bgLight">
   683         <td>
   693         <th scope="col">Field</th>
   684           Field
   694         <th scope="col">Type</th>
   685         </td>
   695         <th scope="col">Description</th>
   686         <td>
       
   687           Type
       
   688         </td>
       
   689         <td>
       
   690           Description
       
   691         </td>
       
   692       </tr>
   696       </tr>
   693       <xsl:apply-templates select="field" mode="body"/>
   697       <xsl:apply-templates select="field" mode="body"/>
   694     </table>
   698     </table>
   695 </xsl:template>
   699 </xsl:template>
   696 
   700 
   703   <xsl:apply-templates select="." mode="justbody"/>
   707   <xsl:apply-templates select="." mode="justbody"/>
   704 </xsl:template>
   708 </xsl:template>
   705 
   709 
   706 <xsl:template match="capabilitiestypedef" mode="justbody">
   710 <xsl:template match="capabilitiestypedef" mode="justbody">
   707     <table class="bordered wide">
   711     <table class="bordered wide">
   708       <tr class="bgDark">
   712       <caption>
   709         <td colspan="3" class="tableHeader">
   713         <div class="captionTitle">
   710           <code><xsl:value-of select="@id"/></code> - <xsl:value-of select="@label"/>
   714           <code><xsl:value-of select="@id"/></code> - <xsl:value-of select="@label"/>
   711         </td>
   715         </div>
   712       </tr>
   716         <div class="captionDescr">All types are <code>unsigned int : 1</code></div>
       
   717       </caption>
   713       <tr class="bgLight">
   718       <tr class="bgLight">
   714         <td colspan="3">
   719         <th scope="col">Field</th>
   715           All types are <code>unsigned int : 1</code>
   720         <th scope="col">Description</th>
   716         </td>
   721         <th scope="col"><a href="#ChangeHistory">Since</a></th>
   717       </tr>
       
   718       <tr class="bgLight">
       
   719         <td>
       
   720           Field
       
   721         </td>
       
   722         <td>
       
   723           Description
       
   724         </td>
       
   725         <td>
       
   726           <a href="#ChangeHistory">Since</a>
       
   727         </td>
       
   728       </tr>
   722       </tr>
   729       <xsl:apply-templates select="capabilityfield" mode="body"/>
   723       <xsl:apply-templates select="capabilityfield" mode="body"/>
   730     </table>
   724     </table>
   731 </xsl:template>
   725 </xsl:template>
   732 
   726 
   733 <xsl:template match="typedef|uniontypedef|capabilitiestypedef|constants" mode="tableentry">
   727 <xsl:template match="typedef|uniontypedef|capabilitiestypedef|constants" mode="tableentry">
   734   <tr>
   728   <tr>
   735     <td>
   729     <th scope="row">
   736       <a>
   730       <a>
   737         <xsl:attribute name="href">
   731         <xsl:attribute name="href">
   738           <xsl:text>#</xsl:text>
   732           <xsl:text>#</xsl:text>
   739           <xsl:value-of select="@id"/>
   733           <xsl:value-of select="@id"/>
   740         </xsl:attribute>
   734         </xsl:attribute>
   741         <code><xsl:value-of select="@id"/></code>
   735         <code><xsl:value-of select="@id"/></code>
   742       </a>
   736       </a>
   743     </td>
   737     </th>
   744     <td>
   738     <td>
   745       <xsl:value-of select="@label"/>
   739       <xsl:value-of select="@label"/>
   746     </td>
   740     </td>
   747   </tr>
   741   </tr>
   748 </xsl:template>
   742 </xsl:template>
   749 
   743 
   750 <xsl:template match="field" mode="body">
   744 <xsl:template match="field" mode="body">
   751   <tr>
   745   <tr>
   752     <td>
   746     <th scope="row">
   753       <code>
   747       <code>
   754         <xsl:attribute name="id">
   748         <xsl:attribute name="id">
   755           <xsl:value-of select="../@id"/>.<xsl:value-of select="@id"/>
   749           <xsl:value-of select="../@id"/>.<xsl:value-of select="@id"/>
   756         </xsl:attribute>
   750         </xsl:attribute>
   757         <xsl:value-of select="@id"/>
   751         <xsl:value-of select="@id"/>
   758       </code>
   752       </code>
   759     </td>
   753     </th>
   760     <td>
   754     <td>
   761       <code>
   755       <code>
   762         <xsl:apply-templates select="child::*[position()=1]" mode="link"/>
   756         <xsl:apply-templates select="child::*[position()=1]" mode="link"/>
   763       </code>
   757       </code>
   764     </td>
   758     </td>
   768   </tr>
   762   </tr>
   769 </xsl:template>
   763 </xsl:template>
   770 
   764 
   771 <xsl:template match="capabilityfield" mode="body">
   765 <xsl:template match="capabilityfield" mode="body">
   772   <tr>
   766   <tr>
   773     <td>
   767     <th scope="row">
   774       <code>
   768       <code>
   775         <xsl:choose>
   769         <xsl:choose>
   776           <xsl:when test="@disp1!=''">
   770           <xsl:when test="@disp1!=''">
   777             <xsl:value-of select="@disp1"/>
   771             <xsl:value-of select="@disp1"/>
   778             <br></br>
   772             <br></br>
   781           <xsl:otherwise>
   775           <xsl:otherwise>
   782             <xsl:value-of select="@id"/>
   776             <xsl:value-of select="@id"/>
   783           </xsl:otherwise>
   777           </xsl:otherwise>
   784         </xsl:choose>
   778         </xsl:choose>
   785       </code>
   779       </code>
   786     </td>
   780     </th>
   787     <td>
   781     <td>
   788       <xsl:attribute name="id">
   782       <xsl:attribute name="id">
   789         <xsl:value-of select="../@id"/>.<xsl:value-of select="@id"/>
   783         <xsl:value-of select="../@id"/>.<xsl:value-of select="@id"/>
   790       </xsl:attribute>
   784       </xsl:attribute>
   791       <xsl:apply-templates select="description" mode="brief"/>
   785       <xsl:apply-templates select="description" mode="brief"/>
   796   </tr>
   790   </tr>
   797 </xsl:template>
   791 </xsl:template>
   798 
   792 
   799 <xsl:template match="callback" mode="tableentry">
   793 <xsl:template match="callback" mode="tableentry">
   800   <tr>
   794   <tr>
   801     <td>
   795     <th scope="row">
   802       <a>
   796       <a>
   803         <xsl:attribute name="href">
   797         <xsl:attribute name="href">
   804           <xsl:text>#</xsl:text>
   798           <xsl:text>#</xsl:text>
   805           <xsl:value-of select="@id"/>
   799           <xsl:value-of select="@id"/>
   806         </xsl:attribute>
   800         </xsl:attribute>
   807         <code>
   801         <code>
   808           <xsl:value-of select="@id"/>
   802           <xsl:value-of select="@id"/>
   809         </code>
   803         </code>
   810       </a>
   804       </a>
   811     </td>
   805     </th>
   812     <td>
   806     <td>
   813       <xsl:apply-templates select="synopsis" mode="index"/>
   807       <xsl:apply-templates select="synopsis" mode="index"/>
   814     </td>
   808     </td>
   815   </tr>
   809   </tr>
   816 </xsl:template>
   810 </xsl:template>
   819   <blockquote>
   813   <blockquote>
   820     <table class="bordered">
   814     <table class="bordered">
   821       <xsl:attribute name="id">
   815       <xsl:attribute name="id">
   822         <xsl:value-of select="@id"/>
   816         <xsl:value-of select="@id"/>
   823       </xsl:attribute>
   817       </xsl:attribute>
   824       <tr class="bgDark">
   818       <caption class="captionTitle">
   825         <td colspan="3" class="tableHeader">
   819         <xsl:value-of select="@label"/>
   826             <xsl:value-of select="@label"/>
   820         <xsl:if test="@kind='enum'">
   827             <xsl:if test="@kind='enum'">
   821           <xsl:text> (</xsl:text>
   828               <xsl:text> (</xsl:text>
   822           <code>
   829               <code>
   823             <xsl:value-of select="@id"/>
   830                 <xsl:value-of select="@id"/>
   824           </code>
   831               </code>
   825           <xsl:text>)</xsl:text>
   832               <xsl:text>)</xsl:text>
   826         </xsl:if>
   833             </xsl:if>
   827       </caption>
   834         </td>
   828 
   835       </tr>
       
   836       <tr class="bgLight">
   829       <tr class="bgLight">
   837         <td>
   830         <th scope="col">Constant</th>
   838           Constant
   831         <th scope="col">Value</th>
   839         </td>
   832         <th scope="col">Description</th>
   840         <td>
       
   841           Value
       
   842         </td>
       
   843         <td>
       
   844           Description
       
   845         </td>
       
   846       </tr>
   833       </tr>
   847       <xsl:apply-templates select="constant" mode="body"/>
   834       <xsl:apply-templates select="constant" mode="body"/>
   848     </table>
   835     </table>
   849   </blockquote>
   836   </blockquote>
   850 </xsl:template>
   837 </xsl:template>
   860   <br/>
   847   <br/>
   861 </xsl:template>
   848 </xsl:template>
   862 
   849 
   863 <xsl:template match="constant" mode="body">
   850 <xsl:template match="constant" mode="body">
   864   <tr>
   851   <tr>
   865     <td>
   852     <th scope="row">
   866       <code>
   853       <code>
   867         <xsl:attribute name="id">
   854         <xsl:attribute name="id">
   868           <xsl:value-of select="@id"/>
   855           <xsl:value-of select="@id"/>
   869         </xsl:attribute>
   856         </xsl:attribute>
   870         <xsl:value-of select="@id"/>
   857         <xsl:value-of select="@id"/>
   871       </code>
   858       </code>
   872     </td>
   859     </th>
   873     <td class="rightAligned">
   860     <td class="rightAligned">
   874       <xsl:value-of select="@num"/>
   861       <xsl:value-of select="@num"/>
   875     </td>
   862     </td>
   876     <td>
   863     <td>
   877       <xsl:apply-templates/>
   864       <xsl:apply-templates/>
   884     <xsl:attribute name="id">
   871     <xsl:attribute name="id">
   885       <xsl:value-of select="@id"/>
   872       <xsl:value-of select="@id"/>
   886     </xsl:attribute>
   873     </xsl:attribute>
   887   </p>
   874   </p>
   888     <table class="bordered wide">
   875     <table class="bordered wide">
   889       <tr class="bgDark">
   876       <caption class="captionTitle"><xsl:value-of select="@label"/></caption>
   890         <td colspan="2" class="tableHeader">
       
   891           <xsl:value-of select="@label"/>
       
   892         </td>
       
   893       </tr>
       
   894       <tr class="bgLight">
   877       <tr class="bgLight">
   895         <td>
   878         <th scope="col">Type</th>
   896           Type
   879         <th scope="col">Description</th>
   897         </td>
       
   898         <td>
       
   899           Description
       
   900         </td>
       
   901       </tr>
   880       </tr>
   902       <xsl:apply-templates select="basetype" mode="body"/>
   881       <xsl:apply-templates select="basetype" mode="body"/>
   903     </table>
   882     </table>
   904 </xsl:template>
   883 </xsl:template>
   905 
   884 
   906 <xsl:template match="basetype" mode="body">
   885 <xsl:template match="basetype" mode="body">
   907   <xsl:choose>
   886   <tr>
   908     <xsl:when test="count(definition)=0">
   887     <th scope="row">
   909       <tr>
   888       <code>
   910         <td>
   889         <xsl:value-of select="@id"/>
   911           <code>
   890       </code>
   912             <xsl:value-of select="@id"/>
   891     </th>
   913           </code>
   892     <td class="noPadding">
   914         </td>
   893       <div class="withPadding">
   915         <td>
   894         <a>
   916           <a>
   895           <xsl:attribute name="id">
   917             <xsl:attribute name="id">
   896             <xsl:choose>
   918               <xsl:choose>
   897               <xsl:when test="count(@name)=1">
   919                 <xsl:when test="count(@name)=1">
   898                 <xsl:value-of select="@name"/>
   920                   <xsl:value-of select="@name"/>
   899               </xsl:when>
   921                 </xsl:when>
   900               <xsl:otherwise>
   922                 <xsl:otherwise>
   901                 <xsl:value-of select="@id"/>
   923                   <xsl:value-of select="@id"/>
   902               </xsl:otherwise>
   924                 </xsl:otherwise>
   903             </xsl:choose>
   925               </xsl:choose>
   904           </xsl:attribute>
   926             </xsl:attribute>
   905         </a>
   927           </a>
   906         <xsl:apply-templates select="description" mode="brief"/>
   928           <xsl:apply-templates select="description" mode="brief"/>
   907       </div>
   929         </td>
   908       <xsl:if test="count(definition)!=0">
   930       </tr>
   909         <div class="withPadding topBorder">
   931     </xsl:when>
       
   932     <xsl:otherwise>
       
   933       <tr>
       
   934         <td rowspan="2">
       
   935           <code>
       
   936             <xsl:value-of select="@id"/>
       
   937           </code>
       
   938         </td>
       
   939         <td>
       
   940           <a>
       
   941             <xsl:attribute name="id">
       
   942               <xsl:value-of select="@id"/>
       
   943             </xsl:attribute>
       
   944           </a>
       
   945           <xsl:apply-templates select="description" mode="brief"/>
       
   946         </td>
       
   947       </tr>
       
   948       <tr>
       
   949         <td>
       
   950           <pre>
   910           <pre>
   951             <xsl:apply-templates select="definition"/>
   911             <xsl:apply-templates select="definition"/>
   952           </pre>
   912           </pre>
   953         </td>
   913         </div>
   954       </tr>
   914       </xsl:if>
   955     </xsl:otherwise>
   915     </td>
   956   </xsl:choose>
   916   </tr>
   957 </xsl:template>
   917 </xsl:template>
   958 
   918 
   959 <xsl:template match="description">
   919 <xsl:template match="description">
   960   <xsl:apply-templates/>
   920   <xsl:apply-templates/>
   961   <div class="sep"/>
   921   <div class="sep"/>
  1072   </a>
  1032   </a>
  1073 </xsl:template>
  1033 </xsl:template>
  1074 
  1034 
  1075 <xsl:template match="parameters" mode="body">
  1035 <xsl:template match="parameters" mode="body">
  1076   <div class="sep"/>
  1036   <div class="sep"/>
  1077   <table class="bordered wide">
  1037   <!--
  1078     <tr class="bgDark">
  1038   docchecker complains if a table has only one row.
  1079       <td colspan="3" class="tableHeader">
  1039   -->
  1080         Parameters
  1040   <xsl:choose>
  1081       </td>
  1041     <xsl:when test="count(param)!=0">
  1082     </tr>
  1042       <table class="bordered wide">
  1083     <tr class="bgLight">
  1043         <caption class="captionTitle">Parameters</caption>
  1084       <td>
  1044         <tr class="bgLight">
  1085         Name
  1045           <th scope="col">Name</th>
  1086       </td>
  1046           <th scope="col">Type</th>
  1087       <td>
  1047           <th scope="col">Description</th>
  1088         Type
  1048         </tr>
  1089       </td>
  1049         <xsl:apply-templates select="param[count(jclass/@method)=0]" mode="body"/>
  1090       <td>
  1050       </table>
  1091         Description
  1051     </xsl:when>
  1092       </td>
  1052     <xsl:otherwise>
  1093     </tr>
  1053       <div class="bordered">
  1094     <xsl:apply-templates select="param[count(jclass/@method)=0]" mode="body"/>
  1054         <div class="captionTitle">Parameters</div>
  1095   </table>
  1055         <div class="captionDescr">None</div>
       
  1056       </div>
       
  1057     </xsl:otherwise>
       
  1058   </xsl:choose>
  1096 </xsl:template>
  1059 </xsl:template>
  1097 
  1060 
  1098 <xsl:template match="param" mode="body">
  1061 <xsl:template match="param" mode="body">
  1099   <tr>
  1062   <tr>
  1100     <td>
  1063     <th scope="row">
  1101       <code>
  1064       <code>
  1102         <xsl:attribute name="id">
  1065         <xsl:attribute name="id">
  1103           <xsl:value-of select="../../@id"/>.<xsl:value-of select="@id"/>
  1066           <xsl:value-of select="../../@id"/>.<xsl:value-of select="@id"/>
  1104         </xsl:attribute>
  1067         </xsl:attribute>
  1105         <xsl:value-of select="@id"/>
  1068         <xsl:value-of select="@id"/>
  1106       </code>
  1069       </code>
  1107     </td>
  1070     </th>
  1108     <td>
  1071     <td>
  1109       <code>
  1072       <code>
  1110         <xsl:apply-templates select="child::*[position()=1]" mode="link"/>
  1073         <xsl:apply-templates select="child::*[position()=1]" mode="link"/>
  1111       </code>
  1074       </code>
  1112     </td>
  1075     </td>
  1120 </xsl:template>
  1083 </xsl:template>
  1121 
  1084 
  1122 <xsl:template match="capabilities">
  1085 <xsl:template match="capabilities">
  1123   <div class="sep"/>
  1086   <div class="sep"/>
  1124   <!--
  1087   <!--
  1125   W3C Validator reports error if all cells has colspan==2.
  1088   docchecker complains if a table has only one column.
  1126   The workaround is to detect the case and set colspan = 1 for all cells
       
  1127   which fills the entire row.
       
  1128   -->
  1089   -->
  1129   <xsl:variable name="fullRowColspan">
  1090   <xsl:choose>
  1130     <xsl:choose>
  1091     <xsl:when test="count(required)!=0 or count(capability)!=0">
  1131       <xsl:when test="count(required)!=0 or count(capability)!=0">2</xsl:when>
  1092       <table class="bordered wide">
  1132       <xsl:otherwise>1</xsl:otherwise>
  1093         <caption>
  1133     </xsl:choose>
  1094           <div class="captionTitle">Capabilities</div>
  1134   </xsl:variable>
  1095           <xsl:choose>
       
  1096             <xsl:when test="count(required)=0">
       
  1097               <div class="captionDescr"><b>Required Functionality</b></div>
       
  1098             </xsl:when>
       
  1099             <xsl:otherwise>
       
  1100               <div class="captionDescr">
       
  1101                 <b>Optional Functionality:</b> might not be implemented for all virtual machines.
       
  1102                 <xsl:choose>
       
  1103                   <xsl:when test="count(required)=1">
       
  1104                     The following capability
       
  1105                   </xsl:when>
       
  1106                   <xsl:otherwise>
       
  1107                     One of the following capabilities
       
  1108                   </xsl:otherwise>
       
  1109                 </xsl:choose>
       
  1110                 (as returned by <a href="#GetCapabilities"><code>GetCapabilities</code></a>)
       
  1111                 must be true to use this
       
  1112                 <xsl:choose>
       
  1113                   <xsl:when test="ancestor::function">
       
  1114                     function.
       
  1115                   </xsl:when>
       
  1116                   <xsl:otherwise>
       
  1117                     event.
       
  1118                   </xsl:otherwise>
       
  1119                 </xsl:choose>
       
  1120               </div>
       
  1121             </xsl:otherwise>
       
  1122           </xsl:choose>
       
  1123         </caption>
       
  1124         <xsl:if test="count(required)!=0">
       
  1125           <tr class="bgLight">
       
  1126             <th scope="col">Capability</th>
       
  1127             <th scope="col">Effect</th>
       
  1128           </tr>
       
  1129           <xsl:apply-templates select="required"/>
       
  1130         </xsl:if>
       
  1131 
       
  1132         <xsl:if test="count(capability)!=0">
       
  1133           <tr class="bgDark">
       
  1134             <th colspan="2" scope="rowgroup" class="centered">
       
  1135               Optional Features
       
  1136             </th>
       
  1137           </tr>
       
  1138           <xsl:if test="count(required)=0">
       
  1139             <tr class="bgLight">
       
  1140               <th scope="col">Capability</th>
       
  1141               <th scope="col">Effect</th>
       
  1142             </tr>
       
  1143           </xsl:if>
       
  1144           <xsl:apply-templates select="capability"/>
       
  1145         </xsl:if>
       
  1146       </table>
       
  1147     </xsl:when>
       
  1148     <xsl:otherwise>
       
  1149       <div class="bordered">
       
  1150         <div class="captionTitle">Capabilities</div>
       
  1151         <div class="captionDescr"><b>Required Functionality</b></div>
       
  1152       </div>
       
  1153     </xsl:otherwise>
       
  1154   </xsl:choose>
       
  1155 </xsl:template>
       
  1156 
       
  1157 <xsl:template match="eventcapabilities">
       
  1158   <div class="sep"/>
  1135   <table class="bordered wide">
  1159   <table class="bordered wide">
       
  1160     <caption>
       
  1161       <div class="captionTitle">Capabilities</div>
       
  1162       <div class="captionDescr"><b>Required Functionality</b></div>
       
  1163     </caption>
  1136     <tr class="bgDark">
  1164     <tr class="bgDark">
  1137       <td colspan="{$fullRowColspan}" class="tableHeader">
  1165       <th colspan="2" scope="rowgroup" class="centered">
  1138         Capabilities
       
  1139       </td>
       
  1140     </tr>
       
  1141     <xsl:choose>
       
  1142       <xsl:when test="count(required)=0">
       
  1143         <tr>
       
  1144           <td colspan="{$fullRowColspan}">
       
  1145             <b>Required Functionality</b>
       
  1146           </td>
       
  1147         </tr>
       
  1148       </xsl:when>
       
  1149       <xsl:otherwise>
       
  1150         <tr>
       
  1151           <td colspan="2">
       
  1152             <b>Optional Functionality:</b> might not be implemented for all
       
  1153             virtual machines.
       
  1154             <xsl:choose>
       
  1155               <xsl:when test="count(required)=1">
       
  1156                 The following capability
       
  1157               </xsl:when>
       
  1158               <xsl:otherwise>
       
  1159                 One of the following capabilities
       
  1160               </xsl:otherwise>
       
  1161             </xsl:choose>
       
  1162             (as returned by
       
  1163             <a href="#GetCapabilities"><code>GetCapabilities</code></a>)
       
  1164             must be true to use this
       
  1165             <xsl:choose>
       
  1166               <xsl:when test="ancestor::function">
       
  1167                 function.
       
  1168               </xsl:when>
       
  1169               <xsl:otherwise>
       
  1170                 event.
       
  1171               </xsl:otherwise>
       
  1172             </xsl:choose>
       
  1173           </td>
       
  1174         </tr>
       
  1175         <tr class="bgLight">
       
  1176           <td >
       
  1177             Capability
       
  1178           </td>
       
  1179           <td>
       
  1180             Effect
       
  1181           </td>
       
  1182         </tr>
       
  1183         <xsl:apply-templates select="required"/>
       
  1184       </xsl:otherwise>
       
  1185     </xsl:choose>
       
  1186     <xsl:if test="count(capability)!=0">
       
  1187       <tr class="bgDark">
       
  1188         <td colspan="{$fullRowColspan}" class="centered">
       
  1189           Optional Features
       
  1190         </td>
       
  1191       </tr>
       
  1192       <xsl:if test="count(required)=0">
       
  1193         <tr class="bgLight">
       
  1194           <td >
       
  1195             Capability
       
  1196           </td>
       
  1197           <td>
       
  1198             Effect
       
  1199           </td>
       
  1200         </tr>
       
  1201       </xsl:if>
       
  1202       <xsl:apply-templates select="capability"/>
       
  1203     </xsl:if>
       
  1204   </table>
       
  1205 </xsl:template>
       
  1206 
       
  1207 <xsl:template match="eventcapabilities">
       
  1208   <div class="sep"/>
       
  1209   <table class="bordered wide">
       
  1210     <tr class="bgDark">
       
  1211       <td colspan="2" class="tableHeader">
       
  1212         Capabilities
       
  1213       </td>
       
  1214     </tr>
       
  1215     <tr>
       
  1216       <td colspan="2">
       
  1217         <b>Required Functionality</b>
       
  1218       </td>
       
  1219     </tr>
       
  1220     <tr class="bgDark">
       
  1221       <td colspan="2" class="centered">
       
  1222         Event Enabling Capabilities
  1166         Event Enabling Capabilities
  1223       </td>
  1167       </th>
  1224     </tr>
  1168     </tr>
  1225     <tr class="bgLight">
  1169     <tr class="bgLight">
  1226       <td >
  1170       <th scope="col">Capability</th>
  1227         Capability
  1171       <th scope="col">Events</th>
  1228       </td>
       
  1229       <td>
       
  1230         Events
       
  1231       </td>
       
  1232     </tr>
  1172     </tr>
  1233     <xsl:for-each select="//capabilityfield">
  1173     <xsl:for-each select="//capabilityfield">
  1234       <xsl:variable name="capa" select="@id"/>
  1174       <xsl:variable name="capa" select="@id"/>
  1235       <xsl:variable name="events" select="//event[capabilities/required/@id=$capa]"/>
  1175       <xsl:variable name="events" select="//event[capabilities/required/@id=$capa]"/>
  1236       <xsl:if test="count($events)">
  1176       <xsl:if test="count($events)">
  1237         <tr>
  1177         <tr>
  1238           <td>
  1178           <th scope="row">
  1239             <a>
  1179             <a>
  1240               <xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/>
  1180               <xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/>
  1241               </xsl:attribute>
  1181               </xsl:attribute>
  1242               <code>
  1182               <code>
  1243                 <xsl:value-of select="@id"/>
  1183                 <xsl:value-of select="@id"/>
  1244               </code>
  1184               </code>
  1245             </a>
  1185             </a>
  1246           </td>
  1186           </th>
  1247           <td>
  1187           <td>
  1248             <xsl:for-each select="$events">
  1188             <xsl:for-each select="$events">
  1249               <a>
  1189               <a>
  1250                 <xsl:attribute name="href">#<xsl:value-of select="@id"/>
  1190                 <xsl:attribute name="href">#<xsl:value-of select="@id"/>
  1251                 </xsl:attribute>
  1191                 </xsl:attribute>
  1262   </table>
  1202   </table>
  1263 </xsl:template>
  1203 </xsl:template>
  1264 
  1204 
  1265 <xsl:template match="capability|required">
  1205 <xsl:template match="capability|required">
  1266   <tr>
  1206   <tr>
  1267     <td>
  1207     <th scope="row">
  1268       <a>
  1208       <a>
  1269         <xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/>
  1209         <xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/>
  1270         </xsl:attribute>
  1210         </xsl:attribute>
  1271         <code>
  1211         <code>
  1272           <xsl:value-of select="@id"/>
  1212           <xsl:value-of select="@id"/>
  1273         </code>
  1213         </code>
  1274       </a>
  1214       </a>
  1275     </td>
  1215     </th>
  1276     <td>
  1216     <td>
  1277       <xsl:choose>
  1217       <xsl:choose>
  1278         <xsl:when test=".=''">
  1218         <xsl:when test=".=''">
  1279           <xsl:variable name="desiredID" select="@id"/>
  1219           <xsl:variable name="desiredID" select="@id"/>
  1280           <xsl:for-each select="//capabilityfield[@id=$desiredID]">
  1220           <xsl:for-each select="//capabilityfield[@id=$desiredID]">
  1295     <xsl:apply-templates select="errors/error" mode="haserrors"/>
  1235     <xsl:apply-templates select="errors/error" mode="haserrors"/>
  1296     <xsl:apply-templates select="parameters/param" mode="haserrors"/>
  1236     <xsl:apply-templates select="parameters/param" mode="haserrors"/>
  1297   </xsl:variable>
  1237   </xsl:variable>
  1298   <div class="sep"/>
  1238   <div class="sep"/>
  1299   <!--
  1239   <!--
  1300   W3C Validator reports error if all cells has colspan==2.
  1240   docchecker complains if a table has only one column.
  1301   The workaround is to detect the case and set colspan = 1 for all cells
       
  1302   which fills the entire row.
       
  1303   -->
  1241   -->
  1304   <xsl:variable name="fullRowColspan">
  1242   <xsl:choose>
  1305     <xsl:choose>
  1243     <xsl:when test="contains($haserrors,'yes')">
  1306       <xsl:when test="contains($haserrors,'yes')">2</xsl:when>
  1244       <table class="bordered wide">
  1307       <xsl:otherwise>1</xsl:otherwise>
  1245         <caption>
  1308     </xsl:choose>
  1246           <div class="captionTitle">Errors</div>
  1309   </xsl:variable>
  1247           <div class="captionDescr">
  1310   <table class="bordered wide">
       
  1311     <tr class="bgDark">
       
  1312       <td colspan="{$fullRowColspan}" class="tableHeader">
       
  1313         Errors
       
  1314       </td>
       
  1315     </tr>
       
  1316     <xsl:choose>
       
  1317       <xsl:when test="contains($haserrors,'yes')">
       
  1318         <tr>
       
  1319           <td colspan="2">
       
  1320             This function returns either a
  1248             This function returns either a
  1321             <a href="#universal-error">universal error</a>
  1249             <a href="#universal-error">universal error</a>
  1322             or one of the following errors
  1250             or one of the following errors
  1323           </td>
  1251           </div>
  1324         </tr>
  1252         </caption>
  1325         <tr class="bgLight">
  1253         <tr class="bgLight">
  1326           <td>
  1254           <th scope="col">Error</th>
  1327             Error
  1255           <th scope="col">Description</th>
  1328           </td>
       
  1329           <td>
       
  1330             Description
       
  1331           </td>
       
  1332         </tr>
  1256         </tr>
  1333         <xsl:apply-templates select="capabilities/required" mode="errors"/>
  1257         <xsl:apply-templates select="capabilities/required" mode="errors"/>
  1334         <xsl:apply-templates select="errors/error"/>
  1258         <xsl:apply-templates select="errors/error"/>
  1335         <xsl:apply-templates select="parameters/param" mode="errors"/>
  1259         <xsl:apply-templates select="parameters/param" mode="errors"/>
  1336       </xsl:when>
  1260       </table>
  1337       <xsl:otherwise>
  1261     </xsl:when>
  1338         <tr>
  1262     <xsl:otherwise>
  1339           <td colspan="{$fullRowColspan}">
  1263       <div class="bordered">
       
  1264         <div class="captionTitle">Errors</div>
       
  1265         <div class="captionDescr">
  1340             This function returns a
  1266             This function returns a
  1341             <a href="#universal-error">universal error</a>
  1267             <a href="#universal-error">universal error</a>
  1342           </td>
  1268         </div>
  1343         </tr>
  1269       </div>
  1344       </xsl:otherwise>
  1270     </xsl:otherwise>
  1345     </xsl:choose>
  1271   </xsl:choose>
  1346   </table>
       
  1347 </xsl:template>
  1272 </xsl:template>
  1348 
  1273 
  1349 <xsl:template match="required" mode="haserrors">
  1274 <xsl:template match="required" mode="haserrors">
  1350   yes
  1275   yes
  1351 </xsl:template>
  1276 </xsl:template>
  1352 
  1277 
  1353 <xsl:template match="required" mode="errors">
  1278 <xsl:template match="required" mode="errors">
  1354   <tr>
  1279   <tr>
  1355     <td>
  1280     <th scope="row">
  1356       <a href="#JVMTI_ERROR_MUST_POSSESS_CAPABILITY">
  1281       <a href="#JVMTI_ERROR_MUST_POSSESS_CAPABILITY">
  1357         <code>
  1282         <code>
  1358           JVMTI_ERROR_MUST_POSSESS_CAPABILITY
  1283           JVMTI_ERROR_MUST_POSSESS_CAPABILITY
  1359         </code>
  1284         </code>
  1360       </a>
  1285       </a>
  1361     </td>
  1286     </th>
  1362     <td>
  1287     <td>
  1363       The environment does not possess the capability
  1288       The environment does not possess the capability
  1364       <a>
  1289       <a>
  1365         <xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/></xsl:attribute>
  1290         <xsl:attribute name="href">#jvmtiCapabilities.<xsl:value-of select="@id"/></xsl:attribute>
  1366         <code>
  1291         <code>
  1389     <xsl:variable name="erroridraw">
  1314     <xsl:variable name="erroridraw">
  1390       <xsl:apply-templates mode="errorid"/>
  1315       <xsl:apply-templates mode="errorid"/>
  1391     </xsl:variable>
  1316     </xsl:variable>
  1392     <xsl:variable name="errorid" select="normalize-space($erroridraw)"/>
  1317     <xsl:variable name="errorid" select="normalize-space($erroridraw)"/>
  1393     <tr>
  1318     <tr>
  1394       <td>
  1319       <th scope="row">
  1395         <a>
  1320         <a>
  1396           <xsl:attribute name="href">#<xsl:value-of select="$errorid"/></xsl:attribute>
  1321           <xsl:attribute name="href">#<xsl:value-of select="$errorid"/></xsl:attribute>
  1397           <code>
  1322           <code>
  1398             <xsl:value-of select="$errorid"/>
  1323             <xsl:value-of select="$errorid"/>
  1399           </code>
  1324           </code>
  1400         </a>
  1325         </a>
  1401       </td>
  1326       </th>
  1402       <td>
  1327       <td>
  1403         <xsl:apply-templates mode="errordesc">
  1328         <xsl:apply-templates mode="errordesc">
  1404           <xsl:with-param name="id" select="@id"/>
  1329           <xsl:with-param name="id" select="@id"/>
  1405         </xsl:apply-templates>
  1330         </xsl:apply-templates>
  1406       </td>
  1331       </td>
  1416     <xsl:variable name="erroridraw2">
  1341     <xsl:variable name="erroridraw2">
  1417       <xsl:apply-templates mode="errorid2"/>
  1342       <xsl:apply-templates mode="errorid2"/>
  1418     </xsl:variable>
  1343     </xsl:variable>
  1419     <xsl:variable name="errorid2" select="normalize-space($erroridraw2)"/>
  1344     <xsl:variable name="errorid2" select="normalize-space($erroridraw2)"/>
  1420     <tr>
  1345     <tr>
  1421       <td>
  1346       <th scope="row">
  1422         <a>
  1347         <a>
  1423           <xsl:attribute name="href">#<xsl:value-of select="$errorid2"/></xsl:attribute>
  1348           <xsl:attribute name="href">#<xsl:value-of select="$errorid2"/></xsl:attribute>
  1424           <code>
  1349           <code>
  1425             <xsl:value-of select="$errorid2"/>
  1350             <xsl:value-of select="$errorid2"/>
  1426           </code>
  1351           </code>
  1427         </a>
  1352         </a>
  1428       </td>
  1353       </th>
  1429       <td>
  1354       <td>
  1430         <xsl:apply-templates mode="errordesc2">
  1355         <xsl:apply-templates mode="errordesc2">
  1431           <xsl:with-param name="id" select="@id"/>
  1356           <xsl:with-param name="id" select="@id"/>
  1432         </xsl:apply-templates>
  1357         </xsl:apply-templates>
  1433       </td>
  1358       </td>
  1687   yes
  1612   yes
  1688 </xsl:template>
  1613 </xsl:template>
  1689 
  1614 
  1690 <xsl:template match="error">
  1615 <xsl:template match="error">
  1691   <tr>
  1616   <tr>
  1692     <td>
  1617     <th scope="row">
  1693       <a>
  1618       <a>
  1694         <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
  1619         <xsl:attribute name="href">#<xsl:value-of select="@id"/></xsl:attribute>
  1695         <code>
  1620         <code>
  1696           <xsl:value-of select="@id"/>
  1621           <xsl:value-of select="@id"/>
  1697         </code>
  1622         </code>
  1698       </a>
  1623       </a>
  1699     </td>
  1624     </th>
  1700     <td>
  1625     <td>
  1701       <xsl:apply-templates/>
  1626       <xsl:apply-templates/>
  1702     </td>
  1627     </td>
  1703   </tr>
  1628   </tr>
  1704 </xsl:template>
  1629 </xsl:template>
  1725   <div class="sep"/>
  1650   <div class="sep"/>
  1726   <xsl:apply-templates select="intro"/>
  1651   <xsl:apply-templates select="intro"/>
  1727   <xsl:apply-templates select="basetypes"/>
  1652   <xsl:apply-templates select="basetypes"/>
  1728   <div class="sep"/>
  1653   <div class="sep"/>
  1729   <table id="StructureTypeDefinitions" class="bordered wide">
  1654   <table id="StructureTypeDefinitions" class="bordered wide">
  1730     <tr class="bgDark">
  1655     <caption class="captionTitle">Structure Type Definitions</caption>
  1731       <td colspan="2" class="tableHeader">
       
  1732         Structure Type Definitions
       
  1733       </td>
       
  1734     </tr>
       
  1735     <tr class="bgLight">
  1656     <tr class="bgLight">
  1736       <td>
  1657       <th scope="col">Type</th>
  1737         Type
  1658       <th scope="col">Description</th>
  1738       </td>
       
  1739       <td>
       
  1740         Description
       
  1741       </td>
       
  1742     </tr>
  1659     </tr>
  1743     <xsl:apply-templates select="//typedef|//uniontypedef|//capabilitiestypedef" mode="tableentry">
  1660     <xsl:apply-templates select="//typedef|//uniontypedef|//capabilitiestypedef" mode="tableentry">
  1744       <xsl:sort select="@id"/>
  1661       <xsl:sort select="@id"/>
  1745     </xsl:apply-templates>
  1662     </xsl:apply-templates>
  1746   </table>
  1663   </table>
  1747   <div class="sep"/>
  1664   <div class="sep"/>
  1748   <table id="FunctionTypeDefinitions" class="bordered wide">
  1665   <table id="FunctionTypeDefinitions" class="bordered wide">
  1749     <tr class="bgDark">
  1666     <caption class="captionTitle">Function Type Definitions</caption>
  1750       <td colspan="2" class="tableHeader">
       
  1751         Function Type Definitions
       
  1752       </td>
       
  1753     </tr>
       
  1754     <tr class="bgLight">
  1667     <tr class="bgLight">
  1755       <td>
  1668       <th scope="col">Type</th>
  1756         Type
  1669       <th scope="col">Description</th>
  1757       </td>
       
  1758       <td>
       
  1759         Description
       
  1760       </td>
       
  1761     </tr>
  1670     </tr>
  1762     <xsl:apply-templates select="//callback" mode="tableentry">
  1671     <xsl:apply-templates select="//callback" mode="tableentry">
  1763       <xsl:sort select="@id"/>
  1672       <xsl:sort select="@id"/>
  1764     </xsl:apply-templates>
  1673     </xsl:apply-templates>
  1765   </table>
  1674   </table>
  1766   <div class="sep"/>
  1675   <div class="sep"/>
  1767   <table id="EnumerationDefinitions" class="bordered wide">
  1676   <table id="EnumerationDefinitions" class="bordered wide">
  1768     <tr class="bgDark">
  1677     <caption class="captionTitle">Enumeration Definitions</caption>
  1769       <td colspan="2" class="tableHeader">
       
  1770         Enumeration Definitions
       
  1771       </td>
       
  1772     </tr>
       
  1773     <tr class="bgLight">
  1678     <tr class="bgLight">
  1774       <td>
  1679       <th scope="col">Type</th>
  1775         Type
  1680       <th scope="col">Description</th>
  1776       </td>
       
  1777       <td>
       
  1778         Description
       
  1779       </td>
       
  1780     </tr>
  1681     </tr>
  1781     <xsl:apply-templates select="//constants[@kind='enum']" mode="tableentry">
  1682     <xsl:apply-templates select="//constants[@kind='enum']" mode="tableentry">
  1782       <xsl:sort select="@id"/>
  1683       <xsl:sort select="@id"/>
  1783     </xsl:apply-templates>
  1684     </xsl:apply-templates>
  1784   </table>
  1685   </table>
  1785   <div class="sep"/>
  1686   <div class="sep"/>
  1786   <table id="FunctionTable" class="bordered wide">
  1687   <table id="FunctionTable" class="bordered wide">
  1787     <tr class="bgDark">
  1688     <caption class="captionTitle">Function Table Layout</caption>
  1788       <td colspan="3" class="tableHeader">
       
  1789         Function Table Layout
       
  1790       </td>
       
  1791     </tr>
       
  1792     <tr class="bgLight">
  1689     <tr class="bgLight">
  1793       <td>
  1690       <th scope="col">Position</th>
  1794         Position
  1691       <th scope="col">Function</th>
  1795       </td>
  1692       <th scope="col">Declaration</th>
  1796       <td>
       
  1797         Function
       
  1798       </td>
       
  1799       <td>
       
  1800         Declaration
       
  1801       </td>
       
  1802     </tr>
  1693     </tr>
  1803     <xsl:call-template name="funcStruct">
  1694     <xsl:call-template name="funcStruct">
  1804       <xsl:with-param name="funcs" select="//functionsection/category/function[count(@hide)=0]"/>
  1695       <xsl:with-param name="funcs" select="//functionsection/category/function[count(@hide)=0]"/>
  1805       <xsl:with-param name="index" select="1"/>
  1696       <xsl:with-param name="index" select="1"/>
  1806     </xsl:call-template>
  1697     </xsl:call-template>
  1812 <xsl:template name="funcStruct">
  1703 <xsl:template name="funcStruct">
  1813   <xsl:param name="funcs"/>
  1704   <xsl:param name="funcs"/>
  1814   <xsl:param name="index"/>
  1705   <xsl:param name="index"/>
  1815   <xsl:variable name="thisFunction" select="$funcs[@num=$index]"/>
  1706   <xsl:variable name="thisFunction" select="$funcs[@num=$index]"/>
  1816   <tr>
  1707   <tr>
  1817     <td class="rightAligned">
  1708     <th scope="row" class="rightAligned">
  1818       <xsl:number value="$index" format="  1"/>
  1709       <xsl:number value="$index" format="  1"/>
  1819     </td>
  1710     </th>
  1820     <xsl:choose>
  1711     <xsl:choose>
  1821       <xsl:when test="count($thisFunction)=1">
  1712       <xsl:when test="count($thisFunction)=1">
  1822         <td>
  1713         <td>
  1823           <a>
  1714           <a>
  1824             <xsl:attribute name="href">
  1715             <xsl:attribute name="href">
  1918     <div class="sep"/>
  1809     <div class="sep"/>
  1919     <xsl:apply-templates select="intro"/>
  1810     <xsl:apply-templates select="intro"/>
  1920     <div class="sep"/>
  1811     <div class="sep"/>
  1921     <table class="bordered wide">
  1812     <table class="bordered wide">
  1922       <tr class="bgLight">
  1813       <tr class="bgLight">
  1923         <td>
  1814         <th scope="col">
  1924           <b>Version</b><br/>
  1815           <b>Version</b><br/>
  1925           <b>Date</b>
  1816           <b>Date</b>
  1926         </td>
  1817         </th>
  1927         <td>
  1818         <th scope="col">
  1928           <b>Changes</b>
  1819           <b>Changes</b>
  1929         </td>
  1820         </th>
  1930       </tr>
  1821       </tr>
  1931       <xsl:apply-templates select="change"/>
  1822       <xsl:apply-templates select="change"/>
  1932     </table>
  1823     </table>
  1933 </xsl:template>
  1824 </xsl:template>
  1934 
  1825 
  1935 <xsl:template match="change">
  1826 <xsl:template match="change">
  1936   <tr>
  1827   <tr>
  1937     <td>
  1828     <th scope="row">
  1938       <xsl:if test="count(@version)">
  1829       <xsl:if test="count(@version)">
  1939         <b>
  1830         <b>
  1940           <xsl:value-of select="@version"/>
  1831           <xsl:value-of select="@version"/>
  1941         </b>
  1832         </b>
  1942         <br/>
  1833         <br/>
  1943       </xsl:if>
  1834       </xsl:if>
  1944       <xsl:value-of select="@date"/>
  1835       <xsl:value-of select="@date"/>
  1945     </td>
  1836     </th>
  1946     <td>
  1837     <td>
  1947       <xsl:apply-templates/>
  1838       <xsl:apply-templates/>
  1948     </td>
  1839     </td>
  1949   </tr>
  1840   </tr>
  1950 </xsl:template>
  1841 </xsl:template>
  2021   </table>
  1912   </table>
  2022 </xsl:template>
  1913 </xsl:template>
  2023 
  1914 
  2024 <xsl:template match="tr">
  1915 <xsl:template match="tr">
  2025   <tr>
  1916   <tr>
       
  1917     <xsl:if test="@class">
       
  1918       <xsl:attribute name="class">
       
  1919         <xsl:value-of select="@class"/>
       
  1920       </xsl:attribute>
       
  1921     </xsl:if>
  2026     <xsl:apply-templates/>
  1922     <xsl:apply-templates/>
  2027   </tr>
  1923   </tr>
  2028 </xsl:template>
  1924 </xsl:template>
  2029 
  1925 
  2030 <xsl:template match="td">
  1926 <xsl:template match="td">
  2043     <xsl:if test="@class">
  1939     <xsl:if test="@class">
  2044       <xsl:attribute name="class">
  1940       <xsl:attribute name="class">
  2045         <xsl:value-of select="@class"/>
  1941         <xsl:value-of select="@class"/>
  2046       </xsl:attribute>
  1942       </xsl:attribute>
  2047     </xsl:if>
  1943     </xsl:if>
       
  1944     <xsl:if test="@scope">
       
  1945       <xsl:attribute name="scope">
       
  1946         <xsl:value-of select="@scope"/>
       
  1947       </xsl:attribute>
       
  1948     </xsl:if>
  2048     <xsl:apply-templates/>
  1949     <xsl:apply-templates/>
  2049   </th>
  1950   </th>
  2050 </xsl:template>
  1951 </xsl:template>
  2051 
  1952 
  2052 <xsl:template match="dl">
  1953 <xsl:template match="dl">