[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: some problems with my first XSL :( [namespace in

Subject: RE: some problems with my first XSL :( [namespace in attributes]
From: "Ana Yndurain" <yndu@xxxxxxxxxxxx>
Date: Thu, 21 Jul 2005 18:17:46 +0200
list o fir 2007
OK! Thanks, it works!! I don't know how it could work before :S

BUT now I have other "little" problem. It works when I use the namespace m in
<xsl:template match="m:xxxx" ...> with direct attributes, but not when I use
Xpath inside.

For example, in next two templates "metricascomprobadas" & "listametricas"
when I select @scope, or @description, it works fine. BUT when I try to count
Values/Value, it doesn't work, or when I try to accede in
<xsl:for-each select="Values/Value">, it doesn't work.

I tried some options and any works.

How have I to use de namespace inside a xsl:template??

Here are my 2 templates

Thanks a lot!! You have made this day happier :D

Ana

....

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:m="http://metrics.sourceforge.net/2003/Metrics-First-Flat" >

....

<!-- PLANTILLA METRICASCOMPROBADAS -->
<!-- Parte del nodo Metrics (en /) y muestra la lista de metricas comprobadas
-->
<xsl:template match="m: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="m:Metric">
      <!-- <xsl:sort  select="count(Values/Value)" 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)"/></td>
      </tr>
    </xsl:for-each>
  </table>
</xsl:template>

<!-- PLANTILLA LISTAMETRICAS -->
<xsl:template match="m: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">
      <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>

-----Mensaje original-----
De: George Cristian Bina [mailto:george@xxxxxxx]
Enviado el: jueves, 21 de julio de 2005 16:21
Para: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Asunto: Re:  some problems with my first XSL :(

Dear Ana,

That looks like a complex task for the first XSL :).
The problem is that you match on a Metrics element from no namespace

<xsl:template match="Metrics" mode="cabecera">

and your document contains a Metrics element from the
http://metrics.sourceforge.net/2003/Metrics-First-Flat namespace

<Metrics scope="p" type="Project" date="2005-07-20"
xmlns="http://metrics.sourceforge.net/2003/Metrics-First-Flat">

You need something like
xmlns:m="http://metrics.sourceforge.net/2003/Metrics-First-Flat" in your
stylesheet and then use

<xsl:template match="m:Metrics" mode="cabecera">

Also you should change other references to elements from that namespace
in XPath expressions if any to use the prefix.

Best Regards,
George
---------------------------------------------------------------------
George Cristian Bina
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com


Ana Yndurain wrote:
> 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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.