Meeskond Indiviid
From ICO wiki
Meeskond Indiviid
Võrgurakendused 2: Hajussüsteemide loomine
Liikmed: Sten Luhtoja
XML
Siia tulevad nõutud XML´i tööd.
Baas.
<?xml version="1.0" encoding="utf-8" ?>
<võistlused>
<võistlus id="1" date="2015-09-24" time="09:00:00" type="Seeriavõistlus">
<name><![CDATA[Rahvapinks 3. etapp]]></name>
<location linn="Tallinn" tanav="forelli" number="11">Kristiine Spordikeskus</location>
<contacts>
<contact type="phone">+3725845845146</contact>
<contact type="e-mail">Rahvapinks3@etapp.ee</contact>
</contacts>
<osalejad>
<osaleja sugu="male" birthdate="1995-09-02" name="Osaline Yks">
<club><![CDATA[Klubitu]]></club>
<contacts>
<contact type="phone">+37258446</contact>
<contact type="e-mail">osaline1@etapp.ee</contact>
</contacts>
</osaleja>
<osaleja sugu="male" birthdate="1993-10-05" name="Osaline Kaks">
<club><![CDATA[Tallinna vesi]]></club>
<contacts>
<contact type="e-mail">osaline2@etapp.ee</contact>
</contacts>
</osaleja>
</osalejad>
</võistlus>
<võistlus id="2" date="2015-12-24" time="09:00:00" type="Seeriavõistlus">
<name><![CDATA[Rahvapinks 5. etapp]]></name>
<location linn="Tallinn" tanav="forelli" number="11">Kristiine Spordikeskus</location>
<contacts>
<contact type="phone">+3725845845146</contact>
<contact type="e-mail">Rahvapinks4@etapp.ee</contact>
</contacts>
<osalejad>
<osaleja sugu="male" birthdate="1995-09-02" name="Osaline Yks">
<club><![CDATA[Klubitu]]></club>
<contacts>
<contact type="phone">+37258446</contact>
<contact type="e-mail">osaline1@etapp.ee</contact>
</contacts>
</osaleja>
<osaleja sugu="male" birthdate="1993-10-05" name="Osaline Kaks">
<club><![CDATA[Tallinna vesi]]></club>
<contacts>
<contact type="e-mail">osaline2@etapp.ee</contact>
</contacts>
</osaleja>
<osaleja sugu="female" birthdate="1234-09-02" name="Osaline vikks">
<club><![CDATA[Klubitu]]></club>
<contacts>
<contact type="phone">+37258446</contact>
<contact type="e-mail">osalinevikks@etapp.ee</contact>
</contacts>
</osaleja>
<osaleja sugu="female" birthdate="1965-11-05" name="Osaline Kasssssks">
<club><![CDATA[Parnu Elekter]]></club>
<contacts>
<contact type="e-mail">osalinekasssskss@etapp.ee</contact>
</contacts>
</osaleja>
</osalejad>
</võistlus>
<võistlus id="3" date="2015-04-26" time="09:00:00" type="Karikavõistlus">
<name><![CDATA[Rändkarikas jalgpallis]]></name>
<location linn="Kärdla" tanav="Muhu" number="10b">Kärdla spordiväljak</location>
<contacts>
<contact type="phone">+37252</contact>
<contact type="e-mail">Kärdla@voistlus.ee</contact>
</contacts>
<osalejad>
<osaleja sugu="" birthdate="" name="Muhu kalamehed">
<club>Muhu kalamehed</club>
<contacts>
<contact type="phone">+3725234567456</contact>
<contact type="e-mail">kalamehed@muhu.ee</contact>
</contacts>
</osaleja>
<osaleja sugu="" birthdate="" name="Hiiumaa viiuldajad">
<club>Hiiumaa viiuldajad</club>
<contacts>
<contact type="e-mail">viiuldajad@hiiumaa.ee</contact>
</contacts>
</osaleja>
</osalejad>
</võistlus>
<võistlus id="4" date="2016-11-26" time="10:00:00" type="Lahtised juhused">
<name><![CDATA[Rändamisseiklus algajatele]]></name>
<location linn="" tanav="" number="">Saaremaa tuulikud</location>
<contacts>
<contact type="phone"></contact>
<contact type="e-mail"></contact>
</contacts>
<osalejad>
<osaleja sugu="male" birthdate="1995-09-02" name="Osaline Yks">
<club></club>
<contacts>
<contact type="phone">+37258446</contact>
<contact type="e-mail">osaline1@etapp.ee</contact>
</contacts>
</osaleja>
<osaleja sugu="male" birthdate="1993-10-05" name="Osaline Kaks">
<club></club>
<contacts>
<contact type="e-mail">osaline2@etapp.ee</contact>
</contacts>
</osaleja>
</osalejad>
</võistlus>
<võistlus id="5" date="2017-01-05" time="10:00:00" type="Seeriavõistlus">
<name><![CDATA[Rahvapinks 3. etapp]]></name>
<location linn="Tallinn" tanav="forelli" number="11">Kristiine Spordikeskus</location>
<contacts>
<contact type="phone">+3725845845146</contact>
<contact type="e-mail">Rahvapinks3@etapp.ee</contact>
</contacts>
<osalejad>
<osaleja sugu="male" birthdate="1995-09-02" name="Osaline Yks">
<club><![CDATA[Klubitu]]></club>
<contacts>
<contact type="phone">+37258446</contact>
<contact type="e-mail">osaline1@etapp.ee</contact>
</contacts>
</osaleja>
<osaleja sugu="male" birthdate="1993-10-05" name="Osaline Kaks">
<club><![CDATA[Tallinna vesi]]></club>
<contacts>
<contact type="e-mail">osaline2@etapp.ee</contact>
</contacts>
</osaleja>
</osalejad>
</võistlus>
</võistlused>
skeem
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Võistlused">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="võistlus">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="location">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="linn" type="xs:string" use="optional" />
<xs:attribute name="tanav" type="xs:string" use="optional" />
<xs:attribute name="number" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="contacts">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="contact">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="type" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Osalejad">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="osaleja">
<xs:complexType>
<xs:sequence>
<xs:element name="club" type="xs:string" />
<xs:element name="contacts">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="contact">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="type" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="sugu" type="xs:string" use="optional" />
<xs:attribute name="birthdate" type="xs:date" use="optional" />
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:long" use="required" />
<xs:attribute name="date" type="xs:date" use="optional" />
<xs:attribute name="time" type="xs:time" use="optional" />
<xs:attribute name="type" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
xslt HTML
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<html>
<head>
<title>XSLT Võistlused</title>
</head>
<body>
<ul style="list-style-type:none">
<xsl:for-each select="võistlused/võistlus">
<li>
<h1>
<xsl:value-of select="name"/>
</h1>
</li>
<li>
<xsl:text>
Kuupäev: </xsl:text>
<xsl:value-of select="@date"/>
</li>
<li>
<b>
<xsl:text>
Asukoht
</xsl:text>
</b>
<xsl:value-of select="location"/>
<xsl:text>;
</xsl:text>
<xsl:value-of select="location/@linn"/>
<xsl:text> , </xsl:text>
<xsl:value-of select="location/@tanav"/>
<xsl:text> </xsl:text>
<xsl:value-of select="location/@number"/>
</li>
<xsl:for-each select="contacts/contact">
<li>
<xsl:value-of select="@type"/>
<xsl:text> </xsl:text>
<xsl:value-of select="."/>
</li>
</xsl:for-each>
<h2>
<xsl:text>Osalejad
</xsl:text>
</h2>
<ul style="list-style-type:none">
<xsl:for-each select="osalejad/osaleja">
<li>
<b>
<xsl:value-of select="@name"/>
</b>
</li>
<xsl:if test="@birthdate != ''">
<li>
<xsl:value-of select="@birthdate"/>
</li>
</xsl:if>
<li>
<xsl:text>Klubi: </xsl:text>
<b>
<xsl:value-of select="club"/>
</b>
</li>
<li>
<xsl:if test="contacts/contact != '' ">
<xsl:text>Kontakt:
</xsl:text>
<xsl:value-of select="contacts/contact"/>
</xsl:if>
</li>
</xsl:for-each>
</ul>
</xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
xslt xml
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<Võistlused>
<xsl:for-each select="võistlused/võistlus">
<võistlus>
<xsl:attribute name="date">
<xsl:value-of select="@date"/>
</xsl:attribute>
<xsl:attribute name="time">
<xsl:value-of select="@time"/>
</xsl:attribute>
<xsl:attribute name="type">
<xsl:value-of select="@type"/>
</xsl:attribute>
<name>
<xsl:value-of select="name"/>
</name>
<contacts>
<xsl:for-each select="contacts/contact">
<contact>
<xsl:attribute name="type">
<xsl:value-of select="@type"/>
</xsl:attribute>
<xsl:value-of select="."/>
</contact>
</xsl:for-each>
</contacts>
<xsl:for-each select="osalejad/osaleja">
<participantsNames>
<xsl:attribute name="Klubi">
<xsl:value-of select="club"/>
</xsl:attribute>
<xsl:value-of select="@name"/>
</participantsNames>
</xsl:for-each>
</võistlus>
</xsl:for-each>
</Võistlused>
</xsl:template>
</xsl:stylesheet>