[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] some problems with my first XSL :(


Subject: [xsl] some problems with my first XSL :(
From: "Ana Yndurain" <yndu@xxxxxxxxxxxx>
Date: Thu, 21 Jul 2005 13:33:34 +0200

Hi!
First, sorry about my english :S

Ibm trying to do my first XSL to show some data from a XML created by
Metrics 1.3.5
(a XML example of that XML and my XSL are at the end of the mail)

My problem is that it only show Metrics/Cycle/Package values, and that is the
only thing that I donbt want!!! b9

Using oXygen program (debugger) I saw that the line <xsl:apply-templates
mode="cabecera"/> doesnbt jump for that templateb& and I donbt know why.

The strange thing is that my XSL was working perfectly, and suddenly it stoped
b9

Thanks for your help!!
Ana

Now in Spanish :D
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
--------------
Hola!
Estoy haciendo un XSL para mostrar unos resultados que tengo en un xml (creado
por el Metrics1.3.5) (os pongo el codigo de los dos abajo)

Mi problema es que lo unico que me aparece es el contenido de
Metrics/Cycle/Package, es decir, las xxx, que es justo lo C:nico que no quiero
que salga :(

Me he fijado que cuando llega a esta lC-nea (uso el debugger del editor
oXygen)
            <xsl:apply-templates mode="cabecera"/>
no salta a la plantilla cabecera, y no entiendo por que.

Alguien tiene alguna idea?? Lo curioso es que ayer me funcionaba, y quedaba un
html bastante chulo.
Le cambiC) el xml con el que estaba haciendo las pruebas, y no volviC3 a
funcionar :(

Os dejo debajo el formato del xml y el xsl que he creado.
Gracias!!

Ana

-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
--------------
My XSL:
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
--------------
<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

  <!-- NODO RAIZ -->
  <xsl:template match="/">
    <html>
      <!-- HOJA DE ESTILOS  -->
      <style type="text/css">
        .bannercell {
        border: 0px;
        padding: 0px;
        }
        body {
        margin-left: 10;
        margin-right: 10;
        font:normal 80% arial,helvetica,sanserif;
        background-color:#FFFFFF;
        color:#000000;
        }
        .a td {
        background: #efefef;
        }
        .b td {
        background: #fff;
        }
        th, td {
        text-align: left;
        vertical-align: top;
        }
        th {
        font-weight:bold;
        background: #ccc;
        color: black;
        }
        table, th, td {
        font-size:100%;
        border: none
        }
        table.log tr td, tr th {

        }
        h2 {
        font-weight:bold;
        font-size:140%;
        margin-bottom: 5;
        }
        h3 {
        font-size:100%;
        font-weight:bold;
        background: #525D76;
        color: white;
        text-decoration: none;
        padding: 5px;
        margin-right: 2px;
        margin-left: 2px;
        margin-bottom: 0;
        }
      </style>

      <head>
        <title>
              <!-- EJECUTA LA PLANTILLA CABECERA -->
          <xsl:apply-templates mode="cabecera"/>

        </title>
      </head>

      <body>
        <a name="top"></a>

        <hr size="1" width="100%" align="left"/>

        <!-- EJECUTA LA PLANTILLA METRICASCOMPROBADAS -->
        <xsl:apply-templates mode="metricascomprobadas"/>

        <hr size="1" width="100%" align="left"/>

        <!-- EJECUTA LA PLANTILLA LISTAMETRICAS -->
        <xsl:apply-templates mode="listametricas"/>

      </body>
    </html>
  </xsl:template>


  <!-- PLANTILLA CABECERA -->
  <!-- Parte del nodo Metrics (en /) y muestra la cabecera con algunos datos
-->
  <xsl:template match="Metrics" mode="cabecera">
    Metricas del proyecto: <xsl:value-of select="@scope"/>
  </xsl:template>


  <!-- PLANTILLA METRICASCOMPROBADAS -->
  <!-- Parte del nodo Metrics (en /) y muestra la lista de metricas
comprobadas -->
  <xsl:template match="Metrics" mode="metricascomprobadas">
    <h3>Metricas comprobadas en el proyecto <xsl:value-of
select="translate(@scope,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUV
WXYZ')"/></h3>
    <table class="log" border="0" cellpadding="5" cellspacing="2"
width="100%">
      <tr>
        <th>Metrica</th>
        <th>Descripcion</th>
        <th>Archivos con valores fuera de rango</th>
      </tr>
      <xsl:for-each select="Metric">
        <xsl:sort  select="count(Values/Value[@inrange='false'])"
order="descending"/>
        <tr>
          <xsl:call-template name="alternated-row"></xsl:call-template>
          <!-- Enlace al listado de valores de la metrica correspondiente -->
          <td><a href="#f-{@id}"><xsl:value-of select="@id"/></a></td>
          <td><xsl:value-of select="@description"/></td>
          <td><xsl:value-of
select="count(Values/Value[@inrange='false'])"/></td>
        </tr>
      </xsl:for-each>

    </table>
  </xsl:template>

  <!-- PLANTILLA LISTAMETRICAS -->
  <xsl:template match="Metric" mode="listametricas">
    <a name="f-{@id}"></a>
    <h3>Metrica <xsl:value-of select="@id"/> (<xsl:value-of
select="@description"/>)</h3>
    <table class="log" border="0" cellpadding="5" cellspacing="2"
width="100%">
      <tr>
        <th>Archivo</th>
        <th>Valor</th>
      </tr>

      <xsl:for-each select="Values/Value[@inrange='false']">
        <tr>
          <xsl:call-template name="alternated-row"></xsl:call-template>
          <td><xsl:value-of select="@package"/><xsl:value-of
select="@source"/></td>
          <td><xsl:value-of select="@value"/></td>
        </tr>
      </xsl:for-each>

      <xsl:for-each select="Value">
        <tr>
          <td>Total</td>
          <td><xsl:value-of select="@value"/></td>
        </tr>
      </xsl:for-each>

    </table>
    <a href="#top">Back to top</a>
  </xsl:template>

  <!-- PLANTILLA QUE PONE CADA FILA DE LA TABLA DE UN COLOR -->
  <xsl:template name="alternated-row">
    <xsl:attribute name="class">
      <xsl:if test="position() mod 2 = 1">a</xsl:if>
      <xsl:if test="position() mod 2 = 0">b</xsl:if>
    </xsl:attribute>
  </xsl:template>

</xsl:stylesheet>
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
--------------
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
--------------
My XML
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
--------------
<?xml version="1.0" encoding="UTF-8"?>
<Metrics scope="p" type="Project" date="2005-07-20"
xmlns="http://metrics.sourceforge.net/2003/Metrics-First-Flat">
   <Cycle name="es.m.p.bu.vo et al" nodes="4" diameter="3">
      <Package>es.m.p.bu.vo</Package>
      <Package>es.m.p.ws</Package>
      <Package>es.m.p.bu.ma</Package>
      <Package>es.m.p.bu.ex</Package>
   </Cycle>
   <Cycle name="es.pr.m.p.ma et al" nodes="3" diameter="2">
      <Package>es.m.p.ma</Package>
      <Package>es.m.p.ma.tr</Package>
      <Package>es.m.p.ma.psp</Package>
   </Cycle>
   <Metric id = "NSM" description ="Number of Static Methods">
      <Values per = "type" total = "20" avg = "0,278" stddev = "0,961" max =
"7">
         <Value name="aa" source ="a.java" package ="es.m.p.bu.dao" value
="0"/>
         <Value name="bb" source ="b.java" package ="es.m.p.ma.psp" value
="0"/>
         <Value name="cc" source ="c.java" package ="es.m.p.ma.tr" value
="0"/>
         <Value name="dd" source ="d.java" package ="es.m.p.ma.tr" value
="0"/>
      </Values>
   </Metric>
   <Metric id = "TLOC" description ="Total Lines of Code" max ="-1">
      <Value value="5039"/>
   </Metric>
   <Metric id = "CA" description ="Afferent Coupling" max ="50">
      <Values per = "packageFragment" avg = "3,87" stddev = "7,165" max =
"34">
         <Value name="es.m.p.bu.vo" package ="es.m.p.bu.vo" value ="34"/>
         <Value name="es.m.p.bu.ex" package ="es.m.p.bu.ex" value ="10"/>
         <Value name="es.m.p.bu.dao" package ="es.m.p.bu.dao" value ="0"/>
         <Value name="es.m.p.ma.psp" package ="es.m.p.ma.psp" value ="0"/>
         <Value name="es.m.p.ma.tr" package ="es.m.p.ma.tr" value ="0"/>
      </Values>
   </Metric>
   <Metric id = "RMD" description ="Normalized Distance" max ="0,1">
      <Values per = "packageFragment" avg = "0,337" stddev = "0,299" max =
"0,85" maxinrange="false">
         <Value name="es.m.p.bu.vo" package ="es.m.p.bu.vo" value ="0,85"
inrange="false"/>
         <Value name="es.m.p.ws" package ="es.m.p.ws" value ="0,833"
inrange="false"/>
         <Value name="es.m.p.bu.vo" package ="es.m.p.bu.vo" value ="0,727"
inrange="false"/>
         <Value name="es.m.p.ma.tr" package ="es.m.p.ma.tr" value ="0"/>
      </Values>
   </Metric>
   <Metric id = "NOC" description ="Number of Classes" max ="-1">
      <Values per = "packageFragment" total = "72" avg = "3,13" stddev =
"2,173" max = "10" maxinrange="false">
         <Value name="es.m.p.bu.ex" package ="es.m.p.bu.ex" value ="10"
inrange="false"/>
         <Value name="es.m.p.bu.vo" package ="es.m.p.bu.vo" value ="6"
inrange="false"/>
         <Value name="es.m.p.ws" package ="es.m.p.ws" value ="6"
inrange="false"/>
         <Value name="es.m.p.ma.psp" package ="es.m.p.ma.psp" value ="1"
inrange="false"/>
      </Values>
   </Metric>
   <Metric id = "SIX" description ="Specialization Index" max ="-1">
      <Values per = "type" avg = "0,204" stddev = "0,587" max = "3"
maxinrange="false">
         <Value name="qq" source ="q.java" package ="es.m.p.web.action" value
="3" inrange="false"/>
         <Value name="ww" source ="w.java" package ="es.m.p.web.action" value
="3" inrange="false"/>
         <Value name="ee" source ="e.java" package ="es.m.p.bu.dao" value
="1,5" inrange="false"/>
         <Value name="rr" source ="r.java" package ="es.m.p.ma.tr" value ="0"
inrange="false"/>
      </Values>
   </Metric>
   <Metric id = "RMI" description ="Instability" max ="0,3">
      <Values per = "packageFragment" avg = "0,693" stddev = "0,316" max = "1"
maxinrange="false">
         <Value name="es.m.p.bu.ma.report" package ="es.m.p.bu.ma.report"
value ="1" inrange="false"/>
         <Value name="es.m.p.web.action" package ="es.m.p.web.action" value
="1" inrange="false"/>
         <Value name="es.m.p.ws" package ="es.m.p.ws" value ="0,167"/>
         <Value name="es.m.p.bu.vo" package ="es.m.p.bu.vo" value ="0,15"/>
      </Values>
   </Metric>
</Metrics>
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
--------------


Current Thread
Keywords