Kirves

From ICO wiki
Jump to navigationJump to search

XML

XML fail andmetega

<?xml version="1.0" encoding="utf-8" ?>
<raamatukogu>
  <kategooriad>
    <kategooria>Raamat</kategooria>
    <kategooria>Film</kategooria>
    <kategooria>Videomäng</kategooria>
    <kategooria>Muusika</kategooria>
    <kategooria>Lauamäng</kategooria>
    <kategooria>Ajakiri</kategooria>
  </kategooriad>

  <teavikud keel="eesti">
    <teavik id="1" saadavus="true" autor="Eno Raud" pealkiri="Lugu lendavate taldrikutega" aasta="1978">
      <kategooria>Raamat</kategooria>
      <zanrid>
        <zanr><![CDATA[Jahipidamine]]></zanr>
        <zanr><![CDATA[Kokandus]]></zanr>
      </zanrid>
      <asukoht kood="CAS65">3. korrus</asukoht>
    </teavik>

    <teavik id="4" saadavus="false" autor="Leeter Porents" pealkiri="Leeter Porents: The Untold Story" aasta="2013">
      <kategooria>Film</kategooria>
      <zanrid>
        <zanr><![CDATA[Jahipidamine]]></zanr>
        <zanr><![CDATA[Ulme]]></zanr>
        <zanr><![CDATA[Fantaasia]]></zanr>
        <zanr><![CDATA[Autobiograafia]]></zanr>
      </zanrid>
      <asukoht kood="RT72">2. korrus</asukoht>
    </teavik>
  </teavikud>

  <teavikud keel="inglise">
    <teavik id="27" saadavus="true" autor="Rockstar Games" pealkiri="GTA5" aasta="2013">
      <kategooria>Videomäng</kategooria>
      <zanrid>
        <zanr><![CDATA[Seiklus]]></zanr>
        <zanr><![CDATA[Märul]]></zanr>
        <zanr><![CDATA[Auto]]></zanr>
      </zanrid>
      <asukoht kood="3CPO">1. korrus</asukoht>
    </teavik>

    <teavik id="723" saadavus="true" autor="Warner Bros studios" pealkiri="Shutter Island" aasta="2012">
      <kategooria>Film</kategooria>
      <zanrid>
        <zanr><![CDATA[Draama]]></zanr>
        <zanr><![CDATA[Thriller]]></zanr>
      </zanrid>
      <asukoht kood="FT12">1. korrus</asukoht>
    </teavik>

  </teavikud>

  <teavikud keel="vene">
    <teavik id="1423" saadavus="true" autor="Fjodor Dostojevski" pealkiri="Kuritöö ja karistus" aasta="1867">
      <kategooria>Raamat</kategooria>
      <zanrid>
        <zanr><![CDATA[Draama]]></zanr>
        <zanr><![CDATA[Romaan]]></zanr>
      </zanrid>
      <asukoht kood="GR23">1. korrus</asukoht>
    </teavik>
  </teavikud>


</raamatukogu>

XML Schema

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="raamatukogu">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="kategooriad">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="kategooria" type="xs:string" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element maxOccurs="unbounded" name="teavikud">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="teavik">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="kategooria" type="xs:string" />
                    <xs:element name="zanrid">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded" name="zanr" type="xs:string" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="asukoht">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:string">
                            <xs:attribute name="kood" type="xs:string" use="required" />
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="id" type="xs:unsignedInt" use="required" />
                  <xs:attribute name="saadavus" type="xs:boolean" use="required" />
                  <xs:attribute name="autor" type="xs:string" use="required" />
                  <xs:attribute name="pealkiri" type="xs:string" use="required" />
                  <xs:attribute name="aasta" type="xs:gYear" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="keel" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>


XSLT I

<?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>Teavikud kategooria järgi</title>
        </head>
        <body>
          <h1>
            Teavikud kategooriate järgi:
          </h1>
          <ul>
            <xsl:for-each select="/raamatukogu/kategooriad/kategooria">
              <xsl:variable name="Kategooria" select="."></xsl:variable>
              <li>
                <h2>
                  <xsl:value-of select="$Kategooria"/>
                </h2>
                <xsl:for-each select="/raamatukogu/teavikud/teavik">
                  <xsl:variable name="Teavik" select="."></xsl:variable>
                  <xsl:if test="kategooria=$Kategooria">
                    <ul>
                      <li>
                        <xsl:value-of select="$Teavik/@pealkiri"/>
                      </li>
                    </ul>
                  </xsl:if>
                </xsl:for-each>
              </li>
              <br />
            </xsl:for-each>
          </ul>
        </body>
      </html> 
        
    </xsl:template>
</xsl:stylesheet>

XSLT II

<?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>Teavikud tähestiku järjekorras</title>
        </head>
        <body>
          <h1>
            Teavikud tähestiku järjekorras:
          </h1>
          <ul>
            <xsl:for-each select="/raamatukogu/teavikud/teavik">
              <xsl:sort select="@pealkiri"/>
              <xsl:variable name="Teavik" select="."></xsl:variable>
              <ul>
                <li>
                  <p>
                    Pealkiri: <b><xsl:value-of select="$Teavik/@pealkiri"/></b> <br />
                    Kategooria: <xsl:value-of select="$Teavik/kategooria"/> <br />
                    Žanr:<ul><xsl:for-each select="$Teavik/zanrid/zanr">
                      <xsl:variable name="Zanrid" select="."></xsl:variable>
                      <li>
                        <xsl:value-of select="."/>
                      </li>
                    </xsl:for-each>
                    </ul>
                    Autor: <xsl:value-of select="$Teavik/@autor"/> <br />
                    Aasta: <xsl:value-of select="$Teavik/@aasta"/> <br />
                    Saadavus: <xsl:value-of select="$Teavik/@saadavus"/> 
                  </p>
                </li>
              </ul>
            </xsl:for-each>
            <br />
          </ul>
        </body>
      </html>

    </xsl:template>
</xsl:stylesheet>

Veebiteenus

Solutioni allalaadimine: http://devfast.eu/kirves/Cocaine.zip

Käivitatavaks projektiks on WebApiCocaine. Visual Studio 13 Update 2 peab olema eelnevalt installeeritud.

Klientrakendus

Klientrakendus ja teenus on samas solutionis. Projekt, mida käivitada, on WebAPICocaine.

Et süsteemi kasutada, peate looma endale kasutaja. Parool peab sisaldama vähemalt ühte suurt tähemärki, punkti ja numbrit. Parooli minimaalne pikkus on 8 sümbolit.

Tegevuste logi

13. veebruar

  • Wiki lehe loomine

8. märts

  • Saime 4 päeva ajapikendust tänu Windows 8.1 24h koodilaagris osalemisele.

12. märts

  • XML fail, skeemifail ja stiilifailid

15. märts

  • XML retsensioonid

25. mai

  • Veebiteenus ja klientrakendus
KIRVES
Ülikool: Eesti Infotehnoloogia Kolledž
Tüüp: Võrgurakendused II
Meeskond "Kirves": Tauri Metsoja
Raul Prosso (Projektijuht)
Ahto Luuri
Juhendaja: Mait Poska