<?xml version="1.0"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<!-- La declaración anterior indica que se trata de un documento XML
utilizando el Namespace para XSL.
La utilización de xsl:output permite que sea
enviado el tipo de documento (DTD) en cuestión, este
requerimiento es obligatorio para cualquier
información enviada por medios inalámbricos. -->
<xsl:output method="xml" doctype-public="-//WAPFORUM//DTD WML 1.1//EN"
media-type="text/vnd.wap.wml"
doctype-system="http://www.wapforum.org/DTD/wml_1.1.xml"
encoding="ISO-8859-1"/>
<!-- Este primer template indica que al ser encontrado
el elemento raíz del documento XML se inicie el contenido de
WML el cual es clausurado una vez hayan sido aplicado
los respectivos templates
-->
<xsl:template match="/">
<wml>
<xsl:apply-templates/>
</wml>
</xsl:template>
<!--
En el elemento productos se genera la pantalla
(CARD ) principal del aparato inalámbrico, debido a las
limitaciones de despliegue se definen tres links (A HREF )
hacia otras pantallas (CARD's ) que contendrán la
información correspondiente, dichos links son generados
através de un ciclo para XSL.
-->
<xsl:template match="productos">
<card id="main" title="Informacion de Productos">
<xsl:for-each select="producto">
<p>
<a href="#{nombre}" title="{nombre}">
<xsl:value-of select="nombre"/>
</a>
</p>
</xsl:for-each>
</card>
<xsl:apply-templates/>
</xsl:template>
<!-- Para cada elemento producto se define una pantalla
(CARD ) la cual es asignada el nombre de acuerdo
a los links definidos anteriormente.
Antes de clausurar la pantalla (CARD ) para cada
elemento se aplican los templates a los elementos
restantes.
-->
<xsl:template match="producto">
<card id="{nombre}" title="{nombre}>
<p>
<xsl:apply-templates/>
</p>
</card>
</xsl:template>
<!-- Imprime el valor del elemento nombre y un link
(A HREF ) hacia la pantalla principal (CARD )
-->
<xsl:template match="nombre">
<a title="Principal" href="#main">Regresar...</a><br/>
Nombre: <xsl:value-of select="."/> <br/>
</xsl:template>
<!-- Imprime el valor del elemento ubicación -->
<xsl:template match="ubicacion">
Ubicación: <xsl:value-of select="."/> <br/>
Disponible: <xsl:value-of select="@disponible"/> <br/>
</xsl:template>
<!-- Imprime el valor del elemento tiempoentrega -->
<xsl:template match="tiempoentrega">
Tiempo de Entrega: <xsl:value-of select="."/> <br/>
</xsl:template>
<!-- Imprime el valor del elemento costo, se debe agregar
el símbolo "$" para escapar el símbolo "$" presente en el
documento XML. (el uso de "$" en WML es reservado para
variables, por lo que enviar un solo "$" resulta en error
-->
<xsl:template match="costo">
Costo: $<xsl:value-of select="."/> <br/>
</xsl:template>
<!-- Se cierra el elemento raíz del documento XML -->
</xsl:stylesheet>
|