<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.itcollege.ee/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kroosild</id>
	<title>ICO wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.itcollege.ee/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kroosild"/>
	<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php/Special:Contributions/Kroosild"/>
	<updated>2026-05-09T08:57:59Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48871</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48871"/>
		<updated>2012-05-30T22:53:40Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Analüüs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Observation elemendist. &lt;br /&gt;
         //Igas Observation elemendis on iga jaama kohta üks StationObservation.&lt;br /&gt;
        public List&amp;lt;Observation&amp;gt; GetLast24Observations()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Annab antud Stationi ID viimased etteantud arvu sissekandeid (vaikimisi 24)&lt;br /&gt;
        public List&amp;lt;StationObservation&amp;gt; GetStationObservations(int stationID, int count = 24)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab hetkel kõige soojema ilmaga Stationi&lt;br /&gt;
        public Station GetWarmest()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab kõik Stationid (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStations()&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereLower(double temp)&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereHigherOrEqual(double temp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab arvu, kui suur on sademete hulk antud algus kuupäevast (k.a.) antud lõpukuupäevani (k.a) antud jaamas&lt;br /&gt;
        public double GetPercipitationsSum(DateTime begin, DateTime end, String stationName)&lt;br /&gt;
&lt;br /&gt;
===Teostus===&lt;br /&gt;
&lt;br /&gt;
Teenuse source code asub aadressil https://ehak.codeplex.com/SourceControl/list/changesets#&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
Klientrakendus on codeplexis.&lt;br /&gt;
Siin on selle toimimise video: http://youtu.be/X3JxYDn6958&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;br /&gt;
&lt;br /&gt;
===29.mai.2012 - teisipäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan pani andmed andmebaasi käsitsi (Exceli ja SQL lausete abiga) ning koostas analüüsis kirjeldatud meetodid.&lt;br /&gt;
&lt;br /&gt;
===31.mai.2012 - neljapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjanil valmis teenus ja klient - valmis õppejõule näitamiseks.&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48870</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48870"/>
		<updated>2012-05-30T22:52:26Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Klientrakendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Observation elemendist. &lt;br /&gt;
         //Igas Observation elemendis on iga jaama kohta üks StationObservation.&lt;br /&gt;
        public List&amp;lt;Observation&amp;gt; GetLast24Observations()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Annab antud Stationi ID viimased etteantud arvu sissekandeid (vaikimisi 24)&lt;br /&gt;
        public List&amp;lt;StationObservation&amp;gt; GetStationObservations(int stationID, int count = 24)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab hetkel kõige soojema ilmaga Stationi&lt;br /&gt;
        public Station GetWarmest()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab kõik Stationid (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStations()&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereLower(double temp)&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereHigher(double temp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab arvu, kui suur on sademete hulk antud algus kuupäevast (k.a.) antud lõpukuupäevani (k.a) antud jaamas&lt;br /&gt;
        public double GetPercipitationsSum(DateTime begin, DateTime end, String stationName)&lt;br /&gt;
&lt;br /&gt;
===Teostus===&lt;br /&gt;
&lt;br /&gt;
Teenuse source code asub aadressil https://ehak.codeplex.com/SourceControl/list/changesets#&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
Klientrakendus on codeplexis.&lt;br /&gt;
Siin on selle toimimise video: http://youtu.be/X3JxYDn6958&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;br /&gt;
&lt;br /&gt;
===29.mai.2012 - teisipäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan pani andmed andmebaasi käsitsi (Exceli ja SQL lausete abiga) ning koostas analüüsis kirjeldatud meetodid.&lt;br /&gt;
&lt;br /&gt;
===31.mai.2012 - neljapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjanil valmis teenus ja klient - valmis õppejõule näitamiseks.&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48869</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48869"/>
		<updated>2012-05-30T22:45:15Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* 29.mai.2012 - teisipäev */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Observation elemendist. &lt;br /&gt;
         //Igas Observation elemendis on iga jaama kohta üks StationObservation.&lt;br /&gt;
        public List&amp;lt;Observation&amp;gt; GetLast24Observations()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Annab antud Stationi ID viimased etteantud arvu sissekandeid (vaikimisi 24)&lt;br /&gt;
        public List&amp;lt;StationObservation&amp;gt; GetStationObservations(int stationID, int count = 24)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab hetkel kõige soojema ilmaga Stationi&lt;br /&gt;
        public Station GetWarmest()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab kõik Stationid (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStations()&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereLower(double temp)&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereHigher(double temp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab arvu, kui suur on sademete hulk antud algus kuupäevast (k.a.) antud lõpukuupäevani (k.a) antud jaamas&lt;br /&gt;
        public double GetPercipitationsSum(DateTime begin, DateTime end, String stationName)&lt;br /&gt;
&lt;br /&gt;
===Teostus===&lt;br /&gt;
&lt;br /&gt;
Teenuse source code asub aadressil https://ehak.codeplex.com/SourceControl/list/changesets#&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;br /&gt;
&lt;br /&gt;
===29.mai.2012 - teisipäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan pani andmed andmebaasi käsitsi (Exceli ja SQL lausete abiga) ning koostas analüüsis kirjeldatud meetodid.&lt;br /&gt;
&lt;br /&gt;
===31.mai.2012 - neljapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjanil valmis teenus ja klient - valmis õppejõule näitamiseks.&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48837</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48837"/>
		<updated>2012-05-29T00:37:03Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Teostus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Observation elemendist. &lt;br /&gt;
         //Igas Observation elemendis on iga jaama kohta üks StationObservation.&lt;br /&gt;
        public List&amp;lt;Observation&amp;gt; GetLast24Observations()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Annab antud Stationi ID viimased etteantud arvu sissekandeid (vaikimisi 24)&lt;br /&gt;
        public List&amp;lt;StationObservation&amp;gt; GetStationObservations(int stationID, int count = 24)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab hetkel kõige soojema ilmaga Stationi&lt;br /&gt;
        public Station GetWarmest()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab kõik Stationid (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStations()&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereLower(double temp)&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereHigher(double temp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab arvu, kui suur on sademete hulk antud algus kuupäevast (k.a.) antud lõpukuupäevani (k.a) antud jaamas&lt;br /&gt;
        public double GetPercipitationsSum(DateTime begin, DateTime end, String stationName)&lt;br /&gt;
&lt;br /&gt;
===Teostus===&lt;br /&gt;
&lt;br /&gt;
Teenuse source code asub aadressil https://ehak.codeplex.com/SourceControl/list/changesets#&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;br /&gt;
&lt;br /&gt;
===29.mai.2012 - teisipäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan pani andmed andmebaasi käsitsi (Exceli ja SQL lausete abiga) ning koostas analüüsis kirjeldatud meetodid.&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48836</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48836"/>
		<updated>2012-05-29T00:36:49Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Teostus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Observation elemendist. &lt;br /&gt;
         //Igas Observation elemendis on iga jaama kohta üks StationObservation.&lt;br /&gt;
        public List&amp;lt;Observation&amp;gt; GetLast24Observations()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Annab antud Stationi ID viimased etteantud arvu sissekandeid (vaikimisi 24)&lt;br /&gt;
        public List&amp;lt;StationObservation&amp;gt; GetStationObservations(int stationID, int count = 24)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab hetkel kõige soojema ilmaga Stationi&lt;br /&gt;
        public Station GetWarmest()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab kõik Stationid (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStations()&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereLower(double temp)&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereHigher(double temp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab arvu, kui suur on sademete hulk antud algus kuupäevast (k.a.) antud lõpukuupäevani (k.a) antud jaamas&lt;br /&gt;
        public double GetPercipitationsSum(DateTime begin, DateTime end, String stationName)&lt;br /&gt;
&lt;br /&gt;
===Teostus===&lt;br /&gt;
&lt;br /&gt;
Teenus source code asub aadressil https://ehak.codeplex.com/SourceControl/list/changesets#&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;br /&gt;
&lt;br /&gt;
===29.mai.2012 - teisipäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan pani andmed andmebaasi käsitsi (Exceli ja SQL lausete abiga) ning koostas analüüsis kirjeldatud meetodid.&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48835</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48835"/>
		<updated>2012-05-29T00:36:37Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Teostus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Observation elemendist. &lt;br /&gt;
         //Igas Observation elemendis on iga jaama kohta üks StationObservation.&lt;br /&gt;
        public List&amp;lt;Observation&amp;gt; GetLast24Observations()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Annab antud Stationi ID viimased etteantud arvu sissekandeid (vaikimisi 24)&lt;br /&gt;
        public List&amp;lt;StationObservation&amp;gt; GetStationObservations(int stationID, int count = 24)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab hetkel kõige soojema ilmaga Stationi&lt;br /&gt;
        public Station GetWarmest()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab kõik Stationid (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStations()&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereLower(double temp)&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereHigher(double temp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab arvu, kui suur on sademete hulk antud algus kuupäevast (k.a.) antud lõpukuupäevani (k.a) antud jaamas&lt;br /&gt;
        public double GetPercipitationsSum(DateTime begin, DateTime end, String stationName)&lt;br /&gt;
&lt;br /&gt;
===Teostus===&lt;br /&gt;
&lt;br /&gt;
Teenus asub aadressil https://ehak.codeplex.com/SourceControl/list/changesets#&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;br /&gt;
&lt;br /&gt;
===29.mai.2012 - teisipäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan pani andmed andmebaasi käsitsi (Exceli ja SQL lausete abiga) ning koostas analüüsis kirjeldatud meetodid.&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48834</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48834"/>
		<updated>2012-05-29T00:35:08Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* 29.mai.2012 - teisipäev = */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Observation elemendist. &lt;br /&gt;
         //Igas Observation elemendis on iga jaama kohta üks StationObservation.&lt;br /&gt;
        public List&amp;lt;Observation&amp;gt; GetLast24Observations()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Annab antud Stationi ID viimased etteantud arvu sissekandeid (vaikimisi 24)&lt;br /&gt;
        public List&amp;lt;StationObservation&amp;gt; GetStationObservations(int stationID, int count = 24)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab hetkel kõige soojema ilmaga Stationi&lt;br /&gt;
        public Station GetWarmest()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab kõik Stationid (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStations()&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereLower(double temp)&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereHigher(double temp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab arvu, kui suur on sademete hulk antud algus kuupäevast (k.a.) antud lõpukuupäevani (k.a) antud jaamas&lt;br /&gt;
        public double GetPercipitationsSum(DateTime begin, DateTime end, String stationName)&lt;br /&gt;
&lt;br /&gt;
===Teostus===&lt;br /&gt;
&lt;br /&gt;
Teenus on loodetavasti teostatud ja asub aadressil https://ehak.codeplex.com/SourceControl/list/changesets#&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;br /&gt;
&lt;br /&gt;
===29.mai.2012 - teisipäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan pani andmed andmebaasi käsitsi (Exceli ja SQL lausete abiga) ning koostas analüüsis kirjeldatud meetodid.&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48833</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48833"/>
		<updated>2012-05-29T00:34:51Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* 23.mai.2012 - kolmapäev */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Observation elemendist. &lt;br /&gt;
         //Igas Observation elemendis on iga jaama kohta üks StationObservation.&lt;br /&gt;
        public List&amp;lt;Observation&amp;gt; GetLast24Observations()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Annab antud Stationi ID viimased etteantud arvu sissekandeid (vaikimisi 24)&lt;br /&gt;
        public List&amp;lt;StationObservation&amp;gt; GetStationObservations(int stationID, int count = 24)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab hetkel kõige soojema ilmaga Stationi&lt;br /&gt;
        public Station GetWarmest()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab kõik Stationid (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStations()&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereLower(double temp)&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereHigher(double temp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab arvu, kui suur on sademete hulk antud algus kuupäevast (k.a.) antud lõpukuupäevani (k.a) antud jaamas&lt;br /&gt;
        public double GetPercipitationsSum(DateTime begin, DateTime end, String stationName)&lt;br /&gt;
&lt;br /&gt;
===Teostus===&lt;br /&gt;
&lt;br /&gt;
Teenus on loodetavasti teostatud ja asub aadressil https://ehak.codeplex.com/SourceControl/list/changesets#&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;br /&gt;
&lt;br /&gt;
==29.mai.2012 - teisipäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan pani andmed andmebaasi käsitsi (Exceli ja SQL lausete abiga) ning koostas analüüsis kirjeldatud meetodid.&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48832</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48832"/>
		<updated>2012-05-29T00:33:06Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Analüüs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Observation elemendist. &lt;br /&gt;
         //Igas Observation elemendis on iga jaama kohta üks StationObservation.&lt;br /&gt;
        public List&amp;lt;Observation&amp;gt; GetLast24Observations()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Annab antud Stationi ID viimased etteantud arvu sissekandeid (vaikimisi 24)&lt;br /&gt;
        public List&amp;lt;StationObservation&amp;gt; GetStationObservations(int stationID, int count = 24)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab hetkel kõige soojema ilmaga Stationi&lt;br /&gt;
        public Station GetWarmest()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab kõik Stationid (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStations()&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereLower(double temp)&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereHigher(double temp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab arvu, kui suur on sademete hulk antud algus kuupäevast (k.a.) antud lõpukuupäevani (k.a) antud jaamas&lt;br /&gt;
        public double GetPercipitationsSum(DateTime begin, DateTime end, String stationName)&lt;br /&gt;
&lt;br /&gt;
===Teostus===&lt;br /&gt;
&lt;br /&gt;
Teenus on loodetavasti teostatud ja asub aadressil https://ehak.codeplex.com/SourceControl/list/changesets#&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48831</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48831"/>
		<updated>2012-05-29T00:06:26Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Analüüs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Observation elemendist. &lt;br /&gt;
         //Igas Observation elemendis on iga jaama kohta üks StationObservation.&lt;br /&gt;
        public List&amp;lt;Observation&amp;gt; GetLast24Observations()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Annab antud Stationi ID viimased etteantud arvu sissekandeid (vaikimisi 24)&lt;br /&gt;
        public List&amp;lt;StationObservation&amp;gt; GetStationObservations(int stationID, int count = 24)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab hetkel kõige soojema ilmaga Stationi&lt;br /&gt;
        public Station GetWarmest()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab kõik Stationid (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStations()&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereLower(double temp)&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereHigher(double temp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab arvu, kui suur on sademete hulk antud algus kuupäevast (k.a.) antud lõpukuupäevani (k.a) antud jaamas&lt;br /&gt;
        public double GetPercipitationsSum(DateTime begin, DateTime end, String stationName)&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48830</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48830"/>
		<updated>2012-05-29T00:05:58Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Analüüs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Observation elemendist. Igas Observation elemendis on iga jaama kohta üks StationObservation.&lt;br /&gt;
        public List&amp;lt;Observation&amp;gt; GetLast24Observations()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Annab antud Stationi ID viimased etteantud arvu sissekandeid (vaikimisi 24)&lt;br /&gt;
        public List&amp;lt;StationObservation&amp;gt; GetStationObservations(int stationID, int count = 24)&lt;br /&gt;
&lt;br /&gt;
        // Tagastab hetkel kõige soojema ilmaga Stationi&lt;br /&gt;
        public Station GetWarmest()&lt;br /&gt;
&lt;br /&gt;
        // Tagastab kõik Stationid (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStations()&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereLower(double temp)&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereHigher(double temp)&lt;br /&gt;
&lt;br /&gt;
        // Tagastab arvu, kui suur on sademete hulk antud algus kuupäevast (k.a.) antud lõpukuupäevani (k.a) antud jaamas&lt;br /&gt;
        public double GetPercipitationsSum(DateTime begin, DateTime end, String stationName)&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48829</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48829"/>
		<updated>2012-05-29T00:05:33Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Analüüs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Observation elemendist. Igas Observation elemendis on iga jaama kohta üks StationObservation.&lt;br /&gt;
        public List&amp;lt;Observation&amp;gt; GetLast24Observations()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Annab antud Stationi ID viimased etteantud arvu sissekandeid (vaikimisi 24)&lt;br /&gt;
        public List&amp;lt;StationObservation&amp;gt; GetStationObservations(int stationID, int count = 24)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab hetkel kõige soojema ilmaga Stationi&lt;br /&gt;
        public Station GetWarmest()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab kõik Stationid (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStations()&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereLower(double temp)&lt;br /&gt;
&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereHigher(double temp)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Tagastab arvu, kui suur on sademete hulk antud algus kuupäevast (k.a.) antud lõpukuupäevani (k.a) antud jaamas&lt;br /&gt;
        public double GetPercipitationsSum(DateTime begin, DateTime end, String stationName)&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48828</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48828"/>
		<updated>2012-05-29T00:05:01Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Analüüs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Observation elemendist. Igas Observation elemendis on iga jaama kohta üks StationObservation.&lt;br /&gt;
        public List&amp;lt;Observation&amp;gt; GetLast24Observations()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        // Annab antud Stationi ID viimased etteantud arvu sissekandeid (vaikimisi 24)&lt;br /&gt;
        public List&amp;lt;StationObservation&amp;gt; GetStationObservations(int stationID, int count = 24)&lt;br /&gt;
&lt;br /&gt;
        &lt;br /&gt;
        // Tagastab hetkel kõige soojema ilmaga Stationi&lt;br /&gt;
        public Station GetWarmest()&lt;br /&gt;
&lt;br /&gt;
        // Tagastab kõik Stationid (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStations()&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereLower(double temp)&lt;br /&gt;
       &lt;br /&gt;
        // Tagastab Stationid, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; GetStationsWhereHigher(double temp)&lt;br /&gt;
&lt;br /&gt;
        // Tagastab arvu, kui suur on sademete hulk antud algus kuupäevast (k.a.) antud lõpukuupäevani (k.a) antud jaamas&lt;br /&gt;
        public double GetPercipitationsSum(DateTime begin, DateTime end, String stationName)&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48827</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48827"/>
		<updated>2012-05-28T22:04:55Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Analüüs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Observation elemendist. &lt;br /&gt;
        //Igas Observation elemendis on kõikide iga jaama kohta üks StationObservation.&lt;br /&gt;
        public List&amp;lt;Observation&amp;gt; get24Observations()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused (AB-s on kirjas iga tunni tagant võetud andmed).&lt;br /&gt;
        // List koosneb 24-st Observation elemendist. Igas elemendis on ainult päritud Stationi ilmainfo.&lt;br /&gt;
&lt;br /&gt;
        public List&amp;lt;Observation&amp;gt; get24ObservationsInStations(int stationID)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab hetkel kõige soojema ilmaga Stationi &lt;br /&gt;
        public Station getWarmest()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab kõik Jaamad (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStations()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereLower(double temp)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereHigher(double temp)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab, kui suur on sademete hulk sellest kuupäevast selle kuupäevani antud jaamas&lt;br /&gt;
        public double getPercSummary(DateTime begin, DateTime end, String stationName)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return 0.0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48648</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48648"/>
		<updated>2012-05-23T13:42:54Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Analüüs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Weather elemendist. &lt;br /&gt;
        //Igas elemendis on kõikide jaamade ilmainfo.&lt;br /&gt;
        public List&amp;lt;Weather&amp;gt; getWeather()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused (AB-s on kirjas iga tunni tagant võetud andmed).&lt;br /&gt;
        // List koosneb 24-st Weather elemendist. Igas elemendis on ainult päritud Jaamade ilmainfo.&lt;br /&gt;
        public List&amp;lt;Weather&amp;gt; getWeather(List&amp;lt;int&amp;gt; stationID)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab hetkel kõige soojema ilmaga Stationi&lt;br /&gt;
        public Station getWarmest()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab kõik Jaamad (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStations()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereLower(double temp)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereHigher(double temp)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab, kui suur on sademete hulk sellest kuupäevast selle kuupäevani antud jaamas&lt;br /&gt;
        public double getPercSummary(DateTime begin, DateTime end, String stationName)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return 0.0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48647</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48647"/>
		<updated>2012-05-23T13:41:49Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Analüüs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Ilma elemendist. &lt;br /&gt;
        //Igas elemendis on kõikide jaamade ilmainfo.&lt;br /&gt;
        public List&amp;lt;Weather&amp;gt; getWeather()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused (AB-s on kirjas iga tunni tagant võetud andmed).&lt;br /&gt;
        // List koosneb 24-st Ilma elemendist. Igas elemendis on ainult päritud Jaamade ilmainfo.&lt;br /&gt;
        public List&amp;lt;Weather&amp;gt; getWeather(List&amp;lt;int&amp;gt; stationID)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab hetkel kõige soojema ilmaga Jaama&lt;br /&gt;
        public Station getWarmest()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab kõik Jaamad (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStations()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereLower(double temp)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereHigher(double temp)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab, kui suur on sademete hulk sellest kuupäevast selle kuupäevani antud jaamas&lt;br /&gt;
        public double getPercSummary(DateTime begin, DateTime end, String stationName)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return 0.0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48646</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48646"/>
		<updated>2012-05-23T13:41:21Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Analüüs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
         // tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Ilma elemendist. &lt;br /&gt;
        //Igas elemendis on kõikide jaamade ilmainfo.&lt;br /&gt;
        public List&amp;lt;Weather&amp;gt; getWeather()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused (AB-s on kirjas iga tunni tagant võetud andmed).&lt;br /&gt;
        // List koosneb 24-st Ilma elemendist. Igas elemendis on ainult päritud Jaamade ilmainfo.&lt;br /&gt;
&lt;br /&gt;
        public List&amp;lt;Weather&amp;gt; getWeather(List&amp;lt;int&amp;gt; stationID)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab hetkel kõige soojema ilmaga Jaama&lt;br /&gt;
        public Station getWarmest()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab kõik Jaamad (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStations()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereLower(double temp)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereHigher(double temp)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab, kui suur on sademete hulk sellest kuupäevast selle kuupäevani antud jaamas&lt;br /&gt;
        public double getPercSummary(DateTime begin, DateTime end, String stationName)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return 0.0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48638</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48638"/>
		<updated>2012-05-23T12:05:55Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* 23.05.2012 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Ilma elemendist. &lt;br /&gt;
        //Igas elemendis on kõikide jaamade ilmainfo.&lt;br /&gt;
        public List&amp;lt;Ilm&amp;gt; getWeather()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused (AB-s on kirjas iga tunni tagant võetud andmed).&lt;br /&gt;
        // List koosneb 24-st Ilma elemendist. Igas elemendis on ainult päritud Jaamade ilmainfo.&lt;br /&gt;
      &lt;br /&gt;
        public List&amp;lt;Ilm&amp;gt; getWeather(List&amp;lt;int&amp;gt; stationID)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab hetkel kõige soojema ilmaga Jaama&lt;br /&gt;
        public Station getWarmest()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab kõik Jaamad (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStations()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereLower(double temp) &lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereHigher(double temp)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab, kui suur on sademete hulk sellest kuupäevast selle kuupäevani antud jaamas&lt;br /&gt;
        public double getPercSummary(DateTime begin, DateTime end, String stationName) &lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return 0.0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.mai.2012 - kolmapäev ===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48637</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48637"/>
		<updated>2012-05-23T12:05:23Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* 18. mai 2012 - reede */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Ilma elemendist. &lt;br /&gt;
        //Igas elemendis on kõikide jaamade ilmainfo.&lt;br /&gt;
        public List&amp;lt;Ilm&amp;gt; getWeather()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused (AB-s on kirjas iga tunni tagant võetud andmed).&lt;br /&gt;
        // List koosneb 24-st Ilma elemendist. Igas elemendis on ainult päritud Jaamade ilmainfo.&lt;br /&gt;
      &lt;br /&gt;
        public List&amp;lt;Ilm&amp;gt; getWeather(List&amp;lt;int&amp;gt; stationID)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab hetkel kõige soojema ilmaga Jaama&lt;br /&gt;
        public Station getWarmest()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab kõik Jaamad (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStations()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereLower(double temp) &lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereHigher(double temp)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab, kui suur on sademete hulk sellest kuupäevast selle kuupäevani antud jaamas&lt;br /&gt;
        public double getPercSummary(DateTime begin, DateTime end, String stationName) &lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return 0.0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
===23.05.2012===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48636</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48636"/>
		<updated>2012-05-23T12:04:59Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* 18. mai 2012 - reede */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Ilma elemendist. &lt;br /&gt;
        //Igas elemendis on kõikide jaamade ilmainfo.&lt;br /&gt;
        public List&amp;lt;Ilm&amp;gt; getWeather()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused (AB-s on kirjas iga tunni tagant võetud andmed).&lt;br /&gt;
        // List koosneb 24-st Ilma elemendist. Igas elemendis on ainult päritud Jaamade ilmainfo.&lt;br /&gt;
      &lt;br /&gt;
        public List&amp;lt;Ilm&amp;gt; getWeather(List&amp;lt;int&amp;gt; stationID)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab hetkel kõige soojema ilmaga Jaama&lt;br /&gt;
        public Station getWarmest()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab kõik Jaamad (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStations()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereLower(double temp) &lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereHigher(double temp)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab, kui suur on sademete hulk sellest kuupäevast selle kuupäevani antud jaamas&lt;br /&gt;
        public double getPercSummary(DateTime begin, DateTime end, String stationName) &lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return 0.0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===23.05.2012===&lt;br /&gt;
&lt;br /&gt;
Kristjan seadistas WCF turvalisuse ja lisas teenuse analüüsis kirjeldatud meetodid.&lt;br /&gt;
https://ehak.codeplex.com/SourceControl/changeset/view/17294 (vt WeatherServiceLibrary)&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48214</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48214"/>
		<updated>2012-05-19T14:04:11Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Analüüs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Ilma elemendist. &lt;br /&gt;
        //Igas elemendis on kõikide jaamade ilmainfo.&lt;br /&gt;
        public List&amp;lt;Ilm&amp;gt; getWeather()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused (AB-s on kirjas iga tunni tagant võetud andmed).&lt;br /&gt;
        // List koosneb 24-st Ilma elemendist. Igas elemendis on ainult päritud Jaamade ilmainfo.&lt;br /&gt;
      &lt;br /&gt;
        public List&amp;lt;Ilm&amp;gt; getWeather(List&amp;lt;int&amp;gt; stationID)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab hetkel kõige soojema ilmaga Jaama&lt;br /&gt;
        public Station getWarmest()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab kõik Jaamad (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStations()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereLower(double temp) &lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereHigher(double temp)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab, kui suur on sademete hulk sellest kuupäevast selle kuupäevani antud jaamas&lt;br /&gt;
        public double getPercSummary(DateTime begin, DateTime end, String stationName) &lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return 0.0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48213</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48213"/>
		<updated>2012-05-19T14:03:21Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Analüüs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
       &lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused. List koosneb 24 Ilma elemendist. Igas elemendis on kõikide jaamade ilmainfo.&lt;br /&gt;
        public List&amp;lt;Ilm&amp;gt; getWeather()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused (AB-s on kirjas iga tunni tagant võetud andmed). List koosneb 24-st Ilma elemendist. Igas elemendis on ainult päritud Jaamade ilmainfo.&lt;br /&gt;
      &lt;br /&gt;
        public List&amp;lt;Ilm&amp;gt; getWeather(List&amp;lt;int&amp;gt; stationID)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab hetkel kõige soojema ilmaga Jaama&lt;br /&gt;
        public Station getWarmest()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab kõik Jaamad (see tähendab, et sisuliselt saab kätte kogu informatsiooni, mida algsest XML-ist lugeda saab)&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStations()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereLower(double temp) &lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab Jaamad, kus on hetkel antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereHigher(double temp)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab, kui suur on sademete hulk sellest kuupäevast selle kuupäevani antud jaamas&lt;br /&gt;
        public double getPercSummary(DateTime begin, DateTime end, String stationName) &lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return 0.0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48212</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48212"/>
		<updated>2012-05-19T13:58:15Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Analüüs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed EMHI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus pakub andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
&lt;br /&gt;
       // tagastab viimase 24 tunni mõõtmiste tulemused&lt;br /&gt;
        // list koosneb 24 Ilma elemendist. Igas elemendis on kõikide jaamade ilmainfo&lt;br /&gt;
        public List&amp;lt;Ilm&amp;gt; getWeather()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused (AB-s on kirjas iga tunni tagant võetud andmed)&lt;br /&gt;
        // list koosneb 24 Ilma elemendist. Igas elemendis on ainult antud jaamade ilmainfo&lt;br /&gt;
        public List&amp;lt;Ilm&amp;gt; getWeather(List&amp;lt;int&amp;gt; stationID)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab hetkel kõige soojema ilmaga jaama&lt;br /&gt;
        public Station getWarmest()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab kõik ilmajaamade nimed&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStations()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab jaamad, kus on antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereLower(double temp) &lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab jaamad, kus on antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereHigher(double temp)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab, kui suur on sademete hulk sellest kuupäevast selle kuupäevani antud jaamas&lt;br /&gt;
        public double getPercSummary(DateTime begin, DateTime end, String stationName) &lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return 0.0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48211</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48211"/>
		<updated>2012-05-19T13:57:09Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* 14. mai 2012 - esmaspäev */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed siit EAHKI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus presenteerib andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
&lt;br /&gt;
       // tagastab viimase 24 tunni mõõtmiste tulemused&lt;br /&gt;
        // list koosneb 24 Ilma elemendist. Igas elemendis on kõikide jaamade ilmainfo&lt;br /&gt;
        public List&amp;lt;Ilm&amp;gt; getWeather()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused (AB-s on kirjas iga tunni tagant võetud andmed)&lt;br /&gt;
        // list koosneb 24 Ilma elemendist. Igas elemendis on ainult antud jaamade ilmainfo&lt;br /&gt;
        public List&amp;lt;Ilm&amp;gt; getWeather(List&amp;lt;int&amp;gt; stationID)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab hetkel kõige soojema ilmaga jaama&lt;br /&gt;
        public Station getWarmest()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab kõik ilmajaamade nimed&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStations()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab jaamad, kus on antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereLower(double temp) &lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab jaamad, kus on antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereHigher(double temp)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab, kui suur on sademete hulk sellest kuupäevast selle kuupäevani antud jaamas&lt;br /&gt;
        public double getPercSummary(DateTime begin, DateTime end, String stationName) &lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return 0.0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;br /&gt;
&lt;br /&gt;
===18. mai 2012 - reede ===&lt;br /&gt;
&lt;br /&gt;
Kristjan koostas õppejõu abiga veebiteenuse esialgse analüüsi&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48195</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48195"/>
		<updated>2012-05-18T17:31:46Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Veebiteenus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
===Analüüs===&lt;br /&gt;
&lt;br /&gt;
1. Esimese asjana turvalisuse pool üritada wiki ja screencasti (https://wiki.itcollege.ee/index.php/Praktikum:_Windows_Communication_Foundation_teenuse_turvamine,_VR2.9) abiga üles ehitada &lt;br /&gt;
&lt;br /&gt;
2. Koostada rakenduse loogika kiht, mis iga tunni aja tagant salvestab andmed siit EAHKI xml-ist (http://www.emhi.ee/ilma_andmed/xml/observations.php) andmebaasi.&lt;br /&gt;
&lt;br /&gt;
3. Teenus presenteerib andmebaasi salvestatud andmete pärimiseks järgnevaid meetodeid:&lt;br /&gt;
&lt;br /&gt;
       // tagastab viimase 24 tunni mõõtmiste tulemused&lt;br /&gt;
        // list koosneb 24 Ilma elemendist. Igas elemendis on kõikide jaamade ilmainfo&lt;br /&gt;
        public List&amp;lt;Ilm&amp;gt; getWeather()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        // tagastab viimase 24 tunni mõõtmiste tulemused (AB-s on kirjas iga tunni tagant võetud andmed)&lt;br /&gt;
        // list koosneb 24 Ilma elemendist. Igas elemendis on ainult antud jaamade ilmainfo&lt;br /&gt;
        public List&amp;lt;Ilm&amp;gt; getWeather(List&amp;lt;int&amp;gt; stationID)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab hetkel kõige soojema ilmaga jaama&lt;br /&gt;
        public Station getWarmest()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        //tagastab kõik ilmajaamade nimed&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStations()&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab jaamad, kus on antud temperatuurist madalam temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereLower(double temp) &lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab jaamad, kus on antud temperatuurist kõrgem temperatuur&lt;br /&gt;
        public List&amp;lt;Station&amp;gt; getStationsWhereHigher(double temp)&lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return null;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // tagastab, kui suur on sademete hulk sellest kuupäevast selle kuupäevani antud jaamas&lt;br /&gt;
        public double getPercSummary(DateTime begin, DateTime end, String stationName) &lt;br /&gt;
        {&lt;br /&gt;
            //to do&lt;br /&gt;
            return 0.0;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
=== Vennaskonna XML&#039;i retsensioon ===&lt;br /&gt;
&lt;br /&gt;
Kuivõrd XML kodutöö oli oma olemuselt üpris lihtne ja mitte väga mahukas, siis retsenseerimisel on seatud nõudeid arvestatud piinliku täpsusega. &lt;br /&gt;
&lt;br /&gt;
Nõuete täitmise osas jäi esimese asjana silma vähemalt kolme ID-st erineva atribuudi nõude mittetäitmine. Kui vaadata nende XML faili, siis tõepoolest on kasutatud kolme erinevat atribuuti, kuid ID-st erinevad on ainult aasta ja koht. Seega formaalselt pole nõue täidetud.&lt;br /&gt;
&lt;br /&gt;
Teine puudus on seotud dokumentatsiooniga.  Kuigi kõik loodud failid on oma olemuselt suhteliselt lihtsad, loogilise struktuuriga ning räägivad paljuski iseenda eest ise, siis ei leidu neist mitte ühtegi kommentaari.  Ei maksa arvata, et praktikas need kommentaarid koodi kuidagi veel rohkem arusaadavamaks teeksid, kuid kodutöö nõuetes oli sellekohane punkt olemas ning seda ei ole täidetud.&lt;br /&gt;
&lt;br /&gt;
Töö sisulise poole pealt võib suurimaks puuduseks nimetada liiga “lõtva” skeemifaili. Näiteks etappide algus ja lõpukuupäevad on defineeritud string tüüpi elementidena ning ei ole määratud täiendavaid piiranguid ega nõudeid selle kohta kuidas see kuupäeva ikkagi kirjutatud peaks olema. Kuupäevade osas oleks üldse mõistlikum kasutada date andmetüüpi. &lt;br /&gt;
&lt;br /&gt;
Sarnane probleem on ka elemendil riigikood. Defineeritud on ta jällegi lihtsalt stringina ning ei ole seatud ühtegi piirangut tema pikkusele. Kuna riigikoodide esitamisel on levinud kaks standardit, nii kahe kui ka kolme täheline esitlus, siis ei ole üheselt arusaadav, mida sinna ikkagi kirjutama peaks. Kusjuures XML andmefailis on kasutatud mõlemat varianti, näiteks FIN ja NL.&lt;br /&gt;
&lt;br /&gt;
Viimase asjana tasub veel mainimist täpitähtede, täpsemalt õ tähe kasutamine “Võistlussari” elemendis. Kuigi see ei ole otseselt viga, siis praktikas võib ta ikkagi probleeme põhjustada.&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;br /&gt;
&lt;br /&gt;
===14. mai 2012 - esmaspäev ===&lt;br /&gt;
&lt;br /&gt;
Ragnar lisas retsensiooni.&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48029</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48029"/>
		<updated>2012-05-11T15:06:01Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* 7. mai 2012 - esmaspäev */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjenumbriga 2.&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48028</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=48028"/>
		<updated>2012-05-11T15:05:48Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* 7. mai 2012 - pühapäev */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - esmaspäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjnumbriga 2.&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47908</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47908"/>
		<updated>2012-05-06T22:13:36Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* 7. mai 2012 - pühapäev */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - pühapäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikisse - järjnumbriga 2.&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47907</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47907"/>
		<updated>2012-05-06T22:13:28Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* 6. mai 2012 - pühapäev */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;br /&gt;
&lt;br /&gt;
===7. mai 2012 - pühapäev===&lt;br /&gt;
Kristjan lisas Ragnari XSLT koodi wikissw - järjnumbriga 2.&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47905</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47905"/>
		<updated>2012-05-06T22:12:54Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* XSLT (teine) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;!-- Aluseks on võetud Kristjani xslt fail.&lt;br /&gt;
Kaotatakse ära kogu fondindus ning lisatakse ID&#039;, elementide tüübi info jms.&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot; xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Haldus- ja asustusüksuste detailinfo&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; rööpnimi=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                	&amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; (kood=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@kood&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; tyyp=&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Rööpnimedega asustusüksuste loetelu&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
       &amp;lt;h3&amp;gt;&lt;br /&gt;
          Rööpnimedega asustusüksuste nimekiri koos tüübiga&lt;br /&gt;
       &amp;lt;/h3&amp;gt;&lt;br /&gt;
        &lt;br /&gt;
        &amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse nimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse rööpnimi&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;h4&amp;gt;Asustusüksuse tüüp&amp;lt;/h4&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
          &amp;lt;/tr&amp;gt;&lt;br /&gt;
          &amp;lt;!-- Valin kõik asustusüksused, millel esineb parameeter &amp;quot;rööpnimi&amp;quot;--&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond/omavalitsus/asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
               &amp;lt;!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --&amp;gt; &lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
                &amp;lt;td&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/td&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;br /&gt;
&lt;br /&gt;
===6. mai 2012 - pühapäev===&lt;br /&gt;
Holger lisas enda XSLT koodi wikisse - järjenumbriga 3.&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Category:V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine(%C3%B5htu%C3%B5pe)&amp;diff=47815</id>
		<title>Category:Võrgurakendused II: hajussüsteemide ehitamine(õhtuõpe)</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Category:V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine(%C3%B5htu%C3%B5pe)&amp;diff=47815"/>
		<updated>2012-05-05T15:53:37Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Meeskond &amp;quot;Offline&amp;quot; */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Võrgurakendused II: hajussüsteemide ehitamine=&lt;br /&gt;
==Eesmärk==&lt;br /&gt;
Õppeaine eesmärgiks on tutvustada õppijale XML märgendikeelel baseeruvaid hajuslahendusi ja nende loomise võimalusi ning arendada õppijates .Net raamistiku vahenditega tarkvara arendamisoskuseid&lt;br /&gt;
&lt;br /&gt;
==Lühitutvustus==&lt;br /&gt;
Õppeaines käsitletakse XML märgendikeelt ning veebiteenuseid.  Kursuse käigus disainitakse, koostatakse ja testitakse veebiteenustel ning XML märgendikeelel põhinevaid lahendusi.&lt;br /&gt;
&lt;br /&gt;
==Õpiväljundid==&lt;br /&gt;
* Õppija oskab kasutada XML märgendikeelt keerulisema strukuuriga andmete hoidmiseks ja esitamiseks struktureeritud kujul.&lt;br /&gt;
* Õppija oskab avalikult kättesaadavate juhendite abil koostada lihtsamaid klientrakendusi levinud veebiteenustele.&lt;br /&gt;
* Õppija oskab luua lihtsamaid veebiteenuseid kasutades selleks .Net raamistiku tehnoloogiaid ning vahendeid.&lt;br /&gt;
* Õppija teab veebiteenuste turvamiseks kasutatavaid tehnoloogiaid ja vahendeid ning oskab leid tavaolukorras rakendada.&lt;br /&gt;
* Õppija teab ning oskab kirjeldada hajusrakenduste kasutusvaldkondi ning nende arhitektuure.&lt;br /&gt;
* Õppija oskab töötada 3-5 liikmelises meeskonnas.&lt;br /&gt;
&lt;br /&gt;
==Õppejõud==&lt;br /&gt;
Aine läbiviijateks on õppejõud Mait Poska ja Kaarel Raspel.&lt;br /&gt;
&lt;br /&gt;
Mait Poska kanda on enamasti loengud ja Kaarel Raspeli kanda praktikumid.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;ins&amp;gt;Kontaktid:&amp;lt;/ins&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kaarel Raspel&lt;br /&gt;
* kaarel.raspel&amp;lt;ät&amp;gt; gmail.com&lt;br /&gt;
* Skype: vellotis&lt;br /&gt;
* +372 522 2468&lt;br /&gt;
&lt;br /&gt;
Mait Poska&lt;br /&gt;
* mait.poska&amp;lt;ät&amp;gt; itcollege.ee&lt;br /&gt;
* Skype: minamait&lt;br /&gt;
* +372 53 469 734&lt;br /&gt;
&lt;br /&gt;
==Hinne==&lt;br /&gt;
Aine hinde kujunemine:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;Eeldused&amp;lt;/span&amp;gt; (mille eest ei saa punkte)&lt;br /&gt;
** Kohal tuleb käia vähemalt &#039;&#039;&#039;50% praktikumidest&#039;&#039;&#039;&lt;br /&gt;
*** Kes seda nõuet ei täida peavad viimases praktikumis sooritama komplekstesti, mis sisaldab endas praktilisi ülesandeid.&lt;br /&gt;
**&amp;lt;ins&amp;gt;Grupitöö kõik osad on realiseeritud minimaalse tulemusega 51%&amp;lt;/ins&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Hinde kujunemisel arvestatakse kahte tööd:&lt;br /&gt;
alamosast:&lt;br /&gt;
**XML andmefail&lt;br /&gt;
**Veebirakendus&lt;br /&gt;
**Veebiteenus&lt;br /&gt;
*Eksam(45%), mis koosneb kahest osast:&lt;br /&gt;
**Teooria, mis annab sellest 20%&lt;br /&gt;
**Praktiline osa, mis annab sellest 25%&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;ins&amp;gt;Hinne&amp;lt;/ins&amp;gt; (&#039;&#039;&#039;100p / 100%&#039;&#039;&#039;) - Hinde kujunemisel arvestatakse kahte tööd:&lt;br /&gt;
** [[Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2012(õhtuõpe)]] - Projekt, mis moodustab hindest 55%. &#039;&#039;&#039;55p&#039;&#039;&#039; (koosneb kolmest osast)&lt;br /&gt;
*** XML (xsd, xslt) &#039;&#039;&#039;10p&#039;&#039;&#039;&lt;br /&gt;
**** Retsensioonid kahe grupi XLM-i kohta &#039;&#039;&#039;2p+3p&#039;&#039;&#039;&lt;br /&gt;
*** Veebiteenus &#039;&#039;&#039;15p&#039;&#039;&#039;&lt;br /&gt;
**** Retsensioonid kahe grupi Veebiteenuse kohta &#039;&#039;&#039;2p+3p&#039;&#039;&#039;&lt;br /&gt;
*** Klientrakendused veebiteenusele &#039;&#039;&#039;15p&#039;&#039;&#039;&lt;br /&gt;
**** Retsensioonid kahe grupi Klientrakenduse kohta &#039;&#039;&#039;2p+3p&#039;&#039;&#039;&lt;br /&gt;
** &amp;lt;ins&amp;gt;Individuaalne teadmiste kontroll&amp;lt;/ins&amp;gt; &#039;&#039;&#039;45p&#039;&#039;&#039;&lt;br /&gt;
*** Teooria (Test) &#039;&#039;&#039;20p&#039;&#039;&#039; (tulemus vähemalt 51%)&lt;br /&gt;
*** Praktiline (Programmeerimine) &#039;&#039;&#039;25p&#039;&#039;&#039; (tulemus vähemalt 51%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Hinne kujuneb järgmiselt:&lt;br /&gt;
* Iga grupitöö vahekaitsmine annab kuni 10 punkti (kokku siis 30 punkti)&lt;br /&gt;
* Lõppkaitsmine annab 30 punkti (kõik kolm tööd koos, koos paranduste ja täiendustega)&lt;br /&gt;
* Iga grupp saab lisaks iga liikme kohta 20 punkti, mis tuleb grupi sees vastavalt panusele jagada (näiteks kolmeliikmeline grupp saab 60 punkti, neljaliikmeline 80 punkti jne).&lt;br /&gt;
* Valikvastustega test (kuni 20 punkti)&lt;br /&gt;
* Eksamieeldus on see, et tuleb anda tähtajaks neli hinnangut (üks hinnang XML failile, üks veebiteenusele, üks veebiteenustele tehtud rakendustele ning üks projektile kokkuvõtvalt).&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--Aasta 2012(praegu) [[Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2012]]&lt;br /&gt;
&lt;br /&gt;
Aastal 2011 olnud teemad[[Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2011]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Võrgurakendused II: 2011 kevadel valminud kodutööd]]&lt;br /&gt;
&lt;br /&gt;
==Tähtajad==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--* Teema ning meeskonna koosseis peab olema õppejõuga kooskõlastatud hiljemalt 21. veebruar 2011.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;XML fail&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2012(%C3%B5htu%C3%B5pe)#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;6. mai 2012&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;10. mai 2012&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Veebiteenus&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2012(%C3%B5htu%C3%B5pe)#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;22. mai 2012&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;25. mai 2012&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Klientrakendused&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2012(%C3%B5htu%C3%B5pe)#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;29. mai 2012&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;2. juuni 2012&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--* &#039;&#039;&#039;Meeskonna kokkuvõttev aruanne&#039;&#039;&#039;&lt;br /&gt;
** Meeskonnatöö kokkuvõttev aruanne peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt 8.mai 2012&lt;br /&gt;
** Arvamused Meeskonnatöö kokkuvõtva aruande ja esitluse kohta tuleb esitada hiljemalt päev enne eksamit&lt;br /&gt;
** &#039;&#039;&#039;Meeskonna kokkuvõttev aruanne ja töö lõplik tulemus&#039;&#039;&#039; tuleb esitleda!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
Iga grupp peab tegema lisaks igale grupitööle vastavalt ka 2 retsensiooni. Retsensioonid võib teha vabalt valitud gruppide tööde kohta. Tingimuseks on see, et ühe töö kohta saab teha maksimaalselt kolm retsensiooni.&lt;br /&gt;
&lt;br /&gt;
Seega kokku tuleb esitada 6 retsensiooni ühel grupil.&lt;br /&gt;
&lt;br /&gt;
Kui grupp on teinud vaid ühe retsensiooni, siis selle eest saab 2 punkti. Kui sellele lisandub ka teine retsensioon, siis teise retsensiooni eest saab 3 punkti. Kokku 5 punkti.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Lisaks iga grupp, kelle töö kohta retsensioon tehakse saab iga töö kohta boonuseks ühe punkti. Seega võib koguneda igale grupile kokku 6 boonuspunkti kolme töö eest.--&amp;gt;&lt;br /&gt;
&amp;lt;ins&amp;gt;Lisaks tuleb silmas pidada retsensioonide minimaalseid pikkusi projektide kohta.&amp;lt;/ins&amp;gt; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2012#Retsensioonid Retsensioonide minimaalsed pikkused]&lt;br /&gt;
&lt;br /&gt;
==Meeskonnad==&lt;br /&gt;
Ühte meeskonda võib kuuluda 3 kuni 4 tudengit. Gruppi kuuluvate tudengite nimekiri kinnitatakse esimese projekti esitamisega.&lt;br /&gt;
&lt;br /&gt;
=== [[Meeskond &amp;quot;Offline&amp;quot;]] ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
=Teemad=&lt;br /&gt;
=XML failivorming ja sellega seotud tehnoloogiad=&lt;br /&gt;
&lt;br /&gt;
==XML failivorming==&lt;br /&gt;
===Loengusalvestused===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &#039;&#039;&#039;Esimese loengu salvestus http://enos.itcollege.ee/~htahis/VRII/WR2%20-%20Loeng%201/WR2%20-%20Loeng%201.html&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Teise loengu salvestus http://echo360.e-uni.ee/ess/echo/presentation/9264dd7c-990a-4e3f-9045-1a7a5e04039b&#039;&#039;&#039;&lt;br /&gt;
** Teise loengu näited: http://enos.itcollege.ee/~htahis/VRII/Praktikum2%20(loeng2)/&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Esimese loengu salvestus, kus räägiti XML andmefailist asub siin:  http://echo360.e-uni.ee/ess/echo/presentation/d590aaa6-2d08-4852-9db6-42041cc7e438 &#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Teise loengu salvestus, kus räägiti XML skeemidest ja transformatsioonidest asub siin: http://echo360.e-uni.ee/ess/echo/presentation/fa1431fb-3b80-42a3-a7de-f18fe6a1d3ae &#039;&#039;&#039;&lt;br /&gt;
**Teises loengus tehtud näited, asuvad siin: http://enos.itcollege.ee/~mposka/Vorgurakendused_II_2012/Paevaope/Loengud/Loeng2/&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Kolmas loeng, kus räägiti LINQ&#039;st: http://echo360.e-uni.ee/ess/echo/presentation/bbb940ea-fb20-49b4-9d5b-7b2e41f1ac39 &#039;&#039;&#039;&lt;br /&gt;
**Kolmandas loengus tehtud näited asuvad siin: http://enos.itcollege.ee/~mposka/Vorgurakendused_II_2012/Paevaope/Loengud/Loeng3/&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===Teooria=== &lt;br /&gt;
* XML failid&lt;br /&gt;
**  Kippar, J. &amp;quot;XML rakendused&amp;quot;, TLU:2009 http://minitorn.tlu.ee/~jaagup/kool/java/kursused/10/xmlrak/trykk/xmlrak.pdf&lt;br /&gt;
** XMLi rakendused ainekursuse leht by Jaagup Kippar http://minitorn.tlu.ee/~jaagup/kool/java/kursused/10/xmlrak/juht.html&lt;br /&gt;
** Introduction to XML by w3schools.com http://www.w3schools.com/xml/xml_whatis.asp&lt;br /&gt;
* XSLT - XML failide transformeerimine ehk stiilifailid&lt;br /&gt;
** XSLT Tutorial by w3schools.com http://www.w3schools.com/xsl/default.asp&lt;br /&gt;
&lt;br /&gt;
===Praktika===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Praktikum: XML failide loomine, VR2.1]]&lt;br /&gt;
* [[Linq_päringukeel|Praktikum: LINQ päringute tegemine XML-i peal, VR2.2]]&lt;br /&gt;
** [http://enos.itcollege.ee/~kraspel/VRII/%5b2012.02.09%5d%20Praktikum%202%20/ Praktikumi näide]&lt;br /&gt;
* [[Praktikum: XML failide valideerimine (XSD, DTD) ning XML stiilide (XSLT) loomine , VR2.3]]&lt;br /&gt;
** [http://enos.itcollege.ee/~kraspel/VRII/%5b2012.02.16%5d%20Praktikum%203/ Praktikumi näide]&lt;br /&gt;
* [[Praktikum: XML failidega töötamine (kokkuvõttev praktikum), VR2.4]]&lt;br /&gt;
** [http://enos.itcollege.ee/~kraspel/VRII/%5b2012.02.23%5d%20Praktikum%204/ Praktikumi näide]&lt;br /&gt;
* [[Praktikum: Lihtne andmebaasil veebiteenus, VR2.6]]&lt;br /&gt;
** [http://enos.itcollege.ee/~kraspel/VRII/%5b2012.03.08%5d%20Praktikum%206/ Praktikumi näide]&lt;br /&gt;
* [[Praktikum: Veebiteenuse loomine Windows Communication Foundation abil, VR2.7]]&lt;br /&gt;
** [http://enos.itcollege.ee/~kraspel/VRII/%5b2012.03.15%5d%20Praktikum%208/ Praktikumi näide]&lt;br /&gt;
* Praktikum: Object Orientated crash, VR2.8&lt;br /&gt;
** [http://enos.itcollege.ee/~kraspel/VRII/%5b2012.03.22%5d%20Praktikum%209/ Praktikumi näide]&lt;br /&gt;
* [[Praktikum: Windows Communication Foundation teenuse turvamine, VR2.9]]&lt;br /&gt;
** [http://enos.itcollege.ee/~kraspel/VRII/%5b2012.04.05%5d%20Praktikum%2010/ Praktikumi näide]&lt;br /&gt;
* [[Praktikum: Windows Communication Foundation teenuse turvamine jätk, VR2.10]]&lt;br /&gt;
** [http://enos.itcollege.ee/~kraspel/VRII/%5b2012.04.13%5d%20Praktikum%2011/ Praktikumi näide]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Praktikum: XML failide loomine vol 2, VR2.2]]&lt;br /&gt;
* [[Praktikum: XML failide lugemine ja muutmine .Net vahenditega, VR2.3]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[http://enos.itcollege.ee/~mposka/Vorgurakendused_II_2012/Ohtuope/Esimene_kohtumine/ Esimene kohtumine], kus tegeleti XML failide, skeemifailide ja transformatsioonide loomisega &amp;lt;br/&amp;gt;&lt;br /&gt;
[http://enos.itcollege.ee/~mposka/Vorgurakendused_II_2012/Ohtuope/Esimene_kohtumine/ Teine kohtumine] , kus tegeleti XML transformatsioonide loomisega ja tutvustati LINQt]&lt;br /&gt;
&lt;br /&gt;
=Veebiteenused=&lt;br /&gt;
==Loengud==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &#039;&#039;&#039; Neljas loeng: http://echo360.e-uni.ee/ess/echo/presentation/7b97f540-e6e1-4bbb-99c3-04e9833b690b &#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; Viies loeng. Lihtsa veebiteenuse loomise algus: http://echo360.e-uni.ee/ess/echo/presentation/7babae6b-fd76-4564-b60b-d30f82d3d2cf&lt;br /&gt;
* &#039;&#039;&#039; Kuues loeng. &amp;lt;i&amp;gt;Windows Communication Foundation&amp;lt;/i&amp;gt;: http://echo360.e-uni.ee/ess/echo/presentation/78ee4f6d-e7d5-47e0-92b9-824331027bbd&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenuste loomine==&lt;br /&gt;
* ASP.NET Web Services http://msdn.microsoft.com/en-us/library/t745kdsh.aspx&lt;br /&gt;
* Creating and Consuming .NET Web Services in 5 Easy Steps http://articles.sitepoint.com/article/net-web-services-5-steps&lt;br /&gt;
&lt;br /&gt;
==Andmebaasiga ühendumine==&lt;br /&gt;
* Database Connectivity using WebService http://www.c-sharpcorner.com/UploadFile/raj1979/DatabaseWebService01142008011107AM/DatabaseWebService.aspx&lt;br /&gt;
&lt;br /&gt;
==Veebiteenuste turvamine==&lt;br /&gt;
* Securing ASP.Net Web Services with Forms Authentication http://dotnetslackers.com/articles/aspnet/Securing-ASP-Net-Web-Services-with-Forms-Authentication.aspx&lt;br /&gt;
&lt;br /&gt;
==Praktika==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Praktikum: Lihtne andmebaasil veebiteenus, VR2.6]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Praktikum: Lihtne andmebaasil veebiteenus 2 (mitme tabeliga), VR2.7]]&lt;br /&gt;
* [[Praktikum: Rollipõhine kasutajahaldus veebiteenuses, VR2.8]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Veebiteenuste kasutamine=&lt;br /&gt;
==Praktika==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Praktikum: Flickr&#039;i veebiteenuse rakendus, VR2.10]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2012(%C3%B5htu%C3%B5pe)&amp;diff=47791</id>
		<title>Kodutöö aines &quot;Võrgurakendused II: hajussüsteemide ehitamine&quot; 2012(õhtuõpe)</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2012(%C3%B5htu%C3%B5pe)&amp;diff=47791"/>
		<updated>2012-05-05T13:28:48Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Meeskonnad 2012 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
[[Category: Võrgurakendused II: hajussüsteemide ehitamine(õhtuõpe)]]&lt;br /&gt;
&lt;br /&gt;
=Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2012=&lt;br /&gt;
==Eesmärk==&lt;br /&gt;
Saada praktiline kogemus hajussüsteemide ehitamisest XML veebiteenus ja vastava kliendi loomise abil ning süvendada meeskonnatööoskust. Kaugem eesmärk on loomulikult hinne :).&lt;br /&gt;
&lt;br /&gt;
==Reeglid==&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* Luua XML fail vabalt valitud andmete edastamiseks,selle faili skeemifail ning XSL fail(id) erinevate transformatsioonide tarvis (soovitavalt vähemalt andmete HTML ja XML kujul kuvamiseks)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendused (soovitavalt vähemalt kaks)endaloodud veebiteenusele&lt;br /&gt;
&lt;br /&gt;
Ühte projektimeeskonda kuulub 3..4 tudengit ning ühel teemal teostab projekti üks või mitu meeskonda.&lt;br /&gt;
&lt;br /&gt;
Töö käiku kajastatakse  http://wiki.itcollege.ee keskkonnas. Wikilehe täitmise eesmärke on kaks: nii on võimalik kirja panna kõik mõtted ja ideed (ning nendest jääb jälg) ning õppejõul on hiljem võimalik saada ülevaade iga projektimeeskonna liikme panusest.&lt;br /&gt;
&lt;br /&gt;
==Tähtajad==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;XML fail&#039;&#039;&#039;&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt 6. mai 2012.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema 10. mai 2012&lt;br /&gt;
** &#039;&#039;&#039;Meeskonnad on loonud omale enda wiki lehe, kuhu kirjeldavad meeskonna ja panevad nad üles oma tööd. Lisaks hakkavad kogunema ka sinna teiste gruppide poolt kirjutatavad retsensioonid. &amp;lt;ins&amp;gt;Meeskonnalehed lingitakse selle lehe lõppu Meeskonna pealkirja alla.&amp;lt;/ins&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Veebiteenus&#039;&#039;&#039;&lt;br /&gt;
** Veebiteenus peab olema valmis&amp;lt;!--, esitatud--&amp;gt; ja ja wikilehel kirjeldatud hiljemalt 22. mai 2012.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema 25. mai 2012&lt;br /&gt;
** &amp;lt;ins&amp;gt;&#039;&#039;&#039;Iga tähtajast üleläinud päev kaotab esitamata tööde hindest 10%&#039;&#039;&#039;&amp;lt;/ins&amp;gt;&lt;br /&gt;
&amp;lt;!--** Veebiteenus tuleb esitleda!--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Klientrakendused&#039;&#039;&#039;&lt;br /&gt;
** Klientrakendused peavad olema valmis&amp;lt;!--, esitatud--&amp;gt; ja ja wikilehel kirjeldatud hiljemalt 29. mai 2012.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema 2. juuni 2012&lt;br /&gt;
** &amp;lt;ins&amp;gt;&#039;&#039;&#039;Iga tähtajast üleläinud päev kaotab esitamata tööde hindest 10%&#039;&#039;&#039;&amp;lt;/ins&amp;gt;&lt;br /&gt;
&amp;lt;!--** Klientrakendused tuleb esitleda!--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--* &#039;&#039;&#039;Meeskonna kokkuvõttev aruanne&#039;&#039;&#039;&lt;br /&gt;
** Meeskonnatöö kokkuvõttev aruanne peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt 8.mai 2011&lt;br /&gt;
** Arvamused Meeskonnatöö kokkuvõtva aruande ja esitluse kohta tuleb esitada hiljemalt päev enne eksamit&lt;br /&gt;
** &#039;&#039;&#039;Meeskonna kokkuvõttev aruanne ja töö lõplik tulemus&#039;&#039;&#039; tuleb esitleda!--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hindamine==&lt;br /&gt;
===Üldised kriteeriumid===&lt;br /&gt;
&lt;br /&gt;
Teostatuks loetakse projekt juhul, kui lähteülesanne on realiseeritud, lahendus on töötav, kuid esineb suuremaid vigu ning piirsituatsioonidega ei ole arvestatud.&lt;br /&gt;
&lt;br /&gt;
Maksimumtulemuse saavutamiseks peab projekt olema teostatud tehniliselt veatult ning varustatud dokumentatsiooniga, milles sisaldub  arendusprotsessi kirjeldus (peab selguma ka iga rühmaliikme panus projekti teostamisel), kasutajajuhend ning lahenduse kirjeldus. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Maksimumtulemuse annab (vähemalt 4/7):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Majanduslik mõtlemine (kas loodav teenus ja rakendused oleks kasutatav ka ärilistel eesmärkidel)&lt;br /&gt;
* Mobiilrakendused &lt;br /&gt;
* Kogukondade kaasamine&lt;br /&gt;
* AJAX / Silverlight&lt;br /&gt;
* Kasutajamugavus&lt;br /&gt;
* Läbimõeldud töökorraldus&lt;br /&gt;
* Lisavõimaluste realiseerimine (vt näidisteemad)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XML andmefail===&lt;br /&gt;
Ülesande täitmiseks tuleb luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete  transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks.&lt;br /&gt;
&lt;br /&gt;
XML-il peab olema vähemalt 4 loogilist dimensiooni.&lt;br /&gt;
 &amp;lt;dim1&amp;gt;&lt;br /&gt;
   &amp;lt;dim2&amp;gt;&lt;br /&gt;
     &amp;lt;dim3&amp;gt;&lt;br /&gt;
       &amp;lt;dim4&amp;gt;&lt;br /&gt;
       &amp;lt;/dim4&amp;gt;&lt;br /&gt;
     &amp;lt;/dim3&amp;gt;&lt;br /&gt;
   &amp;lt;/dim2&amp;gt;&lt;br /&gt;
 &amp;lt;/dim1&amp;gt;&lt;br /&gt;
Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis one enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===Veebiteenus===&lt;br /&gt;
Loodav veebiteenus peab võimaldama:&lt;br /&gt;
* Teenuse pakkumist&lt;br /&gt;
* &#039;&#039;&#039;Teenuse kasutajate tuvastamist ning haldamist&#039;&#039;&#039;&lt;br /&gt;
* Teenuse kasutajate ja kasutusstatistika üle arve pidamist kasutajate lõikes&lt;br /&gt;
&lt;br /&gt;
Soovitav on luua teenus (FE) ja teenuse seadistamiseks ning kasutajate haldamiseks mõeldud rakendus (BE).&lt;br /&gt;
&lt;br /&gt;
===Klientrakendus===&lt;br /&gt;
Klientrakendus mõnele olemasolevale veebiteenusele, võib olla teostatud veebirakendusena, Silverlight, WPF või vormirakendusena.&lt;br /&gt;
&lt;br /&gt;
Variant1: teha klientrakendus enda loodud veebiteenusele &lt;br /&gt;
&lt;br /&gt;
Variant2: teha klientrakendus mõnele levinud veebiteenusele.&lt;br /&gt;
Näiteks: &lt;br /&gt;
* http://www.bing.com/developer&lt;br /&gt;
* http://www.flickr.com/services/api/response.soap.html&lt;br /&gt;
* http://developer.ebay.com/developercenter/windows/&lt;br /&gt;
* http://apiwiki.twitter.com/Getting-Started&lt;br /&gt;
&lt;br /&gt;
===Retsensioonid===&lt;br /&gt;
Retsensioon on üliõpilase iseseisva teadustöö kriitilise analüüsi põhjal koostatud argumenteeritud hinnang. Retsensioonis tuleb hinnata töö vastavust esitatud tingimustele, programmikoodi loetavust ning kommenteeritust, dokumentatsiooni ja kirjeldada puudusi. Retsensioonide põhjal on meeskondadel õigus oma projekte parandada enne määratud esitamistähtaja kättejõudmist.&lt;br /&gt;
&lt;br /&gt;
Retsensioon peab sisaldama minimaalselt...&lt;br /&gt;
* XML - ...200 sõna.&lt;br /&gt;
* Veebiteenus - ...600 sõna.&lt;br /&gt;
* Klientrakendus - ...600 sõna.&lt;br /&gt;
&lt;br /&gt;
Mõnelauselisest arvamusest ei piisa, kuna tegemist on grupi loodavate arvustustega, mitte individuaalsete arvustustega.&lt;br /&gt;
&lt;br /&gt;
==Konsultatsioonid==&lt;br /&gt;
 Igal projektimeeskonnal on piiramatu õigus saada õppejõu käest konsultatsiooni ja juhendamist oma&lt;br /&gt;
 töö tegemiseks, kas harjutuste ajal või pärast harjutusi ja loenguid. Eriaegade suhtes saab sõlmida&lt;br /&gt;
 õppejõuga kokkuleppeid kontaktidel&lt;br /&gt;
 mait.poska [ät] itcollege.ee (+372 53 469 734) või&lt;br /&gt;
 kaarel.raspel [ät] gmail.com (+372 522 2468)&lt;br /&gt;
 (teksti originaalautor Priit Raspel)&lt;br /&gt;
&lt;br /&gt;
=Teemad 2012 kevad=&lt;br /&gt;
&#039;&#039;&#039; Kodutöö koosneb kolmest eraldiseisvast ülesandest:&#039;&#039;&#039;&lt;br /&gt;
* Luua XML fail vabalt valitud andmete edastamiseks,selle faili skeemifail ning XSL fail(id) erinevate transformatsioonide tarvis (soovitavalt vähemalt andmete HTML ja XML kujul kuvamiseks)&lt;br /&gt;
* Luua veebiteenus, mis võimaldaks pakkuda teenust, eristada kasutajaid ning näidata teenuse kasutamise statistikat kasutajate ja tegevuste lõikes&lt;br /&gt;
* Luua klientrakendus mõnele olemasolevale või endaloodud veebiteenusele&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Näidisteemad==&lt;br /&gt;
&lt;br /&gt;
===Nimede pakkumise teenus===&lt;br /&gt;
Mõte selles, et luua nimede baas, mille abil pakkuda rakenduse loojale sobiva algusega nimesid. Reaalne rakendus: &#039;&#039;autocompleter&#039;&#039; tarvis teenuse pakkumine&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua sobiva alguse järgi nimede pakkumise teenus:&lt;br /&gt;
* alates kahetähelisetest algustest pakkuda sobivad nimesid&lt;br /&gt;
* luua võimalus kasutajatel nimesid lisada&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
&lt;br /&gt;
Lisavõimalused:&lt;br /&gt;
* luua kontroll, et nimi lisatakse baasi alles siis, kui seda nime on pakkunud vähemalt kaks erinevat kasutajat&lt;br /&gt;
* luua roll-back&#039;i võimalus juhuks, kui mõni kasutaja on tegelenud spämmimisega&lt;br /&gt;
&lt;br /&gt;
===Külastusstatistika teenus===&lt;br /&gt;
Mõte selles, et pakkuda teenust, kus kasutajal on võimalik registreerida külastused ning küsida oma külastusstatistikat.&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua külastusstatistika teenus:&lt;br /&gt;
* kasutaja saab teenuses registreerida külastusi&lt;br /&gt;
* kasutaja saab küsida külastusstatistikat päevade/kuude/kogu perioodi lõikes&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
&lt;br /&gt;
Lisavõimalused:&lt;br /&gt;
* luua võimalus registreerida alamlehtede külastusstatistikat&lt;br /&gt;
* luua võimalus külastusstatistikale lisaparameetrite lisamiseks (ip aadress, sirviku versioon jne)&lt;br /&gt;
&lt;br /&gt;
===Telefoniraamatu teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada kontakte ja nende seast otsida&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua telefoniraamatu teenus:&lt;br /&gt;
* kasutaja saab teenuses kontakte lisada ja kustutada&lt;br /&gt;
* kasutaja saab kontaktide nime/telefoninumbri jne abil otsida&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
&lt;br /&gt;
Lisavõimalused:&lt;br /&gt;
* luua võimalus kasutajatel oma kontaktibaase omavahel jagada&lt;br /&gt;
* luua võimalus pakkuda kontaktibaasis leiduvate nimede järgi sobivaid nimesid&lt;br /&gt;
&lt;br /&gt;
===RSS voogude kogumise ja uudiste kuvamise teenus===&lt;br /&gt;
Mõte selles, et kasutaja saab teenuse abil salvestada talle huvipakkuvaid RSS vooge ja nendelt voogudelt uudiseid lugeda&lt;br /&gt;
&lt;br /&gt;
====Ülesanne====&lt;br /&gt;
Luua RSS voogude haldusteenus:&lt;br /&gt;
* kasutaja saab teenuses RSS vooge lisada ja kustudada&lt;br /&gt;
* kasutaja saab pärida talle huvipakkuvate voogude viimaseid uudiseid&lt;br /&gt;
* luua võimalus ühele kasutajale (või erinevatele kasutajagruppidele) maksimumpäringute hulga määramiseks&lt;br /&gt;
&lt;br /&gt;
Lisavõimalused:&lt;br /&gt;
* luua võimalus kasutajatel erinevaid vooge grupeerida&lt;br /&gt;
* luua võimalus voogudes leiduvate uudiste puhverdamiseks (voogude lugemine võtab enamasti üsna palju aega)&lt;br /&gt;
&lt;br /&gt;
= Meeskonnad 2012=&lt;br /&gt;
&lt;br /&gt;
==[[Meeskond &amp;quot;Offline&amp;quot;]]==&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Category:V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine(%C3%B5htu%C3%B5pe)&amp;diff=47790</id>
		<title>Category:Võrgurakendused II: hajussüsteemide ehitamine(õhtuõpe)</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Category:V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine(%C3%B5htu%C3%B5pe)&amp;diff=47790"/>
		<updated>2012-05-05T13:28:11Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Meeskonnad */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Võrgurakendused II: hajussüsteemide ehitamine=&lt;br /&gt;
==Eesmärk==&lt;br /&gt;
Õppeaine eesmärgiks on tutvustada õppijale XML märgendikeelel baseeruvaid hajuslahendusi ja nende loomise võimalusi ning arendada õppijates .Net raamistiku vahenditega tarkvara arendamisoskuseid&lt;br /&gt;
&lt;br /&gt;
==Lühitutvustus==&lt;br /&gt;
Õppeaines käsitletakse XML märgendikeelt ning veebiteenuseid.  Kursuse käigus disainitakse, koostatakse ja testitakse veebiteenustel ning XML märgendikeelel põhinevaid lahendusi.&lt;br /&gt;
&lt;br /&gt;
==Õpiväljundid==&lt;br /&gt;
* Õppija oskab kasutada XML märgendikeelt keerulisema strukuuriga andmete hoidmiseks ja esitamiseks struktureeritud kujul.&lt;br /&gt;
* Õppija oskab avalikult kättesaadavate juhendite abil koostada lihtsamaid klientrakendusi levinud veebiteenustele.&lt;br /&gt;
* Õppija oskab luua lihtsamaid veebiteenuseid kasutades selleks .Net raamistiku tehnoloogiaid ning vahendeid.&lt;br /&gt;
* Õppija teab veebiteenuste turvamiseks kasutatavaid tehnoloogiaid ja vahendeid ning oskab leid tavaolukorras rakendada.&lt;br /&gt;
* Õppija teab ning oskab kirjeldada hajusrakenduste kasutusvaldkondi ning nende arhitektuure.&lt;br /&gt;
* Õppija oskab töötada 3-5 liikmelises meeskonnas.&lt;br /&gt;
&lt;br /&gt;
==Õppejõud==&lt;br /&gt;
Aine läbiviijateks on õppejõud Mait Poska ja Kaarel Raspel.&lt;br /&gt;
&lt;br /&gt;
Mait Poska kanda on enamasti loengud ja Kaarel Raspeli kanda praktikumid.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&amp;lt;ins&amp;gt;Kontaktid:&amp;lt;/ins&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Kaarel Raspel&lt;br /&gt;
* kaarel.raspel&amp;lt;ät&amp;gt; gmail.com&lt;br /&gt;
* Skype: vellotis&lt;br /&gt;
* +372 522 2468&lt;br /&gt;
&lt;br /&gt;
Mait Poska&lt;br /&gt;
* mait.poska&amp;lt;ät&amp;gt; itcollege.ee&lt;br /&gt;
* Skype: minamait&lt;br /&gt;
* +372 53 469 734&lt;br /&gt;
&lt;br /&gt;
==Hinne==&lt;br /&gt;
Aine hinde kujunemine:&lt;br /&gt;
* &amp;lt;span style=&amp;quot;text-decoration: underline;&amp;quot;&amp;gt;Eeldused&amp;lt;/span&amp;gt; (mille eest ei saa punkte)&lt;br /&gt;
** Kohal tuleb käia vähemalt &#039;&#039;&#039;50% praktikumidest&#039;&#039;&#039;&lt;br /&gt;
*** Kes seda nõuet ei täida peavad viimases praktikumis sooritama komplekstesti, mis sisaldab endas praktilisi ülesandeid.&lt;br /&gt;
**&amp;lt;ins&amp;gt;Grupitöö kõik osad on realiseeritud minimaalse tulemusega 51%&amp;lt;/ins&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--Hinde kujunemisel arvestatakse kahte tööd:&lt;br /&gt;
alamosast:&lt;br /&gt;
**XML andmefail&lt;br /&gt;
**Veebirakendus&lt;br /&gt;
**Veebiteenus&lt;br /&gt;
*Eksam(45%), mis koosneb kahest osast:&lt;br /&gt;
**Teooria, mis annab sellest 20%&lt;br /&gt;
**Praktiline osa, mis annab sellest 25%&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;ins&amp;gt;Hinne&amp;lt;/ins&amp;gt; (&#039;&#039;&#039;100p / 100%&#039;&#039;&#039;) - Hinde kujunemisel arvestatakse kahte tööd:&lt;br /&gt;
** [[Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2012(õhtuõpe)]] - Projekt, mis moodustab hindest 55%. &#039;&#039;&#039;55p&#039;&#039;&#039; (koosneb kolmest osast)&lt;br /&gt;
*** XML (xsd, xslt) &#039;&#039;&#039;10p&#039;&#039;&#039;&lt;br /&gt;
**** Retsensioonid kahe grupi XLM-i kohta &#039;&#039;&#039;2p+3p&#039;&#039;&#039;&lt;br /&gt;
*** Veebiteenus &#039;&#039;&#039;15p&#039;&#039;&#039;&lt;br /&gt;
**** Retsensioonid kahe grupi Veebiteenuse kohta &#039;&#039;&#039;2p+3p&#039;&#039;&#039;&lt;br /&gt;
*** Klientrakendused veebiteenusele &#039;&#039;&#039;15p&#039;&#039;&#039;&lt;br /&gt;
**** Retsensioonid kahe grupi Klientrakenduse kohta &#039;&#039;&#039;2p+3p&#039;&#039;&#039;&lt;br /&gt;
** &amp;lt;ins&amp;gt;Individuaalne teadmiste kontroll&amp;lt;/ins&amp;gt; &#039;&#039;&#039;45p&#039;&#039;&#039;&lt;br /&gt;
*** Teooria (Test) &#039;&#039;&#039;20p&#039;&#039;&#039; (tulemus vähemalt 51%)&lt;br /&gt;
*** Praktiline (Programmeerimine) &#039;&#039;&#039;25p&#039;&#039;&#039; (tulemus vähemalt 51%)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Hinne kujuneb järgmiselt:&lt;br /&gt;
* Iga grupitöö vahekaitsmine annab kuni 10 punkti (kokku siis 30 punkti)&lt;br /&gt;
* Lõppkaitsmine annab 30 punkti (kõik kolm tööd koos, koos paranduste ja täiendustega)&lt;br /&gt;
* Iga grupp saab lisaks iga liikme kohta 20 punkti, mis tuleb grupi sees vastavalt panusele jagada (näiteks kolmeliikmeline grupp saab 60 punkti, neljaliikmeline 80 punkti jne).&lt;br /&gt;
* Valikvastustega test (kuni 20 punkti)&lt;br /&gt;
* Eksamieeldus on see, et tuleb anda tähtajaks neli hinnangut (üks hinnang XML failile, üks veebiteenusele, üks veebiteenustele tehtud rakendustele ning üks projektile kokkuvõtvalt).&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&amp;lt;!--Aasta 2012(praegu) [[Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2012]]&lt;br /&gt;
&lt;br /&gt;
Aastal 2011 olnud teemad[[Kodutöö aines &amp;quot;Võrgurakendused II: hajussüsteemide ehitamine&amp;quot; 2011]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Võrgurakendused II: 2011 kevadel valminud kodutööd]]&lt;br /&gt;
&lt;br /&gt;
==Tähtajad==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--* Teema ning meeskonna koosseis peab olema õppejõuga kooskõlastatud hiljemalt 21. veebruar 2011.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;XML fail&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2012(%C3%B5htu%C3%B5pe)#XML_andmefail NB! Täpsem info]&lt;br /&gt;
** XML fail, stiilifail ja skeemifail peavad olema valmis ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;6. mai 2012&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid XML-failide kohta peavad tehtud olema &#039;&#039;&#039;10. mai 2012&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Veebiteenus&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2012(%C3%B5htu%C3%B5pe)#Veebiteenus NB! Täpsem info]&lt;br /&gt;
** Veebiteenus peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;22. mai 2012&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid veebiteenuste kohta peavad tehtud olema &#039;&#039;&#039;25. mai 2012&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Klientrakendused&#039;&#039;&#039; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2012(%C3%B5htu%C3%B5pe)#Klientrakendus NB! Täpsem info]&lt;br /&gt;
** Klientrakendused peavad olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt &#039;&#039;&#039;29. mai 2012&#039;&#039;&#039;.&lt;br /&gt;
** Retsensioonid klientrakenduste kohta peavad tehtud olema &#039;&#039;&#039;2. juuni 2012&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--* &#039;&#039;&#039;Meeskonna kokkuvõttev aruanne&#039;&#039;&#039;&lt;br /&gt;
** Meeskonnatöö kokkuvõttev aruanne peab olema valmis, esitatud ja ja wikilehel kirjeldatud hiljemalt 8.mai 2012&lt;br /&gt;
** Arvamused Meeskonnatöö kokkuvõtva aruande ja esitluse kohta tuleb esitada hiljemalt päev enne eksamit&lt;br /&gt;
** &#039;&#039;&#039;Meeskonna kokkuvõttev aruanne ja töö lõplik tulemus&#039;&#039;&#039; tuleb esitleda!&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Retsensioonid==&lt;br /&gt;
&lt;br /&gt;
Iga grupp peab tegema lisaks igale grupitööle vastavalt ka 2 retsensiooni. Retsensioonid võib teha vabalt valitud gruppide tööde kohta. Tingimuseks on see, et ühe töö kohta saab teha maksimaalselt kolm retsensiooni.&lt;br /&gt;
&lt;br /&gt;
Seega kokku tuleb esitada 6 retsensiooni ühel grupil.&lt;br /&gt;
&lt;br /&gt;
Kui grupp on teinud vaid ühe retsensiooni, siis selle eest saab 2 punkti. Kui sellele lisandub ka teine retsensioon, siis teise retsensiooni eest saab 3 punkti. Kokku 5 punkti.&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
Lisaks iga grupp, kelle töö kohta retsensioon tehakse saab iga töö kohta boonuseks ühe punkti. Seega võib koguneda igale grupile kokku 6 boonuspunkti kolme töö eest.--&amp;gt;&lt;br /&gt;
&amp;lt;ins&amp;gt;Lisaks tuleb silmas pidada retsensioonide minimaalseid pikkusi projektide kohta.&amp;lt;/ins&amp;gt; [https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2012#Retsensioonid Retsensioonide minimaalsed pikkused]&lt;br /&gt;
&lt;br /&gt;
==Meeskonnad==&lt;br /&gt;
Ühte meeskonda võib kuuluda 3 kuni 4 tudengit. Gruppi kuuluvate tudengite nimekiri kinnitatakse esimese projekti esitamisega.&lt;br /&gt;
&lt;br /&gt;
=== [[Meeskond &amp;quot;Offline&amp;quot;]] ===&lt;br /&gt;
&lt;br /&gt;
=Teemad=&lt;br /&gt;
=XML failivorming ja sellega seotud tehnoloogiad=&lt;br /&gt;
&lt;br /&gt;
==XML failivorming==&lt;br /&gt;
===Loengusalvestused===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &#039;&#039;&#039;Esimese loengu salvestus http://enos.itcollege.ee/~htahis/VRII/WR2%20-%20Loeng%201/WR2%20-%20Loeng%201.html&#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Teise loengu salvestus http://echo360.e-uni.ee/ess/echo/presentation/9264dd7c-990a-4e3f-9045-1a7a5e04039b&#039;&#039;&#039;&lt;br /&gt;
** Teise loengu näited: http://enos.itcollege.ee/~htahis/VRII/Praktikum2%20(loeng2)/&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Esimese loengu salvestus, kus räägiti XML andmefailist asub siin:  http://echo360.e-uni.ee/ess/echo/presentation/d590aaa6-2d08-4852-9db6-42041cc7e438 &#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039;Teise loengu salvestus, kus räägiti XML skeemidest ja transformatsioonidest asub siin: http://echo360.e-uni.ee/ess/echo/presentation/fa1431fb-3b80-42a3-a7de-f18fe6a1d3ae &#039;&#039;&#039;&lt;br /&gt;
**Teises loengus tehtud näited, asuvad siin: http://enos.itcollege.ee/~mposka/Vorgurakendused_II_2012/Paevaope/Loengud/Loeng2/&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Kolmas loeng, kus räägiti LINQ&#039;st: http://echo360.e-uni.ee/ess/echo/presentation/bbb940ea-fb20-49b4-9d5b-7b2e41f1ac39 &#039;&#039;&#039;&lt;br /&gt;
**Kolmandas loengus tehtud näited asuvad siin: http://enos.itcollege.ee/~mposka/Vorgurakendused_II_2012/Paevaope/Loengud/Loeng3/&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
===Teooria=== &lt;br /&gt;
* XML failid&lt;br /&gt;
**  Kippar, J. &amp;quot;XML rakendused&amp;quot;, TLU:2009 http://minitorn.tlu.ee/~jaagup/kool/java/kursused/10/xmlrak/trykk/xmlrak.pdf&lt;br /&gt;
** XMLi rakendused ainekursuse leht by Jaagup Kippar http://minitorn.tlu.ee/~jaagup/kool/java/kursused/10/xmlrak/juht.html&lt;br /&gt;
** Introduction to XML by w3schools.com http://www.w3schools.com/xml/xml_whatis.asp&lt;br /&gt;
* XSLT - XML failide transformeerimine ehk stiilifailid&lt;br /&gt;
** XSLT Tutorial by w3schools.com http://www.w3schools.com/xsl/default.asp&lt;br /&gt;
&lt;br /&gt;
===Praktika===&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Praktikum: XML failide loomine, VR2.1]]&lt;br /&gt;
* [[Linq_päringukeel|Praktikum: LINQ päringute tegemine XML-i peal, VR2.2]]&lt;br /&gt;
** [http://enos.itcollege.ee/~kraspel/VRII/%5b2012.02.09%5d%20Praktikum%202%20/ Praktikumi näide]&lt;br /&gt;
* [[Praktikum: XML failide valideerimine (XSD, DTD) ning XML stiilide (XSLT) loomine , VR2.3]]&lt;br /&gt;
** [http://enos.itcollege.ee/~kraspel/VRII/%5b2012.02.16%5d%20Praktikum%203/ Praktikumi näide]&lt;br /&gt;
* [[Praktikum: XML failidega töötamine (kokkuvõttev praktikum), VR2.4]]&lt;br /&gt;
** [http://enos.itcollege.ee/~kraspel/VRII/%5b2012.02.23%5d%20Praktikum%204/ Praktikumi näide]&lt;br /&gt;
* [[Praktikum: Lihtne andmebaasil veebiteenus, VR2.6]]&lt;br /&gt;
** [http://enos.itcollege.ee/~kraspel/VRII/%5b2012.03.08%5d%20Praktikum%206/ Praktikumi näide]&lt;br /&gt;
* [[Praktikum: Veebiteenuse loomine Windows Communication Foundation abil, VR2.7]]&lt;br /&gt;
** [http://enos.itcollege.ee/~kraspel/VRII/%5b2012.03.15%5d%20Praktikum%208/ Praktikumi näide]&lt;br /&gt;
* Praktikum: Object Orientated crash, VR2.8&lt;br /&gt;
** [http://enos.itcollege.ee/~kraspel/VRII/%5b2012.03.22%5d%20Praktikum%209/ Praktikumi näide]&lt;br /&gt;
* [[Praktikum: Windows Communication Foundation teenuse turvamine, VR2.9]]&lt;br /&gt;
** [http://enos.itcollege.ee/~kraspel/VRII/%5b2012.04.05%5d%20Praktikum%2010/ Praktikumi näide]&lt;br /&gt;
* [[Praktikum: Windows Communication Foundation teenuse turvamine jätk, VR2.10]]&lt;br /&gt;
** [http://enos.itcollege.ee/~kraspel/VRII/%5b2012.04.13%5d%20Praktikum%2011/ Praktikumi näide]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Praktikum: XML failide loomine vol 2, VR2.2]]&lt;br /&gt;
* [[Praktikum: XML failide lugemine ja muutmine .Net vahenditega, VR2.3]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
[http://enos.itcollege.ee/~mposka/Vorgurakendused_II_2012/Ohtuope/Esimene_kohtumine/ Esimene kohtumine], kus tegeleti XML failide, skeemifailide ja transformatsioonide loomisega &amp;lt;br/&amp;gt;&lt;br /&gt;
[http://enos.itcollege.ee/~mposka/Vorgurakendused_II_2012/Ohtuope/Esimene_kohtumine/ Teine kohtumine] , kus tegeleti XML transformatsioonide loomisega ja tutvustati LINQt]&lt;br /&gt;
&lt;br /&gt;
=Veebiteenused=&lt;br /&gt;
==Loengud==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &#039;&#039;&#039; Neljas loeng: http://echo360.e-uni.ee/ess/echo/presentation/7b97f540-e6e1-4bbb-99c3-04e9833b690b &#039;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&#039; Viies loeng. Lihtsa veebiteenuse loomise algus: http://echo360.e-uni.ee/ess/echo/presentation/7babae6b-fd76-4564-b60b-d30f82d3d2cf&lt;br /&gt;
* &#039;&#039;&#039; Kuues loeng. &amp;lt;i&amp;gt;Windows Communication Foundation&amp;lt;/i&amp;gt;: http://echo360.e-uni.ee/ess/echo/presentation/78ee4f6d-e7d5-47e0-92b9-824331027bbd&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenuste loomine==&lt;br /&gt;
* ASP.NET Web Services http://msdn.microsoft.com/en-us/library/t745kdsh.aspx&lt;br /&gt;
* Creating and Consuming .NET Web Services in 5 Easy Steps http://articles.sitepoint.com/article/net-web-services-5-steps&lt;br /&gt;
&lt;br /&gt;
==Andmebaasiga ühendumine==&lt;br /&gt;
* Database Connectivity using WebService http://www.c-sharpcorner.com/UploadFile/raj1979/DatabaseWebService01142008011107AM/DatabaseWebService.aspx&lt;br /&gt;
&lt;br /&gt;
==Veebiteenuste turvamine==&lt;br /&gt;
* Securing ASP.Net Web Services with Forms Authentication http://dotnetslackers.com/articles/aspnet/Securing-ASP-Net-Web-Services-with-Forms-Authentication.aspx&lt;br /&gt;
&lt;br /&gt;
==Praktika==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* [[Praktikum: Lihtne andmebaasil veebiteenus, VR2.6]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Praktikum: Lihtne andmebaasil veebiteenus 2 (mitme tabeliga), VR2.7]]&lt;br /&gt;
* [[Praktikum: Rollipõhine kasutajahaldus veebiteenuses, VR2.8]]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Veebiteenuste kasutamine=&lt;br /&gt;
==Praktika==&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* [[Praktikum: Flickr&#039;i veebiteenuse rakendus, VR2.10]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47789</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47789"/>
		<updated>2012-05-05T13:24:13Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* XSLT (kolmas) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Veebiteenus==&lt;br /&gt;
&lt;br /&gt;
==Klientrakendus==&lt;br /&gt;
&lt;br /&gt;
==Log==&lt;br /&gt;
&lt;br /&gt;
===3. mai 2012 - neljapäev===&lt;br /&gt;
Kristjan ja Holger arutasid skypes XML teemal,&lt;br /&gt;
Kristjan pakkus õppejõule välja variandi teha XML EHAKist,&lt;br /&gt;
tegi codeplexi konto ja lisas sinna ka Holgeri kasutaja&lt;br /&gt;
ja tegi xml faili.&lt;br /&gt;
&lt;br /&gt;
===4. mai 2012 - reede===&lt;br /&gt;
Kristjan tegi xsd faili ja ühe xslt faili ning lisas Ragnari kasutaja codeplexi.&lt;br /&gt;
Lepiti kokku, et ülejäänud kaks xslt-d ja retsensioonid teise grupi xml faili kohta teevad Ragnar ja Holger.&lt;br /&gt;
&lt;br /&gt;
===5. mai 2012 - laupäev===&lt;br /&gt;
Kristjan lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47787</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47787"/>
		<updated>2012-05-05T13:16:43Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* XSLT (esimene) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47785</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47785"/>
		<updated>2012-05-05T13:13:50Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* XSLT (esimene) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XSLT [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 Output]:&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;h2&amp;gt;Rapla maakond&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;Kehtna vald&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Ahekõnnu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Ellamaa küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Haakla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Hertu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Hiie küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Ingliste küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kaerepere küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kalbu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kastna küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kehtna-Nurme küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kenni küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Koogimäe küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Koogiste küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kumma küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kõrbja küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Käbiküla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kärpla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Laeste küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Lalli küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Lau küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Lellapere küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Lellapere-Nurme küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Linnaaluste küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Lokuta küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Metsaääre küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Mukri küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Nadalama küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Nõlva küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Ohekatku küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Pae küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Palasi küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Paluküla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Põllu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Põrsaku küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Reonda küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Rõue küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Saarepõllu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Saksa küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Saunaküla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Selja küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Sooaluste küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Valtu-Nurme küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Vastja küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Eidapere &amp;lt;u&amp;gt;alevik&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kaerepere &amp;lt;u&amp;gt;alevik&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Keava &amp;lt;u&amp;gt;alevik&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kehtna &amp;lt;u&amp;gt;alevik&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Lelle &amp;lt;u&amp;gt;alevik&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;Rapla vald&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Alu-Metsküla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Aranküla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Hagudi küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Iira küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Juula küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kalevi küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kelba küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kodila küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kodila-Metsküla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Koigi küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kuku küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kuusiku-Nõmme küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kõrgu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Lipstu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Mahlamäe küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Mõisaaseme küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Mällu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Nõmme küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Oela küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Ohulepa küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Oola küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Palamulla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Purila küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Raka küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Ridaküla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Röa küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Seli küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Seli-Nurme küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Sikeldi küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Sulupere küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Tapupere küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Tuti küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Tõrma küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Uusküla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Valtu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Väljataguse küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Äherdi küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Ülejõe küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Alu &amp;lt;u&amp;gt;alevik&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Hagudi &amp;lt;u&amp;gt;alevik&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kuusiku &amp;lt;u&amp;gt;alevik&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;h2&amp;gt;Lääne maakond&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;Noarootsi vald&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Aulepa küla (Dirslätt)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Dirhami küla (Derhamn)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Einbi küla (Enby)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Elbiku küla (Ölbäck)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Hara küla (Harga)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Hosby küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Höbringi küla (Höbring)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kudani küla (Gutanäs)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Osmussaare küla (Odensholm)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Paslepa küla (Pasklep)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Pürksi küla (Birkas)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Riguldi küla (Rickul)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Rooslepa küla (Roslep)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Saare küla (Lyckholm)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Spithami küla (Spithamn)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Sutlepa küla (Sutlep)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Suur-Nõmmküla küla (Klottorp)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Tahu küla (Skåtanäs)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Telise küla (Tällnäs)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Tuksi küla (Bergsby)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Vanaküla küla (Gambyn)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Väike-Nõmmküla küla (Persåker)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Österby küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;h2&amp;gt;Harju maakond&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;Aegviidu vald&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Aegviidu &amp;lt;u&amp;gt;alev&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;Tallinn&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Haabersti linnaosa&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kesklinna linnaosa&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kristiine linnaosa&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Lasnamäe linnaosa&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Mustamäe linnaosa&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Nõmme linnaosa&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Pirita linnaosa&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Põhja-Tallinna linnaosa&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47783</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47783"/>
		<updated>2012-05-05T13:12:44Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* XSLT (esimene) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XSLT Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
  &amp;lt;head&amp;gt;&lt;br /&gt;
    &amp;lt;META http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=utf-8&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
  &amp;lt;/head&amp;gt;&lt;br /&gt;
  &amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
    &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;h2&amp;gt;Rapla maakond&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;Kehtna vald&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Ahekõnnu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Ellamaa küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Haakla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Hertu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Hiie küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Ingliste küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kaerepere küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kalbu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kastna küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kehtna-Nurme küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kenni küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Koogimäe küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Koogiste küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kumma küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kõrbja küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Käbiküla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kärpla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Laeste küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Lalli küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Lau küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Lellapere küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Lellapere-Nurme küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Linnaaluste küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Lokuta küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Metsaääre küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Mukri küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Nadalama küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Nõlva küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Ohekatku küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Pae küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Palasi küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Paluküla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Põllu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Põrsaku küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Reonda küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Rõue küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Saarepõllu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Saksa küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Saunaküla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Selja küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Sooaluste küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Valtu-Nurme küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Vastja küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Eidapere &amp;lt;u&amp;gt;alevik&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kaerepere &amp;lt;u&amp;gt;alevik&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Keava &amp;lt;u&amp;gt;alevik&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kehtna &amp;lt;u&amp;gt;alevik&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Lelle &amp;lt;u&amp;gt;alevik&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;Rapla vald&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Alu-Metsküla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Aranküla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Hagudi küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Iira küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Juula küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kalevi küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kelba küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kodila küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kodila-Metsküla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Koigi küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kuku küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kuusiku-Nõmme küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kõrgu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Lipstu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Mahlamäe küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Mõisaaseme küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Mällu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Nõmme küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Oela küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Ohulepa küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Oola küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Palamulla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Purila küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Raka küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Ridaküla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Röa küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Seli küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Seli-Nurme küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Sikeldi küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Sulupere küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Tapupere küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Tuti küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Tõrma küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Uusküla küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Valtu küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Väljataguse küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Äherdi küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Ülejõe küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Alu &amp;lt;u&amp;gt;alevik&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Hagudi &amp;lt;u&amp;gt;alevik&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kuusiku &amp;lt;u&amp;gt;alevik&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;h2&amp;gt;Lääne maakond&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;Noarootsi vald&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Aulepa küla (Dirslätt)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Dirhami küla (Derhamn)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Einbi küla (Enby)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Elbiku küla (Ölbäck)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Hara küla (Harga)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Hosby küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Höbringi küla (Höbring)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kudani küla (Gutanäs)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Osmussaare küla (Odensholm)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Paslepa küla (Pasklep)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Pürksi küla (Birkas)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Riguldi küla (Rickul)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Rooslepa küla (Roslep)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Saare küla (Lyckholm)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Spithami küla (Spithamn)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Sutlepa küla (Sutlep)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Suur-Nõmmküla küla (Klottorp)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Tahu küla (Skåtanäs)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Telise küla (Tällnäs)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Tuksi küla (Bergsby)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Vanaküla küla (Gambyn)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Väike-Nõmmküla küla (Persåker)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Österby küla&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;h2&amp;gt;Harju maakond&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;Aegviidu vald&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Aegviidu &amp;lt;u&amp;gt;alev&amp;lt;/u&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;&amp;lt;i&amp;gt;&amp;lt;b&amp;gt;&amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;br&amp;gt;Tallinn&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;th&amp;gt;&amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&amp;lt;/th&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Haabersti linnaosa&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kesklinna linnaosa&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Kristiine linnaosa&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Lasnamäe linnaosa&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Mustamäe linnaosa&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Nõmme linnaosa&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Pirita linnaosa&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
      &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;td&amp;gt;Põhja-Tallinna linnaosa&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/table&amp;gt;&lt;br /&gt;
  &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47778</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47778"/>
		<updated>2012-05-05T12:59:05Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* XSLT (esimene) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47777</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47777"/>
		<updated>2012-05-05T12:58:34Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* XML */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 Link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47776</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47776"/>
		<updated>2012-05-05T12:58:15Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* XML */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
XML fail sisaldab andmeid [http://metaweb.stat.ee/classificator_publish_list.htm Eesti haldus- ja asustusüksuste] (EHAK) kohta. Andmed saadi [http://metaweb.stat.ee/get_classificator_file.htm?id=3279007&amp;amp;siteLanguage=ee siit].&lt;br /&gt;
Statistikaametil on küll juba olemas [http://metaweb.stat.ee/get_classificator_file.htm?id=3273742&amp;amp;siteLanguage=ee EHAKi xml], kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47775</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47775"/>
		<updated>2012-05-05T12:56:04Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* XSLT (esimene) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (teine)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (kolmas)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47774</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47774"/>
		<updated>2012-05-05T12:55:22Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* XML schema (XSD) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47773</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47773"/>
		<updated>2012-05-05T12:54:46Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* XML schema (XSD) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47772</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47772"/>
		<updated>2012-05-05T12:54:11Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* XML schema (XSD) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47771</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47771"/>
		<updated>2012-05-05T12:53:49Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* XML schema (XSD) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47769</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47769"/>
		<updated>2012-05-05T12:52:26Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* XML */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
[https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910 link codeplexis olevale xml-ile] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47768</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47768"/>
		<updated>2012-05-05T12:51:08Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* XML */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;br /&gt;
&lt;br /&gt;
===XML===&lt;br /&gt;
&lt;br /&gt;
[url:link codeplexis olevale xml-ile|https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910] (see on liiga suur siia panekuks).&lt;br /&gt;
&lt;br /&gt;
===XML schema (XSD)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xs:schema attributeFormDefault=&amp;quot;unqualified&amp;quot; elementFormDefault=&amp;quot;qualified&amp;quot; xmlns:xs=&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;xs:element name=&amp;quot;ehak&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;xs:complexType&amp;gt;&lt;br /&gt;
      &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
        &amp;lt;!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer--&amp;gt;&lt;br /&gt;
        &amp;lt;xs:element maxOccurs=&amp;quot;90&amp;quot; name=&amp;quot;maakond&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
          &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:sequence&amp;gt;&lt;br /&gt;
              &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:sequence &amp;gt;&lt;br /&gt;
                    &amp;lt;xs:element maxOccurs=&amp;quot;unbounded&amp;quot; name=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus --&amp;gt;&lt;br /&gt;
                      &amp;lt;xs:complexType mixed=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot;&amp;gt;&amp;lt;/xs:attribute&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüüp&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi --&amp;gt;&lt;br /&gt;
                        &amp;lt;xs:attribute name=&amp;quot;rööpnimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;optional&amp;quot; /&amp;gt;&lt;br /&gt;
                      &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                    &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
                  &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedShort&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:attribute name=&amp;quot;tüübinimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
                &amp;lt;xs:unique name=&amp;quot;UnikaalneAsustusüksuseKood&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:selector xpath=&amp;quot;asustusüksus&amp;quot; /&amp;gt;&lt;br /&gt;
                  &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
              &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
            &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;nimi&amp;quot; type=&amp;quot;xs:string&amp;quot; use=&amp;quot;required&amp;quot;/&amp;gt;&lt;br /&gt;
            &amp;lt;!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...--&amp;gt;&lt;br /&gt;
            &amp;lt;xs:attribute name=&amp;quot;kood&amp;quot; type=&amp;quot;xs:unsignedByte&amp;quot; use=&amp;quot;required&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
          &amp;lt;xs:unique name=&amp;quot;UnikaalneOmavalitsuseKood&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;xs:selector xpath=&amp;quot;omavalitsus&amp;quot; /&amp;gt;&lt;br /&gt;
            &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
          &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
        &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
      &amp;lt;/xs:sequence&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:complexType&amp;gt;&lt;br /&gt;
    &amp;lt;xs:unique name=&amp;quot;UnikaalneMaakonnaKood&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;xs:selector xpath=&amp;quot;maakond&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;xs:field xpath=&amp;quot;@kood&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/xs:unique&amp;gt;&lt;br /&gt;
  &amp;lt;/xs:element&amp;gt;&lt;br /&gt;
&amp;lt;/xs:schema&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XSLT (esimene)===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;xsl:stylesheet version=&amp;quot;1.0&amp;quot; xmlns:xsl=&amp;quot;http://www.w3.org/1999/XSL/Transform&amp;quot;&lt;br /&gt;
    xmlns:msxsl=&amp;quot;urn:schemas-microsoft-com:xslt&amp;quot; exclude-result-prefixes=&amp;quot;msxsl&amp;quot;&lt;br /&gt;
&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:output method=&amp;quot;html&amp;quot; indent=&amp;quot;yes&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;xsl:template match=&amp;quot;/&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;html&amp;gt;&lt;br /&gt;
      &amp;lt;head&amp;gt;&lt;br /&gt;
        &amp;lt;title&amp;gt;Superkena haldus- ja asustusüksuste kuvamise leht!&amp;lt;/title&amp;gt;&lt;br /&gt;
      &amp;lt;/head&amp;gt;&lt;br /&gt;
      &amp;lt;body&amp;gt;&lt;br /&gt;
        &amp;lt;h2&amp;gt;&lt;br /&gt;
          Maakonnad, omavalitsused ja asustusüksused&lt;br /&gt;
        &amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
          &amp;lt;xsl:for-each select=&amp;quot;/ehak/maakond&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;h2&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                &amp;lt;/h2&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Vallad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad--&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;vald&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Külad, alevikud, alevid&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult&lt;br /&gt;
                 - esmalt külad, siis alevikud ja lõpuks alevid --&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;küla&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alevik&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;alev&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                      &amp;lt;td&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kirjutame nime koos tüübinimega--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;u&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                        &amp;lt;/u&amp;gt;&lt;br /&gt;
                        &amp;lt;!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse--&amp;gt;&lt;br /&gt;
                        &amp;lt;xsl:if test=&amp;quot;@rööpnimi&amp;quot;&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt; (&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:value-of select=&amp;quot;@rööpnimi&amp;quot;/&amp;gt;&lt;br /&gt;
                          &amp;lt;xsl:text&amp;gt;)&amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                        &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                      &amp;lt;/td&amp;gt;&lt;br /&gt;
                    &amp;lt;/tr&amp;gt;&lt;br /&gt;
                  &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
            &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;th&amp;gt;&lt;br /&gt;
                &amp;lt;br/&amp;gt;&lt;br /&gt;
                &amp;lt;i&amp;gt;&lt;br /&gt;
                  &amp;lt;b&amp;gt;&lt;br /&gt;
                    &amp;lt;font size=&amp;quot;5&amp;quot;&amp;gt;Linnad&amp;lt;/font&amp;gt;&lt;br /&gt;
                  &amp;lt;/b&amp;gt;&lt;br /&gt;
                &amp;lt;/i&amp;gt;&lt;br /&gt;
              &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;xsl:for-each select=&amp;quot;omavalitsus&amp;quot;&amp;gt;&lt;br /&gt;
              &amp;lt;xsl:if test=&amp;quot;@tüübinimi=&#039;linn&#039;&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;br/&amp;gt;&lt;br /&gt;
                    &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;th&amp;gt;&lt;br /&gt;
                    &amp;lt;i&amp;gt;Linnaosad&amp;lt;/i&amp;gt;&lt;br /&gt;
                  &amp;lt;/th&amp;gt;&lt;br /&gt;
                &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, &lt;br /&gt;
                siis on ainult üks tsükkel ja tüübinime ei kontrollita--&amp;gt;&lt;br /&gt;
                &amp;lt;xsl:for-each select=&amp;quot;asustusüksus&amp;quot;&amp;gt;&lt;br /&gt;
                  &amp;lt;tr valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
                    &amp;lt;td&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@nimi&amp;quot;/&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:text&amp;gt; &amp;lt;/xsl:text&amp;gt;&lt;br /&gt;
                      &amp;lt;xsl:value-of select=&amp;quot;@tüübinimi&amp;quot;/&amp;gt;&lt;br /&gt;
                    &amp;lt;/td&amp;gt;&lt;br /&gt;
                  &amp;lt;/tr&amp;gt;&lt;br /&gt;
                &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
              &amp;lt;/xsl:if&amp;gt;&lt;br /&gt;
            &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
          &amp;lt;/xsl:for-each&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/body&amp;gt;&lt;br /&gt;
    &amp;lt;/html&amp;gt;&lt;br /&gt;
  &amp;lt;/xsl:template&amp;gt;&lt;br /&gt;
&amp;lt;/xsl:stylesheet&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47764</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47764"/>
		<updated>2012-05-05T12:46:34Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* XML */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47763</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47763"/>
		<updated>2012-05-05T12:46:25Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: /* Meeskond */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Meeskond==&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
=XML=&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
	<entry>
		<id>https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47762</id>
		<title>Meeskond &quot;Offline&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.itcollege.ee/index.php?title=Meeskond_%22Offline%22&amp;diff=47762"/>
		<updated>2012-05-05T12:45:15Z</updated>

		<summary type="html">&lt;p&gt;Kroosild: Created page with &amp;#039;=Meeskond=  * Kristjan Roosild * Ragnar Rattas * Holger Rünkaru  =XML=  Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XM…&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Meeskond=&lt;br /&gt;
&lt;br /&gt;
* Kristjan Roosild&lt;br /&gt;
* Ragnar Rattas&lt;br /&gt;
* Holger Rünkaru&lt;br /&gt;
&lt;br /&gt;
=XML=&lt;br /&gt;
&lt;br /&gt;
Luua XML fail andmete edastamiseks, selle XML faili skeemifail ning paar kolm sobivat XSL faili loodud XML failis olevate andmete transformeerimiseks HTML formaati ja XML faili formaadi muutmiseks. XML-il peab olema vähemalt 4 loogilist dimensiooni. Lisaks tuleb kasutada 3-el dimensioonil attribuute, mis on enamat, kui lihtsalt ID.&lt;/div&gt;</summary>
		<author><name>Kroosild</name></author>
	</entry>
</feed>