Loo SQL Serveris andmetabeli reisi kohta.
CREATE TABLE reis(
id int primary key identity(1,1),
lennujaam varchar(50),
transport varchar(15),
lennu_kestus decimal(4),
hotell varchar(50),
lennufirma_kood char(2) unique,
lahkumise_riik varchar(50),
saabumise_riik varchar(50));
SELECT * FROM reis;
Konverteeri SQL –>XML faili.
SELECT
(
SELECT
lennujaam AS '@nimi',
lennufirma_kood AS '@kood',
(
SELECT
hotell AS '@hotellnimi',
transport AS 'transport',
lennu_kestus AS 'kestus',
hind
FOR XML PATH('hotel'), TYPE
),
(
SELECT
lahkumise_riik AS 'lahkumine',
saabumise_riik AS 'saabumine'
FOR XML PATH('riigid'), TYPE
)
FOR XML PATH('lennujaam'), TYPE
)
FROM reis FOR XML PATH('reis'), ROOT('reisid');

Loome projekti Visual Studio jaoks ja lisame Reis.xml xml-faili.
Seejärel lisame koodi ReisParing.xslt jaoks.
Visual Studio
ReisParing.xslt
Kuvada iga reisi sihtkoht pealkirjana, kasutades <h1>.
<h1>
<xsl:value-of select="lennujaam/riigid/saabumine"/>
(<xsl:value-of select="lennujaam/@kood"/>)
</h1>
Komponendid peavad olema kuvatud täpploeteluna (<ul>).
<ul>
<li>
Transport: <xsl:value-of select="lennujaam/hotel/transport"/>
</li>
<li>
Hotellnimi: <xsl:value-of select="lennujaam/hotel/@hotellnimi"/>
</li>
<li>
Tarnid: <xsl:value-of select="lennujaam/hotel/@tarnid"/>
</li>
<li>
Lennu hind: <xsl:value-of select="lennujaam/hotel/lennu_hind"/>
</li>
<li>
Hotelli hind: <xsl:value-of select="lennujaam/hotel/hotelli_hind"/>
</li>
<li>
Muud kulud: <xsl:value-of select="lennujaam/hotel/muud_kulud"/>
</li>
<li>
Lahkumine riik:<xsl:value-of select="lennujaam/riigid/lahkumine"/>
</li>
<li>
Saabumine riik:<xsl:value-of select="lennujaam/riigid/saabumine"/>
</li>
</ul>
Kollase taustaga väljad
<li>
<span class="yellow">
Lennu hind: <xsl:value-of select="lennujaam/hotel/lennu_hind"/>
</span>
</li>
<li>
<span class="yellow">
Hotelli hind: <xsl:value-of select="lennujaam/hotel/hotelli_hind"/>
</span>
</li>
<li>
<span class="yellow">
Muud kulud: <xsl:value-of select="lennujaam/hotel/muud_kulud"/>
</span>
</li>
Lisa oma tingimus (nt reisi hind või eriline soovitus peab olema esile tõstetud teatud tingimustel). Iga reis, mille kogumaksumus ületab 3000, on punane.
<xsl:choose>
<xsl:when test="$kokku > 3000">
<span class="kallis">
Koguhind: <xsl:value-of select="format-number($kokku,'0.00')"/>
</span>
</xsl:when>
<xsl:otherwise>
Koguhind: <xsl:value-of select="format-number($kokku,'0.00')"/>
</xsl:otherwise>
</xsl:choose>
Kogumaksumus
<xsl:variable name="lendu" select="number(lennujaam/hotel/lennu_hind)"/>
<xsl:variable name="hotell" select="number(lennujaam/hotel/hotelli_hind)"/>
<xsl:variable name="muu" select="number(lennujaam/hotel/muud_kulud)"/>
<xsl:variable name="kokku" select="$lendu + $hotell + $muu"/>
<xsl:choose>
<xsl:when test="$kokku > 3000">
<span class="kallis">
Koguhind: <xsl:value-of select="format-number($kokku,'0.00')"/>
</span>
</xsl:when>
<xsl:otherwise>
Koguhind: <xsl:value-of select="format-number($kokku,'0.00')"/>
</xsl:otherwise>
</xsl:choose>Filtreerimine lennu ja hotelli tärnide arvu järgi.
<!-- Filtreeri ja kuva ainult need reisid, mille transport sisaldab lennureisi. -->
<xsl:for-each select="reis[contains(lennujaam/hotel/transport, 'Lend')]">
<!-- Sorteeri kõik reisid vastavalt hotelli tärnidele -->
<xsl:sort select="number(lennujaam/hotel/@tarnid)" data-type="number" order="ascending"/>
<h2>Kõik andmed tabelina</h2>
<table>
<tr>
<th>Lennujaam</th>
<th>Kood</th>
<th>Hotell</th>
<th>Tärnid</th>
<th>Transport</th>
<th>Lennu hind</th>
<th>Hotelli hind</th>
<th>Muud kulud</th>
<th>Koguhind</th>
<th>Lahkumine</th>
<th>Saabumine</th>
</tr>
<xsl:for-each select="reis">
<xsl:variable name="lendu" select="number(lennujaam/hotel/lennu_hind)"/>
<xsl:variable name="hotell" select="number(lennujaam/hotel/hotelli_hind)"/>
<xsl:variable name="muu" select="number(lennujaam/hotel/muud_kulud)"/>
<xsl:variable name="kokku" select="$lendu + $hotell + $muu"/>
<tr>
<td>
<xsl:value-of select="lennujaam/@nimi"/>
</td>
<td>
<xsl:value-of select="lennujaam/@kood"/>
</td>
<td>
<xsl:value-of select="lennujaam/hotel/@hotellnimi"/>
</td>
<td>
<xsl:value-of select="lennujaam/hotel/@tarnid"/>
</td>
<td>
<xsl:value-of select="lennujaam/hotel/transport"/>
</td>
<td>
<xsl:value-of select="lennujaam/hotel/lennu_hind"/>
</td>
<td>
<xsl:value-of select="lennujaam/hotel/hotelli_hind"/>
</td>
<td>
<xsl:value-of select="lennujaam/hotel/muud_kulud"/>
</td>
<td>
<xsl:value-of select="format-number($kokku,'0.00')"/>
</td>
<td>
<xsl:value-of select="lennujaam/riigid/lahkumine"/>
</td>
<td>
<xsl:value-of select="lennujaam/riigid/saabumine"/>
</td>
</tr>
</xsl:for-each>
</table>
XML Schema

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="reisid">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="reis">
<xs:complexType>
<xs:sequence>
<xs:element name="lennujaam">
<xs:complexType>
<xs:sequence>
<xs:element name="hotel">
<xs:complexType>
<xs:sequence>
<xs:element name="transport" type="xs:string" />
<xs:element name="lennu_hind" type="xs:decimal" />
<xs:element name="hotelli_hind" type="xs:decimal" />
<xs:element name="muud_kulud" type="xs:decimal" />
<xs:element name="koguhind" type="xs:decimal" />
</xs:sequence>
<xs:attribute name="hotellnimi" type="xs:string" use="required" />
<xs:attribute name="tarnid" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="riigid">
<xs:complexType>
<xs:sequence>
<xs:element name="lahkumine" type="xs:string" />
<xs:element name="saabumine" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="nimi" type="xs:string" use="required" />
<xs:attribute name="kood" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

