Meeskond "Offline": Difference between revisions

From ICO wiki
Jump to navigationJump to search
Line 235: Line 235:
</xsl:stylesheet>
</xsl:stylesheet>
</source>
</source>
XSLT Output:
<html>
  <head>
    <META http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Superkena haldus- ja asustusüksuste kuvamise leht!</title>
  </head>
  <body>
    <h2>
          Maakonnad, omavalitsused ja asustusüksused
        </h2>
    <table border="0">
      <tr valign="top">
        <th><br><h2>Rapla maakond</h2>
        </th>
      </tr>
      <tr valign="top">
        <th><br><i><b><font size="5">Vallad</font></b></i></th>
      </tr>
      <tr valign="top">
        <th><br>Kehtna vald</th>
      </tr>
      <tr valign="top">
        <th><i>Külad, alevikud, alevid</i></th>
      </tr>
      <tr valign="top">
        <td>Ahekõnnu küla</td>
      </tr>
      <tr valign="top">
        <td>Ellamaa küla</td>
      </tr>
      <tr valign="top">
        <td>Haakla küla</td>
      </tr>
      <tr valign="top">
        <td>Hertu küla</td>
      </tr>
      <tr valign="top">
        <td>Hiie küla</td>
      </tr>
      <tr valign="top">
        <td>Ingliste küla</td>
      </tr>
      <tr valign="top">
        <td>Kaerepere küla</td>
      </tr>
      <tr valign="top">
        <td>Kalbu küla</td>
      </tr>
      <tr valign="top">
        <td>Kastna küla</td>
      </tr>
      <tr valign="top">
        <td>Kehtna-Nurme küla</td>
      </tr>
      <tr valign="top">
        <td>Kenni küla</td>
      </tr>
      <tr valign="top">
        <td>Koogimäe küla</td>
      </tr>
      <tr valign="top">
        <td>Koogiste küla</td>
      </tr>
      <tr valign="top">
        <td>Kumma küla</td>
      </tr>
      <tr valign="top">
        <td>Kõrbja küla</td>
      </tr>
      <tr valign="top">
        <td>Käbiküla küla</td>
      </tr>
      <tr valign="top">
        <td>Kärpla küla</td>
      </tr>
      <tr valign="top">
        <td>Laeste küla</td>
      </tr>
      <tr valign="top">
        <td>Lalli küla</td>
      </tr>
      <tr valign="top">
        <td>Lau küla</td>
      </tr>
      <tr valign="top">
        <td>Lellapere küla</td>
      </tr>
      <tr valign="top">
        <td>Lellapere-Nurme küla</td>
      </tr>
      <tr valign="top">
        <td>Linnaaluste küla</td>
      </tr>
      <tr valign="top">
        <td>Lokuta küla</td>
      </tr>
      <tr valign="top">
        <td>Metsaääre küla</td>
      </tr>
      <tr valign="top">
        <td>Mukri küla</td>
      </tr>
      <tr valign="top">
        <td>Nadalama küla</td>
      </tr>
      <tr valign="top">
        <td>Nõlva küla</td>
      </tr>
      <tr valign="top">
        <td>Ohekatku küla</td>
      </tr>
      <tr valign="top">
        <td>Pae küla</td>
      </tr>
      <tr valign="top">
        <td>Palasi küla</td>
      </tr>
      <tr valign="top">
        <td>Paluküla küla</td>
      </tr>
      <tr valign="top">
        <td>Põllu küla</td>
      </tr>
      <tr valign="top">
        <td>Põrsaku küla</td>
      </tr>
      <tr valign="top">
        <td>Reonda küla</td>
      </tr>
      <tr valign="top">
        <td>Rõue küla</td>
      </tr>
      <tr valign="top">
        <td>Saarepõllu küla</td>
      </tr>
      <tr valign="top">
        <td>Saksa küla</td>
      </tr>
      <tr valign="top">
        <td>Saunaküla küla</td>
      </tr>
      <tr valign="top">
        <td>Selja küla</td>
      </tr>
      <tr valign="top">
        <td>Sooaluste küla</td>
      </tr>
      <tr valign="top">
        <td>Valtu-Nurme küla</td>
      </tr>
      <tr valign="top">
        <td>Vastja küla</td>
      </tr>
      <tr valign="top">
        <td>Eidapere <u>alevik</u></td>
      </tr>
      <tr valign="top">
        <td>Kaerepere <u>alevik</u></td>
      </tr>
      <tr valign="top">
        <td>Keava <u>alevik</u></td>
      </tr>
      <tr valign="top">
        <td>Kehtna <u>alevik</u></td>
      </tr>
      <tr valign="top">
        <td>Lelle <u>alevik</u></td>
      </tr>
      <tr valign="top">
        <th><br>Rapla vald</th>
      </tr>
      <tr valign="top">
        <th><i>Külad, alevikud, alevid</i></th>
      </tr>
      <tr valign="top">
        <td>Alu-Metsküla küla</td>
      </tr>
      <tr valign="top">
        <td>Aranküla küla</td>
      </tr>
      <tr valign="top">
        <td>Hagudi küla</td>
      </tr>
      <tr valign="top">
        <td>Iira küla</td>
      </tr>
      <tr valign="top">
        <td>Juula küla</td>
      </tr>
      <tr valign="top">
        <td>Kalevi küla</td>
      </tr>
      <tr valign="top">
        <td>Kelba küla</td>
      </tr>
      <tr valign="top">
        <td>Kodila küla</td>
      </tr>
      <tr valign="top">
        <td>Kodila-Metsküla küla</td>
      </tr>
      <tr valign="top">
        <td>Koigi küla</td>
      </tr>
      <tr valign="top">
        <td>Kuku küla</td>
      </tr>
      <tr valign="top">
        <td>Kuusiku-Nõmme küla</td>
      </tr>
      <tr valign="top">
        <td>Kõrgu küla</td>
      </tr>
      <tr valign="top">
        <td>Lipstu küla</td>
      </tr>
      <tr valign="top">
        <td>Mahlamäe küla</td>
      </tr>
      <tr valign="top">
        <td>Mõisaaseme küla</td>
      </tr>
      <tr valign="top">
        <td>Mällu küla</td>
      </tr>
      <tr valign="top">
        <td>Nõmme küla</td>
      </tr>
      <tr valign="top">
        <td>Oela küla</td>
      </tr>
      <tr valign="top">
        <td>Ohulepa küla</td>
      </tr>
      <tr valign="top">
        <td>Oola küla</td>
      </tr>
      <tr valign="top">
        <td>Palamulla küla</td>
      </tr>
      <tr valign="top">
        <td>Purila küla</td>
      </tr>
      <tr valign="top">
        <td>Raka küla</td>
      </tr>
      <tr valign="top">
        <td>Ridaküla küla</td>
      </tr>
      <tr valign="top">
        <td>Röa küla</td>
      </tr>
      <tr valign="top">
        <td>Seli küla</td>
      </tr>
      <tr valign="top">
        <td>Seli-Nurme küla</td>
      </tr>
      <tr valign="top">
        <td>Sikeldi küla</td>
      </tr>
      <tr valign="top">
        <td>Sulupere küla</td>
      </tr>
      <tr valign="top">
        <td>Tapupere küla</td>
      </tr>
      <tr valign="top">
        <td>Tuti küla</td>
      </tr>
      <tr valign="top">
        <td>Tõrma küla</td>
      </tr>
      <tr valign="top">
        <td>Uusküla küla</td>
      </tr>
      <tr valign="top">
        <td>Valtu küla</td>
      </tr>
      <tr valign="top">
        <td>Väljataguse küla</td>
      </tr>
      <tr valign="top">
        <td>Äherdi küla</td>
      </tr>
      <tr valign="top">
        <td>Ülejõe küla</td>
      </tr>
      <tr valign="top">
        <td>Alu <u>alevik</u></td>
      </tr>
      <tr valign="top">
        <td>Hagudi <u>alevik</u></td>
      </tr>
      <tr valign="top">
        <td>Kuusiku <u>alevik</u></td>
      </tr>
      <tr valign="top">
        <th><br><i><b><font size="5">Linnad</font></b></i></th>
      </tr>
      <tr valign="top">
        <th><br><h2>Lääne maakond</h2>
        </th>
      </tr>
      <tr valign="top">
        <th><br><i><b><font size="5">Vallad</font></b></i></th>
      </tr>
      <tr valign="top">
        <th><br>Noarootsi vald</th>
      </tr>
      <tr valign="top">
        <th><i>Külad, alevikud, alevid</i></th>
      </tr>
      <tr valign="top">
        <td>Aulepa küla (Dirslätt)</td>
      </tr>
      <tr valign="top">
        <td>Dirhami küla (Derhamn)</td>
      </tr>
      <tr valign="top">
        <td>Einbi küla (Enby)</td>
      </tr>
      <tr valign="top">
        <td>Elbiku küla (Ölbäck)</td>
      </tr>
      <tr valign="top">
        <td>Hara küla (Harga)</td>
      </tr>
      <tr valign="top">
        <td>Hosby küla</td>
      </tr>
      <tr valign="top">
        <td>Höbringi küla (Höbring)</td>
      </tr>
      <tr valign="top">
        <td>Kudani küla (Gutanäs)</td>
      </tr>
      <tr valign="top">
        <td>Osmussaare küla (Odensholm)</td>
      </tr>
      <tr valign="top">
        <td>Paslepa küla (Pasklep)</td>
      </tr>
      <tr valign="top">
        <td>Pürksi küla (Birkas)</td>
      </tr>
      <tr valign="top">
        <td>Riguldi küla (Rickul)</td>
      </tr>
      <tr valign="top">
        <td>Rooslepa küla (Roslep)</td>
      </tr>
      <tr valign="top">
        <td>Saare küla (Lyckholm)</td>
      </tr>
      <tr valign="top">
        <td>Spithami küla (Spithamn)</td>
      </tr>
      <tr valign="top">
        <td>Sutlepa küla (Sutlep)</td>
      </tr>
      <tr valign="top">
        <td>Suur-Nõmmküla küla (Klottorp)</td>
      </tr>
      <tr valign="top">
        <td>Tahu küla (Skåtanäs)</td>
      </tr>
      <tr valign="top">
        <td>Telise küla (Tällnäs)</td>
      </tr>
      <tr valign="top">
        <td>Tuksi küla (Bergsby)</td>
      </tr>
      <tr valign="top">
        <td>Vanaküla küla (Gambyn)</td>
      </tr>
      <tr valign="top">
        <td>Väike-Nõmmküla küla (Persåker)</td>
      </tr>
      <tr valign="top">
        <td>Österby küla</td>
      </tr>
      <tr valign="top">
        <th><br><i><b><font size="5">Linnad</font></b></i></th>
      </tr>
      <tr valign="top">
        <th><br><h2>Harju maakond</h2>
        </th>
      </tr>
      <tr valign="top">
        <th><br><i><b><font size="5">Vallad</font></b></i></th>
      </tr>
      <tr valign="top">
        <th><br>Aegviidu vald</th>
      </tr>
      <tr valign="top">
        <th><i>Külad, alevikud, alevid</i></th>
      </tr>
      <tr valign="top">
        <td>Aegviidu <u>alev</u></td>
      </tr>
      <tr valign="top">
        <th><br><i><b><font size="5">Linnad</font></b></i></th>
      </tr>
      <tr valign="top">
        <th><br>Tallinn</th>
      </tr>
      <tr valign="top">
        <th><i>Linnaosad</i></th>
      </tr>
      <tr valign="top">
        <td>Haabersti linnaosa</td>
      </tr>
      <tr valign="top">
        <td>Kesklinna linnaosa</td>
      </tr>
      <tr valign="top">
        <td>Kristiine linnaosa</td>
      </tr>
      <tr valign="top">
        <td>Lasnamäe linnaosa</td>
      </tr>
      <tr valign="top">
        <td>Mustamäe linnaosa</td>
      </tr>
      <tr valign="top">
        <td>Nõmme linnaosa</td>
      </tr>
      <tr valign="top">
        <td>Pirita linnaosa</td>
      </tr>
      <tr valign="top">
        <td>Põhja-Tallinna linnaosa</td>
      </tr>
    </table>
  </body>
</html>


===XSLT (teine)===
===XSLT (teine)===

Revision as of 16:12, 5 May 2012

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 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.

XML

XML fail sisaldab andmeid Eesti haldus- ja asustusüksuste (EHAK) kohta. Andmed saadi siit. Statistikaametil on küll juba olemas EHAKi xml, kuid see ei ole just kõige paremini loetav, sellepärast proovisimegi ise parema teha.

Link codeplexis olevale xml-ile (see on liiga suur siia panekuks).

XML schema (XSD)

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="ehak">
    <xs:complexType>
      <xs:sequence >
        <!-- maakodi võib olla maksimaalselt 90 kuna maakonna kood peab olema unikaalne ja alati kahekohaline integer-->
        <xs:element maxOccurs="90" name="maakond">
          <!-- keelame ära maakonna mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus -->
          <xs:complexType mixed="false">
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="omavalitsus">
                <!-- keelame ära omavalitsuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus -->
                <xs:complexType mixed="false">
                  <xs:sequence >
                    <xs:element maxOccurs="unbounded" name="asustusüksus">
                      <!-- keelame ära asustusüksuse mixed contenti, sest kõik info on atribuutides ja elemendil endal puudub väärtus -->
                      <xs:complexType mixed="false">
                        <xs:attribute name="nimi" type="xs:string" use="required" />
                        <!-- alati neljakohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...-->
                        <xs:attribute name="kood" type="xs:unsignedShort" use="required"></xs:attribute>
                        <!-- alati ühekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...-->
                        <xs:attribute name="tüüp" type="xs:unsignedByte" use="required" />
                        <xs:attribute name="tüübinimi" type="xs:string" use="required" />
                        <!-- osadel küladel, kus on suur hulk sisserännanuid (Noarootsi) on kasutusel ka võõrkeelne nimi -->
                        <xs:attribute name="rööpnimi" type="xs:string" use="optional" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="nimi" type="xs:string" use="required" />
                  <!-- alati kolmekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...-->
                  <xs:attribute name="kood" type="xs:unsignedShort" use="required" />
                  <xs:attribute name="tüübinimi" type="xs:string" use="required" />
                </xs:complexType>
                <xs:unique name="UnikaalneAsustusüksuseKood">
                  <xs:selector xpath="asustusüksus" />
                  <xs:field xpath="@kood" />
                </xs:unique>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="nimi" type="xs:string" use="required"/>
            <!-- alati kahekohaline positiivne integer - seda peaks kuidagi saama pareimini ära määrata/piirata...-->
            <xs:attribute name="kood" type="xs:unsignedByte" use="required" />
          </xs:complexType>
          <xs:unique name="UnikaalneOmavalitsuseKood">
            <xs:selector xpath="omavalitsus" />
            <xs:field xpath="@kood" />
          </xs:unique>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
    <xs:unique name="UnikaalneMaakonnaKood">
      <xs:selector xpath="maakond" />
      <xs:field xpath="@kood" />
    </xs:unique>
  </xs:element>
</xs:schema>


XSLT (esimene)

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.

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
  <xsl:output method="html" indent="yes"/>
  <xsl:template match="/">
    <html>
      <head>
        <title>Superkena haldus- ja asustusüksuste kuvamise leht!</title>
      </head>
      <body>
        <h2>
          Maakonnad, omavalitsused ja asustusüksused
        </h2>
        <table border="0">
          <xsl:for-each select="/ehak/maakond">
            <tr valign="top">
              <th>
                <br/>
                <h2>
                  <xsl:value-of select="@nimi"/>
                </h2>
              </th>
            </tr>
            <tr valign="top">
              <th>
                <br/>
                <i>
                  <b>
                    <font size="5">Vallad</font>
                  </b>
                </i>
              </th>
            </tr>
            <!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad-->
            <xsl:for-each select="omavalitsus">
              <xsl:if test="@tüübinimi='vald'">
                <tr valign="top">
                  <th>
                    <br/>
                    <xsl:value-of select="@nimi"/>
                    <xsl:text> </xsl:text>
                    <xsl:value-of select="@tüübinimi"/>
                  </th>
                </tr>
                <tr valign="top">
                  <th>
                    <i>Külad, alevikud, alevid</i>
                  </th>
                </tr>
                <!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult
                 - esmalt külad, siis alevikud ja lõpuks alevid -->
                <xsl:for-each select="asustusüksus">
                  <xsl:if test="@tüübinimi='küla'">
                    <tr valign="top">
                      <td>
                        <!-- kirjutame nime koos tüübinimega-->
                        <xsl:value-of select="@nimi"/>
                        <xsl:text> </xsl:text>
                        <xsl:value-of select="@tüübinimi"/>
                        <!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse-->
                        <xsl:if test="@rööpnimi">
                          <xsl:text> (</xsl:text>
                          <xsl:value-of select="@rööpnimi"/>
                          <xsl:text>)</xsl:text>
                        </xsl:if>
                      </td>
                    </tr>
                  </xsl:if>
                </xsl:for-each>
                <xsl:for-each select="asustusüksus">
                  <xsl:if test="@tüübinimi='alevik'">
                    <tr valign="top">
                      <td>
                        <!-- kirjutame nime koos tüübinimega-->
                        <xsl:value-of select="@nimi"/>
                        <xsl:text> </xsl:text>
                        <u>
                          <xsl:value-of select="@tüübinimi"/>
                        </u>
                        <!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse-->
                        <xsl:if test="@rööpnimi">
                          <xsl:text> (</xsl:text>
                          <xsl:value-of select="@rööpnimi"/>
                          <xsl:text>)</xsl:text>
                        </xsl:if>
                      </td>
                    </tr>
                  </xsl:if>
                </xsl:for-each>
                <xsl:for-each select="asustusüksus">
                  <xsl:if test="@tüübinimi='alev'">
                    <tr valign="top">
                      <td>
                        <!-- kirjutame nime koos tüübinimega-->
                        <xsl:value-of select="@nimi"/>
                        <xsl:text> </xsl:text>
                        <u>
                          <xsl:value-of select="@tüübinimi"/>
                        </u>
                        <!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse-->
                        <xsl:if test="@rööpnimi">
                          <xsl:text> (</xsl:text>
                          <xsl:value-of select="@rööpnimi"/>
                          <xsl:text>)</xsl:text>
                        </xsl:if>
                      </td>
                    </tr>
                  </xsl:if>
                </xsl:for-each>
              </xsl:if>
            </xsl:for-each>
            <tr valign="top">
              <th>
                <br/>
                <i>
                  <b>
                    <font size="5">Linnad</font>
                  </b>
                </i>
              </th>
            </tr>
            <xsl:for-each select="omavalitsus">
              <xsl:if test="@tüübinimi='linn'">
                <tr valign="top">
                  <th>
                    <br/>
                    <xsl:value-of select="@nimi"/>
                  </th>
                </tr>
                <tr valign="top">
                  <th>
                    <i>Linnaosad</i>
                  </th>
                </tr>
                <!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad, 
                siis on ainult üks tsükkel ja tüübinime ei kontrollita-->
                <xsl:for-each select="asustusüksus">
                  <tr valign="top">
                    <td>
                      <xsl:value-of select="@nimi"/>
                      <xsl:text> </xsl:text>
                      <xsl:value-of select="@tüübinimi"/>
                    </td>
                  </tr>
                </xsl:for-each>
              </xsl:if>
            </xsl:for-each>
          </xsl:for-each>
        </table>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

XSLT Output:

<html>

 <head>
   <META http-equiv="Content-Type" content="text/html; charset=utf-8">
   <title>Superkena haldus- ja asustusüksuste kuvamise leht!</title>
 </head>
 <body>

Maakonnad, omavalitsused ja asustusüksused


Rapla maakond


Vallad

Kehtna vald
Külad, alevikud, alevid
Ahekõnnu küla
Ellamaa küla
Haakla küla
Hertu küla
Hiie küla
Ingliste küla
Kaerepere küla
Kalbu küla
Kastna küla
Kehtna-Nurme küla
Kenni küla
Koogimäe küla
Koogiste küla
Kumma küla
Kõrbja küla
Käbiküla küla
Kärpla küla
Laeste küla
Lalli küla
Lau küla
Lellapere küla
Lellapere-Nurme küla
Linnaaluste küla
Lokuta küla
Metsaääre küla
Mukri küla
Nadalama küla
Nõlva küla
Ohekatku küla
Pae küla
Palasi küla
Paluküla küla
Põllu küla
Põrsaku küla
Reonda küla
Rõue küla
Saarepõllu küla
Saksa küla
Saunaküla küla
Selja küla
Sooaluste küla
Valtu-Nurme küla
Vastja küla
Eidapere alevik
Kaerepere alevik
Keava alevik
Kehtna alevik
Lelle alevik

Rapla vald
Külad, alevikud, alevid
Alu-Metsküla küla
Aranküla küla
Hagudi küla
Iira küla
Juula küla
Kalevi küla
Kelba küla
Kodila küla
Kodila-Metsküla küla
Koigi küla
Kuku küla
Kuusiku-Nõmme küla
Kõrgu küla
Lipstu küla
Mahlamäe küla
Mõisaaseme küla
Mällu küla
Nõmme küla
Oela küla
Ohulepa küla
Oola küla
Palamulla küla
Purila küla
Raka küla
Ridaküla küla
Röa küla
Seli küla
Seli-Nurme küla
Sikeldi küla
Sulupere küla
Tapupere küla
Tuti küla
Tõrma küla
Uusküla küla
Valtu küla
Väljataguse küla
Äherdi küla
Ülejõe küla
Alu alevik
Hagudi alevik
Kuusiku alevik

Linnad

Lääne maakond


Vallad

Noarootsi vald
Külad, alevikud, alevid
Aulepa küla (Dirslätt)
Dirhami küla (Derhamn)
Einbi küla (Enby)
Elbiku küla (Ölbäck)
Hara küla (Harga)
Hosby küla
Höbringi küla (Höbring)
Kudani küla (Gutanäs)
Osmussaare küla (Odensholm)
Paslepa küla (Pasklep)
Pürksi küla (Birkas)
Riguldi küla (Rickul)
Rooslepa küla (Roslep)
Saare küla (Lyckholm)
Spithami küla (Spithamn)
Sutlepa küla (Sutlep)
Suur-Nõmmküla küla (Klottorp)
Tahu küla (Skåtanäs)
Telise küla (Tällnäs)
Tuksi küla (Bergsby)
Vanaküla küla (Gambyn)
Väike-Nõmmküla küla (Persåker)
Österby küla

Linnad

Harju maakond


Vallad

Aegviidu vald
Külad, alevikud, alevid
Aegviidu alev

Linnad

Tallinn
Linnaosad
Haabersti linnaosa
Kesklinna linnaosa
Kristiine linnaosa
Lasnamäe linnaosa
Mustamäe linnaosa
Nõmme linnaosa
Pirita linnaosa
Põhja-Tallinna linnaosa
 </body>

</html>

XSLT (teine)

XSLT (kolmas)