<?xml-stylesheet type="text/xsl" href="TaskList.xsl" ?>
<!-- MIGUEL I. GARCIA LOPEZ
======================
REPASO 2ª EVAL. LdM
-->
<TaskList User="Miguel"
xsd:noNamespaceSchemaLocation="TaskList.xsd"
xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" >
<Task Number="1">
<Subject>Programar Mastermind</Subject>
<Type>Hobby</Type>
<Priority>Low</Priority>
<State>Pending</State>
<Topics>
<Topic>MESCC</Topic>
<Topic>CP/M</Topic>
</Topics>
<Expenses />
<PhoneNumbers />
</Task>
<Task Number="2">
<Subject>Programar Minesweeper</Subject>
<Type>Hobby</Type>
<Priority>Low</Priority>
<State>In progress</State>
<Topics>
<Topic>MESCC</Topic>
<Topic>CP/M</Topic>
</Topics>
<Expenses />
<PhoneNumbers />
</Task>
<Task Number="3">
<Subject>Pintar el salón-comedor</Subject>
<Type>Home</Type>
<Priority>Medium</Priority>
<State>Pending</State>
<Topics />
<Expenses />
<PhoneNumbers />
</Task>
<Task Number="4">
<Subject>Arreglar ducha</Subject>
<Type>Home</Type>
<Priority>High</Priority>
<State>In progress</State>
<Topics />
<Expenses>
<Expense Concept="Alcachofa">5.75</Expense>
</Expenses>
<PhoneNumbers />
</Task>
<Task Number="5">
<Subject>Hacer la compra semanal</Subject>
<Type>Home</Type>
<Priority>High</Priority>
<State>Pending</State>
<Topics />
<Expenses>
<Expense Concept="Mercadona">100</Expense>
<Expense Concept="Carrefour">50</Expense>
</Expenses>
<PhoneNumbers />
</Task>
<Task Number="6">
<Subject>Cumpleaños Tía Salustiana</Subject>
<Type>Family</Type>
<Priority>Low</Priority>
<State>Pending</State>
<Topics>
<Topic>Regalo</Topic>
<Topic>Tarjeta</Topic>
</Topics>
<Expenses>
<Expense>5</Expense>
</Expenses>
<PhoneNumbers>
<PhoneNumber>94333888</PhoneNumber>
</PhoneNumbers>
</Task>
<Task Number="7">
<Subject>Cortarme el pelo</Subject>
<Type>Other</Type>
<Priority>High</Priority>
<State>Done</State>
<Topics>
<Topic>A lo afro</Topic>
</Topics>
<Expenses>
<Expense>20</Expense>
</Expenses>
<PhoneNumbers />
</Task>
</TaskList>
---------------------------
<?xml version="1.0" encoding="utf-8" ?>
<!-- MIGUEL I. GARCIA LOPEZ
======================
REPASO 2ª EVAL. LdM
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" >
<!-- Tipo: TpType - Tipo de tarea -->
<xsd:simpleType name="TpType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Hobby" />
<xsd:enumeration value="Home" />
<xsd:enumeration value="Family" />
<xsd:enumeration value="Work" />
<xsd:enumeration value="Other" />
</xsd:restriction>
</xsd:simpleType>
<!-- Tipo: TpPriority - Prioridad de tarea -->
<xsd:simpleType name="TpPriority">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Low" />
<xsd:enumeration value="Medium" />
<xsd:enumeration value="High" />
</xsd:restriction>
</xsd:simpleType>
<!-- Tipo: TpState - Estado de tarea -->
<xsd:simpleType name="TpState">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Pending" />
<xsd:enumeration value="In progress" />
<xsd:enumeration value="Done" />
</xsd:restriction>
</xsd:simpleType>
<!-- Tipo: TpTopic - Topico, máximo 16 carácteres -->
<xsd:simpleType name="TpTopic">
<xsd:restriction base="xsd:token">
<xsd:maxLength value="16" />
</xsd:restriction>
</xsd:simpleType>
<!-- Tipo: TpExpense - Gasto -->
<xsd:complexType name="TpExpense">
<xsd:simpleContent>
<xsd:extension base="xsd:decimal">
<xsd:attribute name="Concept" type="xsd:string" use="optional" />
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<!-- Tipo: TpPhone - Teléfono -->
<xsd:simpleType name="TpPhone">
<xsd:restriction base="xsd:positiveInteger" />
</xsd:simpleType>
<!-- -->
<xsd:element name="TaskList">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Task" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Subject" type="xsd:string" />
<xsd:element name="Type" type="TpType" />
<xsd:element name="Priority" type="TpPriority" />
<xsd:element name="State" type="TpState" />
<xsd:element name="Topics">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Topic" type="TpTopic" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Expenses">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Expense" type="TpExpense" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="PhoneNumbers">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="PhoneNumber" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="Number" type="xsd:positiveInteger" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="User" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
-----------------------
<?xml version="1.0" encoding="utf-8" ?>
<!-- MIGUEL I. GARCIA LOPEZ
======================
REPASO 2ª EVAL. LdM
-->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
<xsl:template match="/">
<html>
<head>
<title><xsl:value-of select="TaskList/@User" />'s Task List</title>
</head>
<body style="font-family:'Consolas'">
<h1><xsl:value-of select="TaskList/@User" />'s Task List</h1>
<p>There are <xsl:value-of select="count(/TaskList/Task)" /> tasks:</p>
<table style="border-width:2px">
<tr style="background-color:blue">
<th>Task Number</th>
<th>Subject</th>
<th>Type</th>
<th>Priority</th>
<th>State</th>
<th>Topics</th>
<th>Expenses</th>
<th>Phone Numbers</th>
</tr>
<xsl:for-each select="/TaskList">
<xsl:apply-templates>
<xsl:sort select="Priority" />
</xsl:apply-templates>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="Task">
<tr>
<td style="text-align:center"><xsl:value-of select="@Number"/></td>
<xsl:apply-templates />
</tr>
</xsl:template>
<xsl:template match="Subject">
<td><xsl:value-of select="."/></td>
</xsl:template>
<xsl:template match="Type">
<td><xsl:value-of select="."/></td>
</xsl:template>
<xsl:template match="Priority">
<xsl:choose>
<xsl:when test=".='High'">
<td style="background-color:red"><xsl:value-of select="."/></td>
</xsl:when>
<xsl:when test=".='Low'">
<td style="background-color:green"><xsl:value-of select="."/></td>
</xsl:when>
<xsl:otherwise>
<td style="background-color:yellow"><xsl:value-of select="."/></td>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="State">
<xsl:choose>
<xsl:when test=".='Pending'">
<td style="background-color:red"><xsl:value-of select="."/></td>
</xsl:when>
<xsl:when test=".='Done'">
<td style="background-color:green"><xsl:value-of select="."/></td>
</xsl:when>
<xsl:otherwise>
<td style="background-color:yellow"><xsl:value-of select="."/></td>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="Topics">
<td>
<xsl:for-each select=".">
<xsl:apply-templates />
</xsl:for-each>
</td>
</xsl:template>
<xsl:template match="Topic">
<xsl:value-of select="." />.
</xsl:template>
<xsl:template match="Expenses">
<td>
<xsl:for-each select=".">
<xsl:apply-templates />
</xsl:for-each>
</td>
</xsl:template>
<xsl:template match="Expense">
<xsl:if test="@Concept!=''"><xsl:value-of select="@Concept"/>:</xsl:if><xsl:value-of select="." />
</xsl:template>
<xsl:template match="PhoneNumbers">
<td><xsl:value-of select="."/></td>
</xsl:template>
</xsl:stylesheet>
No hay comentarios:
Publicar un comentario