Sense Of Direction: Difference between revisions
From ICO wiki
Jump to navigationJump to search
Created page with "=Kodutöö aines "Võrgurakendused II: hajussüsteemide ehitamine"= ==Meeskond== *Ilja Andrejev *Aleksandr Babokin *Vladislav Lahtarin *Vladislav Kovaltsuk ==XML/XSD/XSLT==" |
|||
Line 7: | Line 7: | ||
*Vladislav Kovaltsuk | *Vladislav Kovaltsuk | ||
==XML/XSD/XSLT== | =XML/XSD/XSLT= | ||
==XML== | |||
<pre> | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<bussiLiinid> | |||
<bussiLiin liik="Ekspress" number="456TN"> | |||
<buss bussiLiik="tavaline"> | |||
<regMark>567TFL</regMark> | |||
<mark>Scania</mark> | |||
<mudel>68l</mudel> | |||
<maht yhik="kohta">45</maht> | |||
<varustus>Kohviautomaat, 220 V, A/C, internet, multimeedia, WC</varustus> | |||
</buss> | |||
<bussiJuht> | |||
<nimi><![CDATA[Jaan]]></nimi> | |||
<perekonnaNimi><![CDATA[Puu]]></perekonnaNimi> | |||
</bussiJuht> | |||
<marsruut> | |||
<lahteKoht valjumine="15:00"><![CDATA[Tallinn]]></lahteKoht> | |||
<sihtKoht saabumine="18:30"><![CDATA[Narva]]></sihtKoht> | |||
<soiduKestusTund yhik="h">3</soiduKestusTund> | |||
<soiduKestusMinut yhik="m">30</soiduKestusMinut> | |||
</marsruut> | |||
<suund><![CDATA[Tallinn - Narva]]></suund> | |||
<peatused> | |||
<peatus saabumine="17:30"><![CDATA[Kohtla-Jarve]]></peatus> | |||
<peatus saabumine="17:45"><![CDATA[Johvi]]></peatus> | |||
<peatus saabumine="18:05"><![CDATA[Sillamae]]></peatus> | |||
</peatused> | |||
<valjumisPaevad> | |||
<valjumisPaev soidab="true">E</valjumisPaev> | |||
<valjumisPaev soidab="true">T</valjumisPaev> | |||
<valjumisPaev soidab="true">K</valjumisPaev> | |||
<valjumisPaev soidab="true">N</valjumisPaev> | |||
<valjumisPaev soidab="true">R</valjumisPaev> | |||
<valjumisPaev soidab="false">L</valjumisPaev> | |||
<valjumisPaev soidab="false">P</valjumisPaev> | |||
</valjumisPaevad> | |||
</bussiLiin> | |||
<bussiLiin liik="Ekspress" number="456NT"> | |||
<buss bussiLiik="tavaline"> | |||
<regMark>567TFL</regMark> | |||
<mark>Scania</mark> | |||
<mudel>68l</mudel> | |||
<maht yhik="kohta">45</maht> | |||
<varustus>Kohviautomaat, 220 V, A/C, internet, multimeedia, WC</varustus> | |||
</buss> | |||
<bussiJuht> | |||
<nimi><![CDATA[Jaan]]></nimi> | |||
<perekonnaNimi><![CDATA[Puu]]></perekonnaNimi> | |||
</bussiJuht> | |||
<marsruut> | |||
<lahteKoht valjumine="19:00"><![CDATA[Narva]]></lahteKoht> | |||
<sihtKoht saabumine="22:30"><![CDATA[Tallinn]]></sihtKoht> | |||
<soiduKestusTund yhik="h">3</soiduKestusTund> | |||
<soiduKestusMinut yhik="m">30</soiduKestusMinut> | |||
</marsruut> | |||
<suund><![CDATA[Narva - Tallinn]]></suund> | |||
<peatused> | |||
<peatus saabumine="19:25"><![CDATA[Sillamae]]></peatus> | |||
<peatus saabumine="19:45"><![CDATA[Johvi]]></peatus> | |||
<peatus saabumine="20:00"><![CDATA[Kohtla-Jarve]]></peatus> | |||
</peatused> | |||
<valjumisPaevad> | |||
<valjumisPaev soidab="true">E</valjumisPaev> | |||
<valjumisPaev soidab="true">T</valjumisPaev> | |||
<valjumisPaev soidab="true">K</valjumisPaev> | |||
<valjumisPaev soidab="true">N</valjumisPaev> | |||
<valjumisPaev soidab="true">R</valjumisPaev> | |||
<valjumisPaev soidab="false">L</valjumisPaev> | |||
<valjumisPaev soidab="false">P</valjumisPaev> | |||
</valjumisPaevad> | |||
</bussiLiin> | |||
<bussiLiin liik="Ekspress" number="189TP"> | |||
<buss bussiLiik="tavaline"> | |||
<regMark>496DLY</regMark> | |||
<mark>Scania</mark> | |||
<mudel>40l</mudel> | |||
<maht yhik="kohta">40</maht> | |||
<varustus>Kohviautomaat, 220 V, A/C, internet, multimeedia, WC</varustus> | |||
</buss> | |||
<bussiJuht> | |||
<nimi><![CDATA[Jaak]]></nimi> | |||
<perekonnaNimi><![CDATA[Mand]]></perekonnaNimi> | |||
</bussiJuht> | |||
<marsruut> | |||
<lahteKoht valjumine="14:00"><![CDATA[Tallinn]]></lahteKoht> | |||
<sihtKoht saabumine="15:50"><![CDATA[Parnu]]></sihtKoht> | |||
<soiduKestusTund yhik="h">1</soiduKestusTund> | |||
<soiduKestusMinut yhik="m">50</soiduKestusMinut> | |||
</marsruut> | |||
<suund><![CDATA[Tallinn - Parnu]]></suund> | |||
<peatused> | |||
<peatus saabumine="14:20"><![CDATA[Vana-Paaskula]]></peatus> | |||
</peatused> | |||
<valjumisPaevad> | |||
<valjumisPaev soidab="false">E</valjumisPaev> | |||
<valjumisPaev soidab="false">T</valjumisPaev> | |||
<valjumisPaev soidab="false">K</valjumisPaev> | |||
<valjumisPaev soidab="false">N</valjumisPaev> | |||
<valjumisPaev soidab="true">R</valjumisPaev> | |||
<valjumisPaev soidab="true">L</valjumisPaev> | |||
<valjumisPaev soidab="true">P</valjumisPaev> | |||
</valjumisPaevad> | |||
</bussiLiin> | |||
<bussiLiin liik="Ekspress" number="189PT"> | |||
<buss bussiLiik="tavaline"> | |||
<regMark>496DLY</regMark> | |||
<mark>Scania</mark> | |||
<mudel>40l</mudel> | |||
<maht yhik="kohta">40</maht> | |||
<varustus>Kohviautomaat, 220 V, A/C, internet, multimeedia, WC</varustus> | |||
</buss> | |||
<bussiJuht> | |||
<nimi><![CDATA[Jaak]]></nimi> | |||
<perekonnaNimi><![CDATA[Mand]]></perekonnaNimi> | |||
</bussiJuht> | |||
<marsruut> | |||
<lahteKoht valjumine="16:30"><![CDATA[Parnu]]></lahteKoht> | |||
<sihtKoht saabumine="18:20"><![CDATA[Tallinn]]></sihtKoht> | |||
<soiduKestusTund yhik="h">1</soiduKestusTund> | |||
<soiduKestusMinut yhik="m">50</soiduKestusMinut> | |||
</marsruut> | |||
<suund><![CDATA[Parnu - Tallinn]]></suund> | |||
<peatused> | |||
<peatus saabumine="18:00"><![CDATA[Vana-Paaskula]]></peatus> | |||
</peatused> | |||
<valjumisPaevad> | |||
<valjumisPaev soidab="false">E</valjumisPaev> | |||
<valjumisPaev soidab="false">T</valjumisPaev> | |||
<valjumisPaev soidab="false">K</valjumisPaev> | |||
<valjumisPaev soidab="false">N</valjumisPaev> | |||
<valjumisPaev soidab="true">R</valjumisPaev> | |||
<valjumisPaev soidab="true">L</valjumisPaev> | |||
<valjumisPaev soidab="true">P</valjumisPaev> | |||
</valjumisPaevad> | |||
</bussiLiin> | |||
<bussiLiin liik="Ekspress" number="738TT"> | |||
<buss bussiLiik="tavaline"> | |||
<regMark>209BDI</regMark> | |||
<mark>Scania</mark> | |||
<mudel>55l</mudel> | |||
<maht yhik="kohta">50</maht> | |||
<varustus>Kohviautomaat, 220 V, A/C, internet, multimeedia, WC</varustus> | |||
</buss> | |||
<bussiJuht> | |||
<nimi><![CDATA[Raul]]></nimi> | |||
<perekonnaNimi><![CDATA[Kala]]></perekonnaNimi> | |||
</bussiJuht> | |||
<marsruut> | |||
<lahteKoht valjumine="17:00"><![CDATA[Tallinn]]></lahteKoht> | |||
<sihtKoht saabumine="19:30"><![CDATA[Tartu]]></sihtKoht> | |||
<soiduKestusTund yhik="h">2</soiduKestusTund> | |||
<soiduKestusMinut yhik="m">30</soiduKestusMinut> | |||
</marsruut> | |||
<suund><![CDATA[Tallinn - Tartu]]></suund> | |||
<peatused> | |||
<peatus saabumine="17:15"><![CDATA[Tallinna Lennujaam]]></peatus> | |||
</peatused> | |||
<valjumisPaevad> | |||
<valjumisPaev soidab="true">E</valjumisPaev> | |||
<valjumisPaev soidab="true">T</valjumisPaev> | |||
<valjumisPaev soidab="true">K</valjumisPaev> | |||
<valjumisPaev soidab="true">N</valjumisPaev> | |||
<valjumisPaev soidab="true">R</valjumisPaev> | |||
<valjumisPaev soidab="true">L</valjumisPaev> | |||
<valjumisPaev soidab="true">P</valjumisPaev> | |||
</valjumisPaevad> | |||
</bussiLiin> | |||
<bussiLiin liik="Ekspress" number="738TT"> | |||
<buss bussiLiik="tavaline"> | |||
<regMark>209BDI</regMark> | |||
<mark>Scania</mark> | |||
<mudel>55l</mudel> | |||
<maht yhik="kohta">50</maht> | |||
<varustus>Kohviautomaat, 220 V, A/C, internet, multimeedia, WC</varustus> | |||
</buss> | |||
<bussiJuht> | |||
<nimi><![CDATA[Raul]]></nimi> | |||
<perekonnaNimi><![CDATA[Kala]]></perekonnaNimi> | |||
</bussiJuht> | |||
<marsruut> | |||
<lahteKoht valjumine="20:00"><![CDATA[Tartu]]></lahteKoht> | |||
<sihtKoht saabumine="22:30"><![CDATA[Tallinn]]></sihtKoht> | |||
<soiduKestusTund yhik="h">2</soiduKestusTund> | |||
<soiduKestusMinut yhik="m">30</soiduKestusMinut> | |||
</marsruut> | |||
<suund><![CDATA[Tartu - Tallinn]]></suund> | |||
<peatused> | |||
<peatus saabumine="22:15"><![CDATA[Tallinna Lennujaam]]></peatus> | |||
</peatused> | |||
<valjumisPaevad> | |||
<valjumisPaev soidab="true">E</valjumisPaev> | |||
<valjumisPaev soidab="true">T</valjumisPaev> | |||
<valjumisPaev soidab="true">K</valjumisPaev> | |||
<valjumisPaev soidab="true">N</valjumisPaev> | |||
<valjumisPaev soidab="true">R</valjumisPaev> | |||
<valjumisPaev soidab="true">L</valjumisPaev> | |||
<valjumisPaev soidab="true">P</valjumisPaev> | |||
</valjumisPaevad> | |||
</bussiLiin> | |||
</bussiLiinid> | |||
</pre> | |||
==XSD== | |||
<pre> | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> | |||
<xs:element name="bussiLiinid"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element maxOccurs="unbounded" name="bussiLiin"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element name="buss"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element name="regMark" type="xs:string" /> | |||
<xs:element name="mark" type="xs:string" /> | |||
<xs:element name="mudel" type="xs:string" /> | |||
<xs:element name="maht"> | |||
<xs:complexType> | |||
<xs:simpleContent> | |||
<xs:extension base="xs:unsignedByte"> | |||
<xs:attribute name="yhik" type="xs:string" use="required" /> | |||
</xs:extension> | |||
</xs:simpleContent> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element minOccurs="0" name="varustus" type="xs:string" /> | |||
</xs:sequence> | |||
<xs:attribute name="bussiLiik" type="xs:string" use="optional" /> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="bussiJuht"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element name="nimi" type="xs:string" /> | |||
<xs:element name="perekonnaNimi" type="xs:string" /> | |||
</xs:sequence> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="marsruut"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element name="lahteKoht"> | |||
<xs:complexType> | |||
<xs:simpleContent> | |||
<xs:extension base="xs:string"> | |||
<xs:attribute name="valjumine" type="xs:string" use="required" /> | |||
</xs:extension> | |||
</xs:simpleContent> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="sihtKoht"> | |||
<xs:complexType> | |||
<xs:simpleContent> | |||
<xs:extension base="xs:string"> | |||
<xs:attribute name="saabumine" type="xs:string" use="required" /> | |||
</xs:extension> | |||
</xs:simpleContent> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="soiduKestusTund"> | |||
<xs:complexType> | |||
<xs:simpleContent> | |||
<xs:extension base="xs:unsignedByte"> | |||
<xs:attribute name="yhik" type="xs:string" use="required" /> | |||
</xs:extension> | |||
</xs:simpleContent> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="soiduKestusMinut"> | |||
<xs:complexType> | |||
<xs:simpleContent> | |||
<xs:extension base="xs:unsignedByte"> | |||
<xs:attribute name="yhik" type="xs:string" use="required" /> | |||
</xs:extension> | |||
</xs:simpleContent> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="suund" type="xs:string" /> | |||
<xs:element name="peatused"> | |||
<xs:complexType mixed="true"> | |||
<xs:sequence minOccurs="0"> | |||
<xs:element maxOccurs="unbounded" name="peatus"> | |||
<xs:complexType> | |||
<xs:simpleContent> | |||
<xs:extension base="xs:string"> | |||
<xs:attribute name="saabumine" type="xs:string" use="required" /> | |||
</xs:extension> | |||
</xs:simpleContent> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="valjumisPaevad"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element minOccurs="1" maxOccurs="7" name="valjumisPaev"> | |||
<xs:complexType> | |||
<xs:simpleContent> | |||
<xs:extension base="xs:string"> | |||
<xs:attribute name="soidab" type="xs:boolean" use="required" /> | |||
</xs:extension> | |||
</xs:simpleContent> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
<xs:attribute name="liik" type="xs:string" use="optional" /> | |||
<xs:attribute name="number" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:schema> | |||
</pre> | |||
==XSLT(html)== | |||
<pre> | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"> | |||
<xsl:output method="html" indent="yes" /> | |||
<xsl:template match="/"> | |||
<html> | |||
<head> | |||
<title>Bussiliini info</title> | |||
<style> | |||
body {background-color:FFFFCC;} | |||
table {width:700px; text-align: left; margin: auto; border: 3px solid black; font-size: large;} | |||
#bussiNo {text-align: center;} | |||
</style> | |||
</head> | |||
<body> | |||
<xsl:for-each select="bussiLiinid/bussiLiin"> | |||
<table> | |||
<tr> | |||
<th id="bussiNo" colspan="4"> | |||
<xsl:text>Bussiliini no. </xsl:text> | |||
<xsl:value-of select="@number"></xsl:value-of> | |||
<xsl:text> </xsl:text> | |||
<xsl:value-of select="@liik"></xsl:value-of> | |||
</th> | |||
</tr> | |||
<tr> | |||
<td> | |||
<xsl:text>Suund</xsl:text> | |||
</td> | |||
<td> | |||
<xsl:value-of select="suund"></xsl:value-of> | |||
</td> | |||
<td> | |||
<xsl:text>Kestus</xsl:text> | |||
</td> | |||
<td> | |||
<xsl:value-of select="marsruut/soiduKestusTund" /> | |||
<xsl:value-of select="marsruut/soiduKestusTund/@yhik" /> | |||
<xsl:text> </xsl:text> | |||
<xsl:value-of select="marsruut/soiduKestusMinut" /> | |||
<xsl:value-of select="marsruut/soiduKestusMinut/@yhik" /> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td> | |||
<xsl:text>Valjumine</xsl:text> | |||
</td> | |||
<td> | |||
<xsl:value-of select="marsruut/lahteKoht/@valjumine" /> | |||
</td> | |||
<td> | |||
<xsl:text>Saabumine</xsl:text> | |||
</td> | |||
<td> | |||
<xsl:value-of select="marsruut/sihtKoht/@saabumine" /> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td> | |||
<xsl:text>Valjumispaevad</xsl:text> | |||
</td> | |||
<td colspan="3"> | |||
<xsl:for-each select="valjumisPaevad/valjumisPaev"> | |||
<xsl:if test="@soidab = 'true'"> | |||
<xsl:value-of select="." /> | |||
<xsl:text> </xsl:text> | |||
</xsl:if> | |||
</xsl:for-each> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td> | |||
<xsl:text>Bussi mahutuvus</xsl:text> | |||
</td> | |||
<td colspan="3"> | |||
<xsl:value-of select="buss/maht" /> | |||
<xsl:text> </xsl:text> | |||
<xsl:value-of select="buss/maht/@yhik" /> | |||
</td> | |||
</tr> | |||
<xsl:if test="buss/varustus"> | |||
<tr> | |||
<td> | |||
<xsl:text>Varustus</xsl:text> | |||
</td> | |||
<td colspan="3"> | |||
<xsl:value-of select="buss/varustus" /> | |||
</td> | |||
</tr> | |||
</xsl:if> | |||
<xsl:if test="peatused/peatus"> | |||
<th colspan="2"> | |||
<xsl:text>Peatused</xsl:text> | |||
</th> | |||
<th> | |||
<xsl:text>Saabumine</xsl:text> | |||
</th> | |||
</xsl:if> | |||
<xsl:for-each select="peatused/peatus"> | |||
<tr> | |||
<td colspan="2"> | |||
<xsl:value-of select="." /> | |||
</td> | |||
<td> | |||
<xsl:value-of select="@saabumine" /> | |||
</td> | |||
</tr> | |||
</xsl:for-each> | |||
</table> | |||
<br /> | |||
</xsl:for-each> | |||
</body> | |||
</html> | |||
</xsl:template> | |||
</xsl:stylesheet> | |||
</pre> | |||
==XSLT(txt)== | |||
<pre> | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"> | |||
<xsl:output method="text" indent="yes" /> | |||
<xsl:template match="/"> | |||
<xsl:text>Bussijuhide tunniplaan</xsl:text> | |||
<xsl:for-each select="bussiLiinid/bussiLiin"> | |||
<xsl:text></xsl:text> | |||
<xsl:text></xsl:text> | |||
<xsl:value-of select="bussiJuht/nimi" /> | |||
<xsl:text></xsl:text> | |||
<xsl:value-of select="bussiJuht/perekonnaNimi" /> | |||
<xsl:text></xsl:text> | |||
<xsl:value-of select="suund" /> | |||
<xsl:text></xsl:text> | |||
<xsl:for-each select="valjumisPaevad/valjumisPaev"> | |||
<xsl:if test="@soidab = 'true'"> | |||
<xsl:value-of select="." /> | |||
<xsl:text></xsl:text> | |||
</xsl:if> | |||
</xsl:for-each> | |||
<xsl:text></xsl:text> | |||
<xsl:value-of select="marsruut/lahteKoht" /> | |||
<xsl:text></xsl:text> | |||
<xsl:value-of select="marsruut/lahteKoht/@valjumine" /> | |||
<xsl:text> -> </xsl:text> | |||
<xsl:for-each select="peatused/peatus"> | |||
<xsl:value-of select="." /> | |||
<xsl:text></xsl:text> | |||
<xsl:value-of select="@saabumine" /> | |||
<xsl:text> -> </xsl:text> | |||
</xsl:for-each> | |||
<xsl:value-of select="marsruut/sihtKoht" /> | |||
<xsl:text></xsl:text> | |||
<xsl:value-of select="marsruut/sihtKoht/@saabumine" /> | |||
</xsl:for-each> | |||
</xsl:template> | |||
</xsl:stylesheet> | |||
</pre> |
Revision as of 20:24, 15 March 2017
Kodutöö aines "Võrgurakendused II: hajussüsteemide ehitamine"
Meeskond
- Ilja Andrejev
- Aleksandr Babokin
- Vladislav Lahtarin
- Vladislav Kovaltsuk
XML/XSD/XSLT
XML
<?xml version="1.0" encoding="utf-8"?> <bussiLiinid> <bussiLiin liik="Ekspress" number="456TN"> <buss bussiLiik="tavaline"> <regMark>567TFL</regMark> <mark>Scania</mark> <mudel>68l</mudel> <maht yhik="kohta">45</maht> <varustus>Kohviautomaat, 220 V, A/C, internet, multimeedia, WC</varustus> </buss> <bussiJuht> <nimi><![CDATA[Jaan]]></nimi> <perekonnaNimi><![CDATA[Puu]]></perekonnaNimi> </bussiJuht> <marsruut> <lahteKoht valjumine="15:00"><![CDATA[Tallinn]]></lahteKoht> <sihtKoht saabumine="18:30"><![CDATA[Narva]]></sihtKoht> <soiduKestusTund yhik="h">3</soiduKestusTund> <soiduKestusMinut yhik="m">30</soiduKestusMinut> </marsruut> <suund><![CDATA[Tallinn - Narva]]></suund> <peatused> <peatus saabumine="17:30"><![CDATA[Kohtla-Jarve]]></peatus> <peatus saabumine="17:45"><![CDATA[Johvi]]></peatus> <peatus saabumine="18:05"><![CDATA[Sillamae]]></peatus> </peatused> <valjumisPaevad> <valjumisPaev soidab="true">E</valjumisPaev> <valjumisPaev soidab="true">T</valjumisPaev> <valjumisPaev soidab="true">K</valjumisPaev> <valjumisPaev soidab="true">N</valjumisPaev> <valjumisPaev soidab="true">R</valjumisPaev> <valjumisPaev soidab="false">L</valjumisPaev> <valjumisPaev soidab="false">P</valjumisPaev> </valjumisPaevad> </bussiLiin> <bussiLiin liik="Ekspress" number="456NT"> <buss bussiLiik="tavaline"> <regMark>567TFL</regMark> <mark>Scania</mark> <mudel>68l</mudel> <maht yhik="kohta">45</maht> <varustus>Kohviautomaat, 220 V, A/C, internet, multimeedia, WC</varustus> </buss> <bussiJuht> <nimi><![CDATA[Jaan]]></nimi> <perekonnaNimi><![CDATA[Puu]]></perekonnaNimi> </bussiJuht> <marsruut> <lahteKoht valjumine="19:00"><![CDATA[Narva]]></lahteKoht> <sihtKoht saabumine="22:30"><![CDATA[Tallinn]]></sihtKoht> <soiduKestusTund yhik="h">3</soiduKestusTund> <soiduKestusMinut yhik="m">30</soiduKestusMinut> </marsruut> <suund><![CDATA[Narva - Tallinn]]></suund> <peatused> <peatus saabumine="19:25"><![CDATA[Sillamae]]></peatus> <peatus saabumine="19:45"><![CDATA[Johvi]]></peatus> <peatus saabumine="20:00"><![CDATA[Kohtla-Jarve]]></peatus> </peatused> <valjumisPaevad> <valjumisPaev soidab="true">E</valjumisPaev> <valjumisPaev soidab="true">T</valjumisPaev> <valjumisPaev soidab="true">K</valjumisPaev> <valjumisPaev soidab="true">N</valjumisPaev> <valjumisPaev soidab="true">R</valjumisPaev> <valjumisPaev soidab="false">L</valjumisPaev> <valjumisPaev soidab="false">P</valjumisPaev> </valjumisPaevad> </bussiLiin> <bussiLiin liik="Ekspress" number="189TP"> <buss bussiLiik="tavaline"> <regMark>496DLY</regMark> <mark>Scania</mark> <mudel>40l</mudel> <maht yhik="kohta">40</maht> <varustus>Kohviautomaat, 220 V, A/C, internet, multimeedia, WC</varustus> </buss> <bussiJuht> <nimi><![CDATA[Jaak]]></nimi> <perekonnaNimi><![CDATA[Mand]]></perekonnaNimi> </bussiJuht> <marsruut> <lahteKoht valjumine="14:00"><![CDATA[Tallinn]]></lahteKoht> <sihtKoht saabumine="15:50"><![CDATA[Parnu]]></sihtKoht> <soiduKestusTund yhik="h">1</soiduKestusTund> <soiduKestusMinut yhik="m">50</soiduKestusMinut> </marsruut> <suund><![CDATA[Tallinn - Parnu]]></suund> <peatused> <peatus saabumine="14:20"><![CDATA[Vana-Paaskula]]></peatus> </peatused> <valjumisPaevad> <valjumisPaev soidab="false">E</valjumisPaev> <valjumisPaev soidab="false">T</valjumisPaev> <valjumisPaev soidab="false">K</valjumisPaev> <valjumisPaev soidab="false">N</valjumisPaev> <valjumisPaev soidab="true">R</valjumisPaev> <valjumisPaev soidab="true">L</valjumisPaev> <valjumisPaev soidab="true">P</valjumisPaev> </valjumisPaevad> </bussiLiin> <bussiLiin liik="Ekspress" number="189PT"> <buss bussiLiik="tavaline"> <regMark>496DLY</regMark> <mark>Scania</mark> <mudel>40l</mudel> <maht yhik="kohta">40</maht> <varustus>Kohviautomaat, 220 V, A/C, internet, multimeedia, WC</varustus> </buss> <bussiJuht> <nimi><![CDATA[Jaak]]></nimi> <perekonnaNimi><![CDATA[Mand]]></perekonnaNimi> </bussiJuht> <marsruut> <lahteKoht valjumine="16:30"><![CDATA[Parnu]]></lahteKoht> <sihtKoht saabumine="18:20"><![CDATA[Tallinn]]></sihtKoht> <soiduKestusTund yhik="h">1</soiduKestusTund> <soiduKestusMinut yhik="m">50</soiduKestusMinut> </marsruut> <suund><![CDATA[Parnu - Tallinn]]></suund> <peatused> <peatus saabumine="18:00"><![CDATA[Vana-Paaskula]]></peatus> </peatused> <valjumisPaevad> <valjumisPaev soidab="false">E</valjumisPaev> <valjumisPaev soidab="false">T</valjumisPaev> <valjumisPaev soidab="false">K</valjumisPaev> <valjumisPaev soidab="false">N</valjumisPaev> <valjumisPaev soidab="true">R</valjumisPaev> <valjumisPaev soidab="true">L</valjumisPaev> <valjumisPaev soidab="true">P</valjumisPaev> </valjumisPaevad> </bussiLiin> <bussiLiin liik="Ekspress" number="738TT"> <buss bussiLiik="tavaline"> <regMark>209BDI</regMark> <mark>Scania</mark> <mudel>55l</mudel> <maht yhik="kohta">50</maht> <varustus>Kohviautomaat, 220 V, A/C, internet, multimeedia, WC</varustus> </buss> <bussiJuht> <nimi><![CDATA[Raul]]></nimi> <perekonnaNimi><![CDATA[Kala]]></perekonnaNimi> </bussiJuht> <marsruut> <lahteKoht valjumine="17:00"><![CDATA[Tallinn]]></lahteKoht> <sihtKoht saabumine="19:30"><![CDATA[Tartu]]></sihtKoht> <soiduKestusTund yhik="h">2</soiduKestusTund> <soiduKestusMinut yhik="m">30</soiduKestusMinut> </marsruut> <suund><![CDATA[Tallinn - Tartu]]></suund> <peatused> <peatus saabumine="17:15"><![CDATA[Tallinna Lennujaam]]></peatus> </peatused> <valjumisPaevad> <valjumisPaev soidab="true">E</valjumisPaev> <valjumisPaev soidab="true">T</valjumisPaev> <valjumisPaev soidab="true">K</valjumisPaev> <valjumisPaev soidab="true">N</valjumisPaev> <valjumisPaev soidab="true">R</valjumisPaev> <valjumisPaev soidab="true">L</valjumisPaev> <valjumisPaev soidab="true">P</valjumisPaev> </valjumisPaevad> </bussiLiin> <bussiLiin liik="Ekspress" number="738TT"> <buss bussiLiik="tavaline"> <regMark>209BDI</regMark> <mark>Scania</mark> <mudel>55l</mudel> <maht yhik="kohta">50</maht> <varustus>Kohviautomaat, 220 V, A/C, internet, multimeedia, WC</varustus> </buss> <bussiJuht> <nimi><![CDATA[Raul]]></nimi> <perekonnaNimi><![CDATA[Kala]]></perekonnaNimi> </bussiJuht> <marsruut> <lahteKoht valjumine="20:00"><![CDATA[Tartu]]></lahteKoht> <sihtKoht saabumine="22:30"><![CDATA[Tallinn]]></sihtKoht> <soiduKestusTund yhik="h">2</soiduKestusTund> <soiduKestusMinut yhik="m">30</soiduKestusMinut> </marsruut> <suund><![CDATA[Tartu - Tallinn]]></suund> <peatused> <peatus saabumine="22:15"><![CDATA[Tallinna Lennujaam]]></peatus> </peatused> <valjumisPaevad> <valjumisPaev soidab="true">E</valjumisPaev> <valjumisPaev soidab="true">T</valjumisPaev> <valjumisPaev soidab="true">K</valjumisPaev> <valjumisPaev soidab="true">N</valjumisPaev> <valjumisPaev soidab="true">R</valjumisPaev> <valjumisPaev soidab="true">L</valjumisPaev> <valjumisPaev soidab="true">P</valjumisPaev> </valjumisPaevad> </bussiLiin> </bussiLiinid>
XSD
<?xml version="1.0" encoding="utf-8"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="bussiLiinid"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="bussiLiin"> <xs:complexType> <xs:sequence> <xs:element name="buss"> <xs:complexType> <xs:sequence> <xs:element name="regMark" type="xs:string" /> <xs:element name="mark" type="xs:string" /> <xs:element name="mudel" type="xs:string" /> <xs:element name="maht"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:unsignedByte"> <xs:attribute name="yhik" type="xs:string" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element minOccurs="0" name="varustus" type="xs:string" /> </xs:sequence> <xs:attribute name="bussiLiik" type="xs:string" use="optional" /> </xs:complexType> </xs:element> <xs:element name="bussiJuht"> <xs:complexType> <xs:sequence> <xs:element name="nimi" type="xs:string" /> <xs:element name="perekonnaNimi" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="marsruut"> <xs:complexType> <xs:sequence> <xs:element name="lahteKoht"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="valjumine" type="xs:string" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="sihtKoht"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="saabumine" type="xs:string" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="soiduKestusTund"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:unsignedByte"> <xs:attribute name="yhik" type="xs:string" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="soiduKestusMinut"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:unsignedByte"> <xs:attribute name="yhik" type="xs:string" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="suund" type="xs:string" /> <xs:element name="peatused"> <xs:complexType mixed="true"> <xs:sequence minOccurs="0"> <xs:element maxOccurs="unbounded" name="peatus"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="saabumine" type="xs:string" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="valjumisPaevad"> <xs:complexType> <xs:sequence> <xs:element minOccurs="1" maxOccurs="7" name="valjumisPaev"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="soidab" type="xs:boolean" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="liik" type="xs:string" use="optional" /> <xs:attribute name="number" type="xs:string" use="required" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
XSLT(html)
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"> <xsl:output method="html" indent="yes" /> <xsl:template match="/"> <html> <head> <title>Bussiliini info</title> <style> body {background-color:FFFFCC;} table {width:700px; text-align: left; margin: auto; border: 3px solid black; font-size: large;} #bussiNo {text-align: center;} </style> </head> <body> <xsl:for-each select="bussiLiinid/bussiLiin"> <table> <tr> <th id="bussiNo" colspan="4"> <xsl:text>Bussiliini no. </xsl:text> <xsl:value-of select="@number"></xsl:value-of> <xsl:text> </xsl:text> <xsl:value-of select="@liik"></xsl:value-of> </th> </tr> <tr> <td> <xsl:text>Suund</xsl:text> </td> <td> <xsl:value-of select="suund"></xsl:value-of> </td> <td> <xsl:text>Kestus</xsl:text> </td> <td> <xsl:value-of select="marsruut/soiduKestusTund" /> <xsl:value-of select="marsruut/soiduKestusTund/@yhik" /> <xsl:text> </xsl:text> <xsl:value-of select="marsruut/soiduKestusMinut" /> <xsl:value-of select="marsruut/soiduKestusMinut/@yhik" /> </td> </tr> <tr> <td> <xsl:text>Valjumine</xsl:text> </td> <td> <xsl:value-of select="marsruut/lahteKoht/@valjumine" /> </td> <td> <xsl:text>Saabumine</xsl:text> </td> <td> <xsl:value-of select="marsruut/sihtKoht/@saabumine" /> </td> </tr> <tr> <td> <xsl:text>Valjumispaevad</xsl:text> </td> <td colspan="3"> <xsl:for-each select="valjumisPaevad/valjumisPaev"> <xsl:if test="@soidab = 'true'"> <xsl:value-of select="." /> <xsl:text> </xsl:text> </xsl:if> </xsl:for-each> </td> </tr> <tr> <td> <xsl:text>Bussi mahutuvus</xsl:text> </td> <td colspan="3"> <xsl:value-of select="buss/maht" /> <xsl:text> </xsl:text> <xsl:value-of select="buss/maht/@yhik" /> </td> </tr> <xsl:if test="buss/varustus"> <tr> <td> <xsl:text>Varustus</xsl:text> </td> <td colspan="3"> <xsl:value-of select="buss/varustus" /> </td> </tr> </xsl:if> <xsl:if test="peatused/peatus"> <th colspan="2"> <xsl:text>Peatused</xsl:text> </th> <th> <xsl:text>Saabumine</xsl:text> </th> </xsl:if> <xsl:for-each select="peatused/peatus"> <tr> <td colspan="2"> <xsl:value-of select="." /> </td> <td> <xsl:value-of select="@saabumine" /> </td> </tr> </xsl:for-each> </table> <br /> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>
XSLT(txt)
<?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"> <xsl:output method="text" indent="yes" /> <xsl:template match="/"> <xsl:text>Bussijuhide tunniplaan</xsl:text> <xsl:for-each select="bussiLiinid/bussiLiin"> <xsl:text></xsl:text> <xsl:text></xsl:text> <xsl:value-of select="bussiJuht/nimi" /> <xsl:text></xsl:text> <xsl:value-of select="bussiJuht/perekonnaNimi" /> <xsl:text></xsl:text> <xsl:value-of select="suund" /> <xsl:text></xsl:text> <xsl:for-each select="valjumisPaevad/valjumisPaev"> <xsl:if test="@soidab = 'true'"> <xsl:value-of select="." /> <xsl:text></xsl:text> </xsl:if> </xsl:for-each> <xsl:text></xsl:text> <xsl:value-of select="marsruut/lahteKoht" /> <xsl:text></xsl:text> <xsl:value-of select="marsruut/lahteKoht/@valjumine" /> <xsl:text> -> </xsl:text> <xsl:for-each select="peatused/peatus"> <xsl:value-of select="." /> <xsl:text></xsl:text> <xsl:value-of select="@saabumine" /> <xsl:text> -> </xsl:text> </xsl:for-each> <xsl:value-of select="marsruut/sihtKoht" /> <xsl:text></xsl:text> <xsl:value-of select="marsruut/sihtKoht/@saabumine" /> </xsl:for-each> </xsl:template> </xsl:stylesheet>