home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 April / CMCD0404.ISO / Software / Freeware / Programare / Sharpdev / 099bsetup.exe / memberscommon.xslt < prev    next >
Extensible Markup Language  |  2003-08-28  |  11KB  |  315 lines

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3.  
  4. <xsl:template match="/">
  5.       <xsl:apply-templates select="DOC.NET/assembly/module/namespace/*[@id=$id]"/>
  6. </xsl:template>
  7.  
  8. <xsl:template match="class">
  9.   <xsl:call-template name="type-members">
  10.     <xsl:with-param name="type">Class</xsl:with-param>
  11.   </xsl:call-template>
  12. </xsl:template>
  13.  
  14. <xsl:template match="interface">
  15.   <xsl:call-template name="type-members">
  16.     <xsl:with-param name="type">Interface</xsl:with-param>
  17.   </xsl:call-template>
  18. </xsl:template>
  19.  
  20. <xsl:template match="structure">
  21.   <xsl:call-template name="type-members">
  22.     <xsl:with-param name="type">Structure</xsl:with-param>
  23.   </xsl:call-template>
  24. </xsl:template>
  25.  
  26. <xsl:template name="get-big-member-plural">
  27.     <xsl:param name="member"/>
  28.     <xsl:choose>
  29.         <xsl:when test="$member='field'">Fields</xsl:when>
  30.         <xsl:when test="$member='property'">Properties</xsl:when>
  31.         <xsl:when test="$member='event'">Events</xsl:when>
  32.         <xsl:otherwise>Methods</xsl:otherwise>
  33.     </xsl:choose>
  34. </xsl:template>
  35.  
  36. <xsl:template name="get-small-member-plural">
  37.     <xsl:param name="member"/>
  38.     <xsl:choose>
  39.         <xsl:when test="$member='field'">fields</xsl:when>
  40.         <xsl:when test="$member='property'">properties</xsl:when>
  41.         <xsl:when test="$member='event'">events</xsl:when>
  42.         <xsl:otherwise>methods</xsl:otherwise>
  43.     </xsl:choose>
  44. </xsl:template>
  45.  
  46. <xsl:template name="public-static-section">
  47.     <xsl:param name="member"/>
  48.     <xsl:if test="*[local-name()=$member and @access='Public' and @contract='Static']">
  49.     <h3>
  50.         <xsl:text>Public Static (Shared) </xsl:text>
  51.         <xsl:call-template name="get-big-member-plural">
  52.             <xsl:with-param name="member" select="$member"/>
  53.         </xsl:call-template>                                                
  54.     </h3>
  55.     <table cellspacing="0">
  56.           <xsl:apply-templates select="*[local-name()=$member and @access='Public' and @contract='Static']">
  57.               <xsl:sort select="@name"/>
  58.           </xsl:apply-templates>
  59.     </table>
  60.     </xsl:if>
  61. </xsl:template>
  62.  
  63. <xsl:template name="protected-static-section">
  64.     <xsl:param name="member"/>
  65.     <xsl:if test="*[local-name()=$member and @access='Family' and @contract='Static']">
  66.     <h3>
  67.         <xsl:text>Protected Static (Shared) </xsl:text>
  68.         <xsl:call-template name="get-big-member-plural">
  69.             <xsl:with-param name="member" select="$member"/>
  70.         </xsl:call-template>                                                
  71.     </h3>
  72.     <table cellspacing="0">
  73.           <xsl:apply-templates select="*[local-name()=$member and @access='Family' and @contract='Static']">
  74.               <xsl:sort select="@name"/>
  75.           </xsl:apply-templates>
  76.     </table>
  77.     </xsl:if>
  78. </xsl:template>
  79.  
  80. <xsl:template name="protected-internal-static-section">
  81.     <xsl:param name="member"/>
  82.     <xsl:if test="*[local-name()=$member and @access='FamilyOrAssembly' and @contract='Static']">
  83.     <h3>
  84.         <xsl:text>Protected Internal Static (Shared) </xsl:text>
  85.         <xsl:call-template name="get-big-member-plural">
  86.             <xsl:with-param name="member" select="$member"/>
  87.         </xsl:call-template>                                                
  88.     </h3>
  89.     <table cellspacing="0">
  90.           <xsl:apply-templates select="*[local-name()=$member and @access='FamilyOrAssembly' and @contract='Static']">
  91.               <xsl:sort select="@name"/>
  92.           </xsl:apply-templates>
  93.     </table>
  94.     </xsl:if>
  95. </xsl:template>
  96.  
  97.  
  98. <xsl:template name="internal-static-section">
  99.     <xsl:param name="member"/>
  100.     <xsl:if test="*[local-name()=$member and @access='Assembly' and @contract='Static']">
  101.     <h3>
  102.         <xsl:text>Internal Static (Shared) </xsl:text>
  103.         <xsl:call-template name="get-big-member-plural">
  104.             <xsl:with-param name="member" select="$member"/>
  105.         </xsl:call-template>                                                
  106.     </h3>
  107.     <table cellspacing="0">
  108.           <xsl:apply-templates select="*[local-name()=$member and @access='Assembly' and @contract='Static']">
  109.               <xsl:sort select="@name"/>
  110.           </xsl:apply-templates>
  111.     </table>
  112.     </xsl:if>
  113. </xsl:template>
  114.  
  115. <xsl:template name="private-static-section">
  116.     <xsl:param name="member"/>
  117.     <xsl:if test="*[local-name()=$member and @access='Private' and @contract='Static']">
  118.     <h3>
  119.         <xsl:text>Private Static (Shared) </xsl:text>
  120.         <xsl:call-template name="get-big-member-plural">
  121.             <xsl:with-param name="member" select="$member"/>
  122.         </xsl:call-template>                                                
  123.     </h3>
  124.     <table cellspacing="0">
  125.           <xsl:apply-templates select="*[local-name()=$member and @access='Private' and @contract='Static']">
  126.               <xsl:sort select="@name"/>
  127.           </xsl:apply-templates>
  128.     </table>
  129.     </xsl:if>
  130. </xsl:template>
  131.  
  132. <xsl:template name="public-instance-section">
  133.     <xsl:param name="member"/>
  134.     <xsl:if test="*[local-name()=$member and @access='Public' and not(@contract='Static')]">
  135.     <h3>
  136.         <xsl:text>Public Instance </xsl:text>
  137.         <xsl:call-template name="get-big-member-plural">
  138.             <xsl:with-param name="member" select="$member"/>
  139.         </xsl:call-template>                                                
  140.     </h3>
  141.     <table cellspacing="0">
  142.           <xsl:apply-templates select="*[local-name()=$member and @access='Public' and not(@contract='Static')]">
  143.               <xsl:sort select="@name"/>
  144.           </xsl:apply-templates>
  145.     </table>
  146.     </xsl:if>
  147. </xsl:template>
  148.  
  149. <xsl:template name="protected-instance-section">
  150.     <xsl:param name="member"/>
  151.     <xsl:if test="*[local-name()=$member and @access='Family' and not(@contract='Static')]">
  152.     <h3>
  153.         <xsl:text>Protected Instance </xsl:text>
  154.         <xsl:call-template name="get-big-member-plural">
  155.             <xsl:with-param name="member" select="$member"/>
  156.         </xsl:call-template>                                                
  157.     </h3>
  158.     <table cellspacing="0">
  159.           <xsl:apply-templates select="*[local-name()=$member and @access='Family' and not(@contract='Static')]">
  160.               <xsl:sort select="@name"/>
  161.           </xsl:apply-templates>
  162.     </table>
  163.     </xsl:if>
  164. </xsl:template>
  165.  
  166. <xsl:template name="protected-internal-instance-section">
  167.     <xsl:param name="member"/>
  168.     <xsl:if test="*[local-name()=$member and @access='FamilyOrAssembly' and not(@contract='Static')]">
  169.     <h3>
  170.         <xsl:text>Protected Internal Instance </xsl:text>
  171.         <xsl:call-template name="get-big-member-plural">
  172.             <xsl:with-param name="member" select="$member"/>
  173.         </xsl:call-template>                                                
  174.     </h3>
  175.     <table cellspacing="0">
  176.           <xsl:apply-templates select="*[local-name()=$member and @access='FamilyOrAssembly' and not(@contract='Static')]">
  177.               <xsl:sort select="@name"/>
  178.           </xsl:apply-templates>
  179.     </table>
  180.     </xsl:if>
  181. </xsl:template>
  182.  
  183.  
  184. <xsl:template name="internal-instance-section">
  185.     <xsl:param name="member"/>
  186.     <xsl:if test="*[local-name()=$member and @access='Assembly' and not(@contract='Static')]">
  187.     <h3>
  188.         <xsl:text>Internal Instance </xsl:text>
  189.         <xsl:call-template name="get-big-member-plural">
  190.             <xsl:with-param name="member" select="$member"/>
  191.         </xsl:call-template>                                                
  192.     </h3>
  193.     <table cellspacing="0">
  194.           <xsl:apply-templates select="*[local-name()=$member and @access='Assembly' and not(@contract='Static')]">
  195.               <xsl:sort select="@name"/>
  196.           </xsl:apply-templates>
  197.     </table>
  198.     </xsl:if>
  199. </xsl:template>
  200.  
  201. <xsl:template name="private-instance-section">
  202.     <xsl:param name="member"/>
  203.     <xsl:if test="*[local-name()=$member and @access='Private' and not(@contract='Static')]">
  204.     <h3>
  205.         <xsl:text>Private Instance </xsl:text>
  206.         <xsl:call-template name="get-big-member-plural">
  207.             <xsl:with-param name="member" select="$member"/>
  208.         </xsl:call-template>                                                
  209.     </h3>
  210.     <table cellspacing="0">
  211.           <xsl:apply-templates select="*[local-name()=$member and @access='Private' and not(@contract='Static')]">
  212.               <xsl:sort select="@name"/>
  213.           </xsl:apply-templates>
  214.     </table>
  215.     </xsl:if>
  216. </xsl:template>
  217.  
  218. <xsl:template match="method[@declaringType]">
  219.     <xsl:variable name="name" select="@name"/>
  220.     <xsl:variable name="declaring-type-id" select="concat('T:', @declaringType)"/>
  221.     <tr VALIGN="top">
  222.         <xsl:choose>
  223.             <xsl:when test="//class[@id=$declaring-type-id]">
  224.                 <td width="50%">
  225.                     <a>
  226.                         <xsl:attribute name="href">
  227.                             <xsl:call-template name="get-filename-for-method">
  228.                                 <xsl:with-param name="method" select="//class[@id=$declaring-type-id]/method[@name=$name]"/>
  229.                             </xsl:call-template>                                                
  230.                         </xsl:attribute>
  231.                         <xsl:value-of select="@name"/>
  232.                     </a>
  233.                     <xsl:text> (inherited from </xsl:text>
  234.                     <b>
  235.                         <xsl:call-template name="get-datatype">
  236.                             <xsl:with-param name="datatype" select="@declaringType"/>
  237.                             <xsl:with-param name="namespace-name" select="../../@name"/>
  238.                         </xsl:call-template>
  239.                     </b>
  240.                     <xsl:text>)</xsl:text>
  241.                 </td>
  242.                 <td width="50%">
  243.                     <xsl:apply-templates select="//class[@id=$declaring-type-id]/method[@name=$name]/summary/node()" mode="slashdoc"/>
  244.                 </td>
  245.             </xsl:when>
  246.             <xsl:otherwise>
  247.                 <td width="50%">
  248.                     <xsl:value-of select="@name"/>
  249.                 </td>
  250.                 <td width="50%">
  251.                     <xsl:text>See the third party documentation for more information.</xsl:text>
  252.                 </td>
  253.             </xsl:otherwise>
  254.         </xsl:choose>
  255.     </tr>
  256. </xsl:template>
  257.  
  258. <xsl:template match="method[@declaringType and starts-with(@declaringType, 'System.')]">
  259.     <tr VALIGN="top">
  260.         <td width="50%">
  261.             <a>
  262.                 <xsl:attribute name="href">
  263.                     <xsl:call-template name="get-filename-for-system-method"/>
  264.                 </xsl:attribute>
  265.                 <xsl:value-of select="@name"/>
  266.             </a>
  267.             <xsl:text> (inherited from </xsl:text>
  268.             <b><xsl:value-of select="@declaringType"/></b>
  269.             <xsl:text>)</xsl:text>
  270.         </td>
  271.         <td width="50%">
  272.             <xsl:text>Select the method name to go to the Microsoft documentation.</xsl:text>
  273.         </td>
  274.     </tr>
  275. </xsl:template>
  276.  
  277. <xsl:template match="field|property|event|method[not(@declaringType)]">
  278.     <xsl:variable name="member" select="local-name()"/>
  279.     <xsl:variable name="name" select="@name"/>
  280.     <xsl:if test="not(preceding-sibling::*[local-name()=$member and @name=$name])">
  281.         <tr VALIGN="top">
  282.             <xsl:choose>
  283.                 <xsl:when test="following-sibling::*[local-name()=$member and @name=$name]">
  284.                     <td width="50%">
  285.                         <a>
  286.                             <xsl:attribute name="href">
  287.                                 <xsl:call-template name="get-filename-for-individual-member-overloads">
  288.                                     <xsl:with-param name="member"><xsl:value-of select="$member"/></xsl:with-param>
  289.                                 </xsl:call-template>
  290.                             </xsl:attribute>
  291.                             <xsl:value-of select="@name"/>
  292.                         </a>
  293.                     </td>
  294.                     <td width="50%">Overloaded. <xsl:apply-templates select="summary/node()" mode="slashdoc"/></td>
  295.                 </xsl:when>
  296.                 <xsl:otherwise>
  297.                     <td width="50%">
  298.                         <a>
  299.                             <xsl:attribute name="href">
  300.                                 <xsl:call-template name="get-filename-for-individual-member">
  301.                                     <xsl:with-param name="member"><xsl:value-of select="$member"/></xsl:with-param>
  302.                                 </xsl:call-template>
  303.                             </xsl:attribute>
  304.                             <xsl:value-of select="@name"/>
  305.                         </a>
  306.                     </td>
  307.                     <td width="50%"><xsl:apply-templates select="summary/node()" mode="slashdoc"/></td>
  308.                 </xsl:otherwise>
  309.             </xsl:choose>
  310.         </tr>
  311.     </xsl:if>
  312. </xsl:template>
  313.  
  314. </xsl:stylesheet>
  315.