Tab: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Rmandel (talk | contribs)
No edit summary
Rmandel (talk | contribs)
No edit summary
Line 153: Line 153:
</xs:schema>
</xs:schema>
</source>
</source>


=== XSLT ===
=== XSLT ===

Revision as of 18:53, 5 March 2015

Meeskond

  • Rene Mändel
  • Mikk Pürg

XML

<?xml version="1.0" encoding="utf-8"?>

<chat>
  <toad>
    <tuba id="1" privaatne="true">
      <andmed>
        <nimi><![CDATA[Tuba]]></nimi>
        <looja><![CDATA[Peeter]]></looja>
        <loojaId>1</loojaId>
        <loomisKuupaev>5.03.2015 16:11:22</loomisKuupaev>
        <kustutamisKuupaev></kustutamisKuupaev>
        <parool><![CDATA[pommpomm]]></parool>
        <kirjeldus><![CDATA[Siin on kanali kirjeldus]]></kirjeldus>
      </andmed>
      <sisu>
        <jutt kirjutajaId="1" kirjutajaNimi="Peeter" kuupaev=""><![CDATA[See on siin esimene jutustav lause.]]></jutt>
      </sisu>
    </tuba>
    <tuba id="2" privaatne="false">
      <andmed>
        <nimi><![CDATA[ITK room]]></nimi>
        <looja><![CDATA[Juhan]]></looja>
        <loojaId>1</loojaId>
        <loomisKuupaev>5.03.2015 16:11:22</loomisKuupaev>
        <kustutamisKuupaev>5.03.2015 16:11:22</kustutamisKuupaev>
        <parool><![CDATA[pomm]]></parool>
        <kirjeldus><![CDATA[Tuba ainult ITK tudengitele]]></kirjeldus>
      </andmed>
      <sisu>
        <jutt kirjutajaId="1" kirjutajaNimi="Peeter" kuupaev=""><![CDATA[Täna ma paitasin kassi.]]></jutt>
      </sisu>
    </tuba>
    <tuba id="3" privaatne="false">
      <andmed>
        <nimi><![CDATA[Kiisu generaator]]></nimi>
        <looja><![CDATA[Peeter]]></looja>
        <loojaId>1</loojaId>
        <loomisKuupaev>5.03.2015 16:11:22</loomisKuupaev>
        <kustutamisKuupaev></kustutamisKuupaev>
        <parool><![CDATA[pommpomm]]></parool>
        <kirjeldus><![CDATA[kasse tegelikult siin ei ole]]></kirjeldus>
      </andmed>
      <sisu>
        <jutt kirjutajaId="2" kirjutajaNimi="Juhan" kuupaev=""><![CDATA[See on siin esimene jutustav lause.]]></jutt>
      </sisu>
    </tuba>
  </toad>
  <kasutajad>
    <kasutaja id="1" tyyp="administraator">
      <kasutajanimi><![CDATA[Peeter]]></kasutajanimi>
      <email><![CDATA[Peeter@peeter.ee]]></email>
      <nickname><![CDATA[Peeter]]></nickname>
      <parool><![CDATA[teretere]]></parool>
      <kasutajaLoodudKuupaev>5.03.2015 16:11:22</kasutajaLoodudKuupaev>
      <kasutajaKustutatudKuupaev></kasutajaKustutatudKuupaev>
    </kasutaja>
    <kasutaja id="2" tyyp="kasutaja">
      <kasutajanimi><![CDATA[juhan]]></kasutajanimi>
      <email><![CDATA[Juhan@mail.ee]]></email>
      <nickname><![CDATA[juhh]]></nickname>
      <parool><![CDATA[juhjuh]]></parool>
      <kasutajaLoodudKuupaev>5.03.2015 16:11:22</kasutajaLoodudKuupaev>
      <kasutajaKustutatudKuupaev>5.03.2015 16:11:22</kasutajaKustutatudKuupaev>
    </kasutaja>
  </kasutajad>
</chat>


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="chat">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="toad">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="tuba">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="andmed">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="nimi" type="xs:string" />
                          <xs:element name="looja" type="xs:string" />
                          <xs:element name="loojaId" type="xs:unsignedInt" />
                          <xs:element name="loomisKuupaev" type="xs:string" />
                          <xs:element name="kustutamisKuupaev" type="xs:string" />
                          <xs:element name="parool" type="xs:string" />
                          <xs:element name="kirjeldus" type="xs:string" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="sisu">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="jutt">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:string">
                                  <xs:attribute name="kirjutajaId" type="xs:unsignedInt" use="required" />
                                  <xs:attribute name="kirjutajaNimi" type="xs:string" use="required" />
                                  <xs:attribute name="kuupaev" type="xs:string" use="required" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="id" type="xs:unsignedInt" use="required" />
                  <xs:attribute name="privaatne" type="xs:boolean" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="kasutajad">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="kasutaja">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="kasutajanimi" type="xs:string" />
                    <xs:element name="email" type="xs:string" />
                    <xs:element name="nickname" type="xs:string" />
                    <xs:element name="parool" type="xs:string" />
                    <xs:element name="kasutajaLoodudKuupaev" type="xs:string" />
                    <xs:element name="kasutajaKustutatudKuupaev" type="xs:string" />
                  </xs:sequence>
                  <xs:attribute name="id" type="xs:unsignedInt" use="required" />
                  <xs:attribute name="tyyp" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>


XSLT

Kuvab avalike tubade nime, kirjeldus, loojat ja loomiskuupäeva.

<?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>
      <body>
        <xsl:for-each select="chat/toad/tuba">
          <xsl:if test="@privaatne = 'false'">
            <h2>
              <xsl:value-of select="andmed/nimi" />
            </h2>
            <h3>
              <xsl:value-of select="andmed/kirjeldus" />
            </h3>
            <ul>
              <li>
                <xsl:value-of select="andmed/looja" />
                <xsl:text> </xsl:text>
              </li>
              <li>
                <xsl:value-of select="andmed/loomisKuupaev" />
                <xsl:text> </xsl:text>
              </li>
            </ul>
          </xsl:if>
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Tulemus

Kuvab kõikide kasutajate hüüdnime ja õigusi.

<?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>
      <body>
        <h2>Kasutajad</h2>
        <table border="1">
          <tr>
            <th>Hüüdnimi</th>
            <th>Õigused</th>
          </tr>
          <xsl:for-each select="chat/kasutajad/kasutaja">
            <tr>
              <td>
                <xsl:value-of select="nickname" />
              </td>
              <td>
                <xsl:value-of select="@tyyp" />
              </td>
            </tr>
          </xsl:for-each>
        </table>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Tulemus

Kuvab XML failis kõik toad koos id, privaatsuse, kirjelduse ja nimega. Kõige lõpus kuvatakse registreeritud kasutajate arvu.

<?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="/">
    <chat>
      <toad>
        <xsl:for-each select="chat/toad/tuba">
          <tuba id="{@id}" privaatne="{@privaatne}">
            <xsl:attribute name="kirjeldus">
              <xsl:value-of select="andmed/kirjeldus"/>
            </xsl:attribute>
                <xsl:value-of select="andmed/nimi"/>             
          </tuba>
        </xsl:for-each>
      </toad>
        <kasutajateArv>
          <xsl:value-of select="count(chat/kasutajad/kasutaja)"/>
        </kasutajateArv>
    </chat>
  </xsl:template>
</xsl:stylesheet>

Veebiteenus

Klientrakendus