Sille
From ICO wiki
Kodutöö aines "Võrgurakendused II: hajussüsteemide ehitamine"
Meeskond
- Andres Trei
- Lasse Kolkanen
Idee
XML/XSD/XSLT
XML
XML fail hoiab endas riigimaanteedel olevaid sildasid.
<?xml version="1.0" encoding="utf-8" ?> <Sillad> <Sild Id="1" Ehitusaasta="2012"> <Nimi Nr="799">Sauga</Nimi> <Takistus>Sauga jõgi</Takistus> <Asukoht KoordX="527056" KoordY="6473072"> <TeeNimetus Nr="60">Pärnu-Lihula</TeeNimetus> <Algusest Ühik="m">2386</Algusest> <Maakond>Pärnu</Maakond> </Asukoht> <Ylevaatused> <Järgmine>2016</Järgmine> <Viimane></Viimane> </Ylevaatused> <Kandevõime Ühik="t" Väärtus="800">N-30/NK-80</Kandevõime> <Sillaparameetrid> <Pikkus Ühik="m">70</Pikkus> <Laius Ühik="m">16.35</Laius> <TeeLaius Ühik="m">9.4</TeeLaius> </Sillaparameetrid> <Liiklusandmed> <Liiklussagedus Ühik="sõidukit/24h" Loendusaasta="2014">4444</Liiklussagedus> <Jaotus Ühik="%"> <Sõidukid>85</Sõidukid> <Veokid>3</Veokid> <Autorongid>12</Autorongid> </Jaotus> </Liiklusandmed> <Indeksid> <SeisundiIndeks Hindamiseaasta="2012">99</SeisundiIndeks> <PontisIndeks Hindamiseaasta="2013">100</PontisIndeks> </Indeksid> </Sild> <Sild Id="2" Ehitusaasta="1939"> <Nimi Nr="89">Kiviloo</Nimi> <Takistus>Jõelähtme jõgi</Takistus> <Asukoht KoordX="571748" KoordY="6572314"> <TeeNimetus Nr="11125">Perila-Jäneda</TeeNimetus> <Algusest Ühik="m">5758</Algusest> <Maakond>Harju</Maakond> </Asukoht> <Ylevaatused> <Järgmine>2019</Järgmine> <Viimane>2015-10-09</Viimane> </Ylevaatused> <Kandevõime Ühik="t" Väärtus="600">N-13/NG-60</Kandevõime> <Sillaparameetrid> <Pikkus Ühik="m">17</Pikkus> <Laius Ühik="m">7.4</Laius> <TeeLaius Ühik="m">6</TeeLaius> </Sillaparameetrid> <Liiklusandmed> <Liiklussagedus Ühik="sõidukit/24h" Loendusaasta="2014">1214</Liiklussagedus> <Jaotus Ühik="%"> <Sõidukid>95</Sõidukid> <Veokid>2</Veokid> <Autorongid>3</Autorongid> </Jaotus> </Liiklusandmed> <Indeksid> <SeisundiIndeks Hindamiseaasta="2010">55</SeisundiIndeks> <PontisIndeks Hindamiseaasta="2010">56</PontisIndeks> </Indeksid> </Sild> <Sild Id="3" Ehitusaasta="1952"> <Nimi Nr="776">Majaka</Nimi> <Takistus>Majaka kanal</Takistus> <Asukoht KoordX="525662" KoordY="6428719"> <TeeNimetus Nr="19331">Rannametsa-Ikla</TeeNimetus> <Algusest Ühik="m">15758</Algusest> <Maakond>Pärnu</Maakond> </Asukoht> <Ylevaatused> <Järgmine>2017</Järgmine> <Viimane></Viimane> </Ylevaatused> <Kandevõime Ühik="t" Väärtus="600">N-13/NG-60</Kandevõime> <Sillaparameetrid> <Pikkus Ühik="m">4.6</Pikkus> <Laius Ühik="m">8.9</Laius> <TeeLaius Ühik="m">7</TeeLaius> </Sillaparameetrid> <Liiklusandmed> <Liiklussagedus Ühik="sõidukit/24h" Loendusaasta="2014">479</Liiklussagedus> <Jaotus Ühik="%"> <Sõidukid>95</Sõidukid> <Veokid>4</Veokid> <Autorongid>1</Autorongid> </Jaotus> </Liiklusandmed> <Indeksid> <SeisundiIndeks Hindamiseaasta="2006">65.7</SeisundiIndeks> <PontisIndeks Hindamiseaasta="2011">62</PontisIndeks> </Indeksid> </Sild> <Sild Id="4" Ehitusaasta="2015"> <Nimi Nr="1500">Jõhvi I</Nimi> <Takistus>Tapa-Narva raudtee</Takistus> <Asukoht KoordX="694100" KoordY="6584697"> <TeeNimetus Nr="3">Jõhvi-Tartu-Valga</TeeNimetus> <Algusest Ühik="m">2169</Algusest> <Maakond>Ida-Viru</Maakond> </Asukoht> <Ylevaatused> <Järgmine>2017</Järgmine> <Viimane></Viimane> </Ylevaatused> <Kandevõime Ühik="ts" Väärtus="2400">2400/200</Kandevõime> <Sillaparameetrid> <Pikkus Ühik="m">255.72</Pikkus> <Laius Ühik="m">9.4</Laius> <TeeLaius Ühik="m">7.5</TeeLaius> </Sillaparameetrid> <Liiklusandmed> <Liiklussagedus Ühik="sõidukit/24h" Loendusaasta="2014">16450</Liiklussagedus> <Jaotus Ühik="%"> <Sõidukid>98</Sõidukid> <Veokid>2</Veokid> <Autorongid>0</Autorongid> </Jaotus> </Liiklusandmed> <Indeksid> <SeisundiIndeks Hindamiseaasta="2013">100</SeisundiIndeks> <PontisIndeks Hindamiseaasta=""></PontisIndeks> </Indeksid> </Sild> </Sillad>
XSD
<?xml version="1.0" encoding="utf-8"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:simpleType name="pikkusühik"> <xs:restriction base="xs:string"> <xs:enumeration value="m"/> <xs:enumeration value="km"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="massiühik"> <xs:restriction base="xs:string"> <xs:enumeration value="kg"/> <xs:enumeration value="t"/> <xs:enumeration value="ts"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="sagedusühik"> <xs:restriction base="xs:string"> <xs:enumeration value="sõidukit/24h"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="protsent"> <xs:restriction base="xs:string"> <xs:enumeration value="%"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="maakond"> <xs:restriction base="xs:string"> <xs:enumeration value="Harju"/> <xs:enumeration value="Pärnu"/> <xs:enumeration value="Rapla"/> <xs:enumeration value="Valga"/> <xs:enumeration value="Ida-Viru"/> <!--jne--> </xs:restriction> </xs:simpleType> <xs:simpleType name="kandevõime"> <xs:restriction base="xs:string"> <xs:enumeration value="N-13/NG-60"/> <xs:enumeration value="N-30/NK-80"/> <xs:enumeration value="N-10/NG-30"/> <xs:enumeration value="N-8/NG-60"/> <xs:enumeration value="3600/240kN"/> <xs:enumeration value="260 kN/3x210 kN"/> <xs:enumeration value="2400/200"/> <xs:enumeration value="N-18/NG-60"/> <!--jne--> </xs:restriction> </xs:simpleType> <xs:simpleType name="aastad"> <xs:restriction base="xs:unsignedShort"> <xs:minInclusive value="1900"/> <xs:maxInclusive value="2100"/> </xs:restriction> </xs:simpleType> <xs:element name="Sillad"> <xs:complexType> <xs:sequence> <xs:element maxOccurs="unbounded" name="Sild"> <xs:complexType> <xs:sequence> <xs:element name="Nimi"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="Nr" type="xs:unsignedShort" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="Takistus"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="60"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="Asukoht"> <xs:complexType> <xs:sequence> <xs:element name="TeeNimetus"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="Nr" type="xs:unsignedShort" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="Algusest"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:unsignedInt"> <xs:attribute name="Ühik" type="pikkusühik" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="Maakond" type="maakond" /> </xs:sequence> <xs:attribute name="KoordX" type="xs:unsignedInt" use="required" /> <xs:attribute name="KoordY" type="xs:unsignedInt" use="required" /> </xs:complexType> </xs:element> <xs:element name="Ylevaatused"> <xs:complexType> <xs:sequence> <xs:element name="Järgmine" type="xs:unsignedShort" /> <xs:element name="Viimane" type="xs:date" nillable="true"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Kandevõime"> <xs:complexType> <xs:simpleContent> <xs:extension base="kandevõime"> <xs:attribute name="Ühik" type="massiühik" use="required" /> <xs:attribute name="Väärtus" type="xs:unsignedShort" use="optional" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="Sillaparameetrid"> <xs:complexType> <xs:sequence> <xs:element name="Pikkus"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="Ühik" type="pikkusühik" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="Laius"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="Ühik" type="pikkusühik" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="TeeLaius"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="Ühik" type="pikkusühik" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Liiklusandmed"> <xs:complexType> <xs:sequence> <xs:element name="Liiklussagedus"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:unsignedShort"> <xs:attribute name="Ühik" type="sagedusühik" use="required" /> <xs:attribute name="Loendusaasta" type="xs:unsignedShort" use="required" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="Jaotus"> <xs:complexType> <xs:sequence> <xs:element name="Sõidukid" type="xs:unsignedByte" /> <xs:element name="Veokid" type="xs:unsignedByte" /> <xs:element name="Autorongid" type="xs:unsignedByte" /> </xs:sequence> <xs:attribute name="Ühik" type="protsent" use="required" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Indeksid"> <xs:complexType> <xs:sequence> <xs:element name="SeisundiIndeks" nillable="true"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="Hindamiseaasta" type="aastad" use="optional" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> <xs:element name="PontisIndeks" nillable="true"> <xs:complexType> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="Hindamiseaasta" type="aastad" use="optional" /> </xs:extension> </xs:simpleContent> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="Id" type="xs:unsignedInt" use="required" /> <xs:attribute name="Ehitusaasta" type="aastad" use="required" /> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
XSLT
XSLT 1
<?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>Sille transformatsioon 1</title> </head> <body> <xsl:variable name="maakond" select="'Pärnu'"/> <p>Sillad mis asuvad <xsl:value-of select="$maakond"/> maakonnas</p> <xsl:for-each select="/Sillad/Sild"> <xsl:variable select="Nimi" name="Sillanimi"/> <!--<xsl:value-of select="$Sillanimi"/>--> <ul> <xsl:if test="Asukoht/Maakond = $maakond"> <li> <xsl:value-of select="$Sillanimi"/> <xsl:text> </xsl:text> </li> </xsl:if> </ul> </xsl:for-each> <xsl:variable name="sagedus" select="'500'"/> <p> Sillad mis asuvad <xsl:value-of select="$maakond"/> maakonnas ja kus liiklussagedus on väiksem kui <xsl:value-of select="$sagedus"/> autot/24h </p> <xsl:for-each select="/Sillad/Sild"> <xsl:variable select="Nimi" name="Sillanimi"/> <xsl:variable select="Liiklusandmed/Liiklussagedus" name="liiklussagedus"/> <ul> <xsl:if test="Asukoht/Maakond = $maakond and Liiklusandmed/Liiklussagedus < $sagedus"> <li> <xsl:value-of select="$Sillanimi"/> <xsl:text> - </xsl:text> <xsl:value-of select="$liiklussagedus"/> <xsl:text> autot 24/h </xsl:text> </li> </xsl:if> </ul> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>
XSLT 2
<?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>Sille transformatsioon 2</title> </head> <body> <xsl:variable name="kandevõime" select="'1000'"/> <xsl:variable name="osakaal" select="'10'"/> <p> Sillad mille kandevõime on rohkem kui <xsl:value-of select="$kandevõime"/> t või kus kandevõime on väiksem/võrdne <xsl:value-of select="$kandevõime"/> t ja autorongide osakaal on üle <xsl:value-of select="$osakaal"/>% </p> <xsl:for-each select="/Sillad/Sild"> <xsl:variable select="Kandevõime/@Väärtus" name="Kandevõime"/> <xsl:variable select="Nimi" name="Nimi"/> <xsl:variable select="Liiklusandmed/Jaotus/Autorongid" name="autorongid"/> <ul> <xsl:choose> <xsl:when test="$Kandevõime > $kandevõime"> <li> <xsl:value-of select="$Nimi"/> </li> </xsl:when> <xsl:when test="$Kandevõime <= $kandevõime and $autorongid > $osakaal"> <li> <xsl:value-of select="$Nimi"/> </li> </xsl:when> </xsl:choose> </ul> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>
XML retsensioon
Veebiteenus
Veebiteenuse retsensioon
Klientrakendus
Klientrakenduse retsensioon
Arendusprotsess
- 17.03.16 - wiki lehe loomine, XML, XSD
- 19.03.16 - XSLT