LinkCode

From ICO wiki

Kirjeldus

LinkCode on veebirakendus, mis võimaldab kasutajatel talletada teksti ning hüperlinke.

Retsensioonid

Retsensioon meeskonnale Screaming Magic Gnomes asub siin lingil
Retsensioon meeskonnale Double Trouble asub siin lingil

Meeskond

  • Rene Ott
  • Renet Pirso

XML, Schema ning Stiil

XML

<?xml version="1.0" encoding="utf-8" ?>
<postitused>
  <kasutajad>
    <kasutaja><![CDATA[VblLorz]]></kasutaja>
    <kasutaja><![CDATA[KusOnKodu]]></kasutaja>
  </kasutajad>
  <kategooria id="1" keel="C-Trellid">
    <link nahtavuseTase="1">
      <pealkiri><![CDATA[Memenaator]]></pealkiri>
      <kasutaja>VblLorz</kasutaja>
      <kirjeldus><![CDATA[See kood teeb uusi ning värskeid memesi]]></kirjeldus>
      <kood><![CDATA[
        int meme=0; 
        while(1) meme++;
      ]]></kood>
      <loodud>11.08.2015</loodud>
      <tagid><![CDATA[Memed, Trellid, 9Gagautist]]></tagid>
      <ajalugu>
        <kategooria kuupaev="01.01.2016">1</kategooria>
      </ajalugu>
    </link>
    <link nahtavuseTase="1">
      <pealkiri><![CDATA[IlusKood]]></pealkiri>
      <kasutaja>VblLorz</kasutaja>
      <kirjeldus><![CDATA[Sellega genereerin ma kõige ilusamat koodi maailmas]]></kirjeldus>
      <kood>
        <![CDATA[
      makePretty()
      {
        Console.Write("Enter ugly code: ");
        string input = Console.ReadLine();
        input.trim();
        Console.WriteLine(input);
      };
      ]]></kood>
      <loodud>21.11.2015</loodud>
      <tagid><![CDATA[Trim, mostbeautiful]]></tagid>
      <ajalugu>
        <kategooria kuupaev="06.03.2016">3</kategooria>
        <kategooria kuupaev="11.03.2016">1</kategooria>
      </ajalugu>
    </link>
    <link nahtavuseTase="0">
      <pealkiri><![CDATA[Komaeemaldaja]]></pealkiri>
      <kasutaja>KusOnKodu</kasutaja>
      <kirjeldus><![CDATA[Keeruline algoritm mis eemaldab stringist komasi]]></kirjeldus>
      <kood><![CDATA[
      //todo everything
      ]]></kood>
      <loodud>15.12.2015</loodud>
      <tagid><![CDATA[Memed, Java, 9Gag]]></tagid>
    </link>
  </kategooria>
  
  <kategooria id="2" keel="Java">
    <link nahtavuseTase="1">
      <pealkiri><![CDATA[Java kodutöö simulaator]]></pealkiri>
      <kasutaja>VblLorz</kasutaja>
      <kirjeldus><![CDATA[See on keskmine java kodutöö 5 minutit enne esitamistähtaega]]></kirjeldus>
      <kood><![CDATA[
      //ToDo
      ]]></kood>
      <loodud>21.08.2015</loodud>
      <tagid><![CDATA[Java, Kodutöö, Help]]></tagid>
    </link>
    <link nahtavuseTase="1">
      <pealkiri><![CDATA[Lamp test]]></pealkiri>
      <kasutaja>KusOnKodu</kasutaja>
      <kirjeldus><![CDATA[Ma ei tea mis asi meetod on]]></kirjeldus>
      <kood><![CDATA[
      whatdoes()
      // ????
      ]]></kood>
      <loodud>21.08.2015</loodud>
      <tagid><![CDATA[Meetodid, Java, Helpplz..]]></tagid>
      <ajalugu>
        <kategooria kuupaev="11.01.2016">2</kategooria>
      </ajalugu>
    </link>
  </kategooria>
 </postitused>

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="postitused">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="kasutajad">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="kasutaja" type="xs:string" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="kategooria" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="link" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="pealkiri" type="xs:string" />
                    <xs:element name="kasutaja" type="xs:string" />
                    <xs:element name="kirjeldus" type="xs:string" />
                    <xs:element name="kood" type="xs:string" />
                    <xs:element name="loodud" type="xs:string" />
                    <xs:element name="tagid" type="xs:string" />
                    <xs:element name="ajalugu" minOccurs="0">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="kategooria" minOccurs="1" maxOccurs="unbounded">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:unsignedByte">
                                  <xs:attribute name="kuupaev" type="xs:string" use="required" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:all>
                  <xs:attribute name="nahtavuseTase" type="xs:unsignedByte" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="id" type="xs:unsignedInt" use="required" />
            <xs:attribute name="keel" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XSLT 1

<?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="xml" indent="yes"/>

  <xsl:template match="/">
    <html>
      <head>
        <title>LinkCode</title>
        <style>
          blockquote {background-color:GhostWhite;}
        </style>
      </head>
      <body>
        <ul>
          <xsl:for-each select="/postitused/kategooria">
            <li>
              <h1><xsl:value-of select="@keel"/></h1>
                  <xsl:for-each select="link">
                    <xsl:if test="@nahtavuseTase &gt; 0">
                      <b><xsl:value-of select="pealkiri"/></b>
                      -
                      <xsl:value-of select="kasutaja"/>
                      -
                      <i><xsl:value-of select="loodud"/></i>
                      <blockquote>
                        <xsl:value-of select="kirjeldus"/>
                      </blockquote>
                      <blockquote><pre><code>
                        <xsl:value-of select="kood"/>
                      </code></pre></blockquote>
                      <blockquote>
                        Tags: <i><xsl:value-of select="tagid"/></i>
                      </blockquote>
                    </xsl:if>
                  </xsl:for-each>
            </li>
          </xsl:for-each>
        </ul>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

XSLT 2

<?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="xml" indent="yes"/>

  <xsl:template match="/">
    <html>
      <head>
        <title>LinkCode - Users</title>
        <style>
          blockquote {background-color:GhostWhite;}
        </style>
      </head>
      <body>
          <xsl:for-each select="/postitused/kasutajad/kasutaja">
          <xsl:variable name="valitudKasutaja" select="."/>  
              <h1>
                Kasutaja: <xsl:value-of select="$valitudKasutaja"/>
              </h1>
            <xsl:for-each select="/postitused/kategooria">
              <xsl:variable name="valitudKeel" select="@keel"/>
              <xsl:for-each select="link">
                <xsl:if test="@nahtavuseTase &gt; 0">
                  <xsl:if test="kasutaja = $valitudKasutaja">
                    <xsl:value-of select="pealkiri"/>
                    -
                    <i><xsl:value-of select="loodud"/></i>
                    <br/>
                    <blockquote>
                    Keel: <xsl:value-of select="$valitudKeel"/>
                    </blockquote>
                    <blockquote>
                      <xsl:value-of select="kirjeldus"/>
                    </blockquote>
                    <blockquote>
                      <pre>
                        <code>
                          <xsl:value-of select="kood"/>
                        </code>
                      </pre>
                    </blockquote>
                    <blockquote>
                      Tags: <i>
                        <xsl:value-of select="tagid"/>
                      </i>
                    </blockquote>
                  </xsl:if>
                </xsl:if>
              </xsl:for-each>
            </xsl:for-each>
          </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Logi

Siia tuleb logi, kuupäevad ja möll