DoubleTrouble

From ICO wiki
Revision as of 19:11, 18 March 2016 by Kaelias (talk | contribs) (→‎XSLT 1)
Jump to navigationJump to search

Meeskond ja rollid

  • Kaido Henrik Elias
  • Jekaterina Jakimets

Idee

Analüüs

Rakenduse sisu

Rakenduses on olemas järgmised võimalused (Must have):

Rakenduses võiksid olla lisavõimalused (Should have):

XML osa

XML Fail

<?xml version="1.0" encoding="utf-8" ?>
<raamatud>
  <raamat id="1" aasta="1943" keel="eng" zanr="1">
    <pealkiri><![CDATA[The Documents in the Case]]></pealkiri>
    <autorid>
      <autor><![CDATA[Dorothy L.Sayers]]></autor>
      <autor><![CDATA[Robert Eustace]]></autor>
    </autorid>
    <kirjeldus><![CDATA[The grotesquely grinning corpse in the Devonshire shack was a man who died horribly -- with a dish of mushrooms at his side.]]></kirjeldus>
    <hind valuuta="€">45</hind>
    <raamatukeeled>
      <raamatukeel value="rus">Vene keeles</raamatukeel>
      <raamatukeel value="est">Eesti keeles</raamatukeel>
    </raamatukeeled>
  </raamat>
  <raamat id="2" aasta="1953" keel="eng" zanr="2">
    <pealkiri><![CDATA[The Adventures of Ellery Queen ]]></pealkiri>
    <autorid>
      <autor><![CDATA[Ellery Queen]]></autor>
    </autorid>
    <kirjeldus><![CDATA[Collection of short stories.]]></kirjeldus>
    <hind valuuta="€">55</hind>
    <raamatukeeled>
      <raamatukeel value="ita">Itaalia keeles</raamatukeel>
      <raamatukeel value="est">Eesti keeles</raamatukeel>
    </raamatukeeled>
  </raamat>
<raamat id="3" aasta="1562" keel="eng" zanr="2">
    <pealkiri><![CDATA[Killing me softly]]></pealkiri>
    <autorid>
      <autor><![CDATA[Nicci French]]></autor>
    </autorid>
    <kirjeldus><![CDATA[Alice Loudon has it all: a devoted boyfriend, a marvelous circle of friends, a challenging job as a research scientist.]]></kirjeldus>
    <hind valuuta="€">35</hind>
    <raamatukeeled>
      <raamatukeel value="esp">Hispaania keeles</raamatukeel>
      <raamatukeel value="ger">Saksa keeles</raamatukeel>
    </raamatukeeled>
  </raamat>
<raamat id="4" aasta="1343" keel="eng"  zanr="3">
    <pealkiri><![CDATA[The Frozen Deep]]></pealkiri>
    <autorid>
      <autor><![CDATA[Wilkie Collins]]></autor>
      <autor><![CDATA[Charles Dickens]]></autor>
    </autorid>
    <kirjeldus><![CDATA[Based on the doomed 1845 expedition to the Arctic, The Frozen Deep is a dramatic tale of vengeance and self-sacrifice. ]]></kirjeldus>
    <hind valuuta="€">45</hind>
    <raamatukeeled>
      <raamatukeel value="ger">Saksa keeles</raamatukeel>
      <raamatukeel value="arm">Armeenia keeles</raamatukeel>
    </raamatukeeled>
  </raamat>
<raamat id="5" aasta="1995" keel="est" zanr="1">
    <pealkiri><![CDATA[Fred Jussi läks metsa]]></pealkiri>
    <autorid>
      <autor><![CDATA[Katariina Jankovskaja]]></autor>
      <autor><![CDATA[Paul Meri]]></autor>
    </autorid>
    <kirjeldus><![CDATA[Ta läks metsa]]></kirjeldus>
    <hind valuuta="€">20</hind>
    <raamatukeeled>
      <raamatukeel value="rus">Vene keeles</raamatukeel>
    </raamatukeeled>
  </raamat>
</raamatud>

XML Skeemifail

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="raamatud">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="raamat">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="pealkiri" type="xs:string" />
              <xs:element name="autorid">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="autor" type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="kirjeldus" type="xs:string" />
              <xs:element name="hind">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:unsignedByte">
                      <xs:attribute name="valuuta" type="xs:string" use="required" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="raamatukeeled">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="raamatukeel">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:string">
                            <xs:attribute name="value" 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:unsignedByte" use="required" />
            <xs:attribute name="aasta" type="xs:unsignedShort" use="required" />
            <xs:attribute name="keel" type="xs:string" use="required" />
            <xs:attribute name="zanr" type="xs:unsignedByte" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

=== XSLT 1 === HTML fail

<?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="/">
      <head>
        <style>
          div {font-size:18px;margin:10;}
        </style>
        <title>Raamatud sorteeritud väljaande aasta järgi</title>
      </head>
      <body>
        <div style="font-size:20px">
        <ol>
          <xsl:for-each select="/raamatud/raamat">
            <xsl:sort select="@aasta" data-type="number" order="ascending"/>
              <li>
                <xsl:value-of select="pealkiri"/> (<xsl:value-of select="@aasta"/>)
                <br/>
                <p style="color:grey;font-size:14px" >
                  <xsl:value-of select="kirjeldus"/>
                </p>
                  <div>Autorid:</div>
                <ul>
                  <xsl:for-each select="autorid/autor">
                    <div style="font-size:16px;margin:2">
                      <li>
                        <xsl:value-of select="."/>
                      </li>
                    </div>
                  </xsl:for-each>
                 </ul>
                <div>Raamat on saadaval ka:</div>
                <ul>
                  <xsl:for-each select="raamatukeeled/raamatukeel">
                    <div style="font-size:16px;margin:2">
                      <li>
                        <xsl:value-of select="."/>
                      </li>
                    </div>
                  </xsl:for-each>
                </ul>
                <div>
                  Hind:
                  <xsl:value-of select="hind"/>
                  <xsl:value-of select="hind/@valuuta"/>
                 </div>
              </li>
            <br/>
          </xsl:for-each>
        </ol>
        </div>
      </body>
    </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="html" indent="yes"/>
  
    <xsl:template match="/">
      <head>
        <style>
          div {font-size:18px;margin:10;}
        </style>
        <title>Eestikeelsed raamatud</title>
      </head>
      <body>
        <div style="font-size:20">Kõik eestikeelsed raamatud:</div>
        <ul>
        <xsl:for-each select="/raamatud/raamat">
          <xsl:variable name="otsitavKeel">est</xsl:variable>
          <xsl:variable name="pealkiri" select="pealkiri"/>
          <xsl:variable name="aasta" select="@aasta"/>
          <xsl:if test="@keel = $otsitavKeel">
            <li>
              <xsl:value-of select="$pealkiri"/>
              (<xsl:value-of select="$aasta"/>)
            </li>
          </xsl:if>
         <xsl:for-each select="raamatukeeled/raamatukeel">
            <xsl:variable name="keel" select="@value"/>
            <xsl:if test="$keel = 'est'">
              <li>
                <xsl:value-of select="$pealkiri"/> 
                (<xsl:value-of select="$aasta"/>)
                <div style="font-style:italic;color:grey"> (Tõlgitud)</div>
              </li>
              <br/>
            </xsl:if>
          </xsl:for-each>
        </xsl:for-each>
        </ul>
      </body>
    </xsl:template>
</xsl:stylesheet>

Blogi

  • 17.03 - Tiimi loomine.
  • 18.03 - Esimene kokkusaamine. Alustasime XML loomist ja Wiki lehe loomist. Seletasime lahti projekti idee ja lisasime vajalikud failid.