Meeskond "Offline"
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
[url:link codeplexis olevale xml-ile|https://ehak.codeplex.com/SourceControl/changeset/view/16692#260910] (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 > <xs:element maxOccurs="90" name="maakond"> <xs:complexType mixed="false"> <xs:sequence> <xs:element maxOccurs="unbounded" name="omavalitsus"> <xs:complexType mixed="false"> <xs:sequence > <xs:element maxOccurs="unbounded" name="asustusüksus"> <xs:complexType mixed="false"> <xs:attribute name="nimi" type="xs:string" use="required" /> <xs:attribute name="kood" type="xs:unsignedShort" use="required"></xs:attribute> <xs:attribute name="tüüp" type="xs:unsignedByte" use="required" /> <xs:attribute name="tüübinimi" type="xs:string" use="required" /> <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" /> <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"/> <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)
<?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>
Maakonnad, omavalitsused ja asustusüksused
<xsl:for-each select="/ehak/maakond"> <xsl:for-each select="omavalitsus"> <xsl:if test="@tüübinimi='vald'"> <xsl:for-each select="asustusüksus"> <xsl:if test="@tüübinimi='küla'"> </xsl:if> </xsl:for-each> <xsl:for-each select="asustusüksus"> <xsl:if test="@tüübinimi='alevik'"> </xsl:if> </xsl:for-each> <xsl:for-each select="asustusüksus"> <xsl:if test="@tüübinimi='alev'"> </xsl:if> </xsl:for-each> </xsl:if> </xsl:for-each> <xsl:for-each select="omavalitsus"> <xsl:if test="@tüübinimi='linn'"> <xsl:for-each select="asustusüksus"> </xsl:for-each> </xsl:if> </xsl:for-each> </xsl:for-each>
<xsl:value-of select="@nimi"/> |
---|
|
|
Külad, alevikud, alevid |
<xsl:value-of select="@nimi"/> <xsl:text> </xsl:text> <xsl:value-of select="@tüübinimi"/> <xsl:if test="@rööpnimi"> <xsl:text> (</xsl:text> <xsl:value-of select="@rööpnimi"/> <xsl:text>)</xsl:text> </xsl:if> |
<xsl:value-of select="@nimi"/> <xsl:text> </xsl:text> <xsl:value-of select="@tüübinimi"/> <xsl:if test="@rööpnimi"> <xsl:text> (</xsl:text> <xsl:value-of select="@rööpnimi"/> <xsl:text>)</xsl:text> </xsl:if> |
<xsl:value-of select="@nimi"/> <xsl:text> </xsl:text> <xsl:value-of select="@tüübinimi"/> <xsl:if test="@rööpnimi"> <xsl:text> (</xsl:text> <xsl:value-of select="@rööpnimi"/> <xsl:text>)</xsl:text> </xsl:if> |
|
|
Linnaosad |
<xsl:value-of select="@nimi"/> <xsl:text> </xsl:text> <xsl:value-of select="@tüübinimi"/> |
</body> </html> </xsl:template>
</xsl:stylesheet>