home *** CD-ROM | disk | FTP | other *** search
/ Internet Magazine 2002 December / INTERNET97.ISO / pc / software / windows / building / xmlspy / setup44.exe / Data1.cab / F2465_OrgChart.xsl < prev    next >
Encoding:
Extensible Markup Language  |  2001-10-07  |  4.0 KB  |  192 lines

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet version="1.0" 
  3. xmlns:a="http://www.xmlspy.com/schemas/orgchart"
  4. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  5. xmlns:ipo="http://www.altova.com/IPO">
  6.     <xsl:output method="xml" version="1.0" encoding="ISO-8859-1" omit-xml-declaration="no" indent="no" media-type="text/html"/>
  7.     <!--XSL Stylesheet for generating simple Orgchart-->
  8.     <xsl:template match="a:OrgChart">
  9.         <html>
  10.             <head>
  11.                 <title>
  12.                     <xsl:value-of select="a:Name"/>
  13.                 </title>
  14.             </head>
  15.             <body>
  16.             <table width="100%">
  17.                 <tr>
  18.                     <td>
  19.                         <h1>
  20.                             <xsl:value-of select="a:Name"/>
  21.                         </h1>
  22.                     </td>
  23.                     <td align="right">
  24.                         <img alt="Logo">
  25.                             <xsl:attribute name="src">
  26.                                 <xsl:value-of select="a:CompanyLogo/@href" />
  27.                             </xsl:attribute>
  28.                         </img>
  29.                     </td>
  30.                 </tr>
  31.             </table>
  32.             <xsl:for-each select="a:Office">
  33.                 <h2>
  34.                     <xsl:value-of select="a:Name"/>
  35.                 </h2>
  36.                 <table width="70%">
  37.                     <tr valign="top">
  38.                         <td width="60%">
  39.                             <xsl:apply-templates select="a:Address"/>
  40.                         </td>
  41.                         <td width="40%">
  42.                             <table>
  43.                                 <tr>
  44.                                     <td>
  45.                                         <b><small>Phone:</small></b>
  46.                                     </td>
  47.                                     <td>
  48.                                         <xsl:value-of select="a:Phone"/>
  49.                                     </td>
  50.                                 </tr>
  51.                                 <tr>
  52.                                     <td>
  53.                                         <b><small>Fax:</small></b>
  54.                                     </td>
  55.                                     <td>
  56.                                         <xsl:value-of select="a:Fax"/>
  57.                                     </td>
  58.                                 </tr>
  59.                                 <tr>
  60.                                     <td>
  61.                                         <b><small>E-Mail:</small></b>
  62.                                     </td>
  63.                                     <td>
  64.                                         <xsl:apply-templates select="a:EMail"/>
  65.                                     </td>
  66.                                 </tr>
  67.                             </table>
  68.                         </td>
  69.                     </tr>
  70.                 </table>
  71.                 <small>
  72.                     <xsl:apply-templates select="a:Desc"/>
  73.                 </small>
  74.                 <table width="100%">
  75.                     <xsl:apply-templates select="a:Department"/>
  76.                 </table>
  77.             </xsl:for-each>
  78.             </body>
  79.         </html>
  80.     </xsl:template>
  81.     <xsl:template match="a:Address">
  82.         <table>
  83.             <tr>
  84.                 <td>
  85.                     <xsl:value-of select="ipo:street"/>
  86.                 </td>
  87.             </tr>
  88.         </table>
  89.         <table>
  90.             <tr>
  91.                 <td>
  92.                     <xsl:value-of select="ipo:postcode"/>
  93.                 </td>
  94.                 <td>
  95.                     <xsl:value-of select="ipo:city"/>
  96.                 </td>
  97.                 <td>
  98.                     <xsl:value-of select="ipo:state"/>
  99.                 </td>
  100.                 <td>
  101.                     <xsl:value-of select="ipo:zip"/>
  102.                 </td>
  103.             </tr>
  104.         </table>
  105.     </xsl:template>
  106.     <xsl:template match="a:Department">
  107.         <tr>
  108.             <td width="16">
  109.             </td>
  110.             <td>
  111.                 <h3>
  112.                     <xsl:value-of select="a:Name"/>
  113.                 </h3>
  114.                 <table width="100%">
  115.                     <tr bgcolor="#C0C0C0">
  116.                         <td width="20%">
  117.                             <b>First</b>
  118.                         </td>
  119.                         <td width="20%">
  120.                             <b>Last</b>
  121.                         </td>
  122.                         <td width="30%">
  123.                             <b>Title</b>
  124.                         </td>
  125.                         <td width="5%">
  126.                             <b>Ext</b>
  127.                         </td>
  128.                         <td width="25%">
  129.                             <b>E-Mail</b>
  130.                         </td>
  131.                     </tr>
  132.                     <xsl:apply-templates select="a:Person|a:VIP"/>
  133.                 </table>
  134.                 <br/>
  135.             </td>
  136.         </tr>
  137.     </xsl:template>
  138.     <xsl:template match="a:Person">
  139.         <tr bgcolor="#E0E0E0">
  140.             <td>
  141.                 <xsl:value-of select="a:First"/>
  142.             </td>
  143.             <td>
  144.                 <b>
  145.                     <xsl:value-of select="a:Last"/>
  146.                 </b>
  147.             </td>
  148.             <td>
  149.                 <xsl:value-of select="a:Title"/>
  150.             </td>
  151.             <td>
  152.                 <xsl:value-of select="a:PhoneExt"/>
  153.             </td>
  154.             <td>
  155.                 <xsl:apply-templates select="a:EMail"/>
  156.             </td>
  157.         </tr>
  158.     </xsl:template>
  159.     <xsl:template match="a:EMail">
  160.         <a>
  161.             <xsl:attribute name="href">mailto:<xsl:value-of select="."/></xsl:attribute>
  162.             <xsl:value-of select="."/>
  163.         </a>
  164.     </xsl:template>
  165.     <xsl:template match="a:VIP">
  166.         <tr bgcolor="yellow">
  167.             <td>
  168.                 <xsl:value-of select="a:First"/>
  169.             </td>
  170.             <td>
  171.                 <b>
  172.                     <xsl:value-of select="a:Last"/>
  173.                 </b>
  174.             </td>
  175.             <td>
  176.                 <xsl:value-of select="a:Title"/>
  177.             </td>
  178.             <td>
  179.                 <xsl:value-of select="a:PhoneExt"/>
  180.             </td>
  181.             <td>
  182.                 <xsl:apply-templates select="a:EMail"/>
  183.             </td>
  184.         </tr>
  185.     </xsl:template>
  186.     <xsl:template match="a:para">
  187.         <p>
  188.             <xsl:value-of select="."/>
  189.         </p>
  190.     </xsl:template>
  191. </xsl:stylesheet>
  192.