Dot muzei

From ICO wiki
Jump to navigationJump to search

Liikmed

  1. Aap Kaur Suvi
  2. Indrek Jõgi
  3. Kristjan Veskimäe
  4. Sandra Niinepuu - projektijuht


XML andmefail

XML fail on Eksponaadid.xml, skeemifail on Eksponaadid.xsd ja transformatsioonifail on Eksponaadid.xslt. XML faili valideerimiseks skeemifailiga peavad mõlemad failid asuma ühes ja samas kataloogis (kuna skeemifaili asukohaks on XML faili päises määratud Eksponaadid.xsd).

XML fail

<?xml version="1.0" encoding="utf-8" ?>
<muuseumid>
  <!-- Andmed pärinevad http://muis.ee/catalogue -->
  
  <muuseum nimi="Eesti Sõjamuuseum" id="1">
    <muuseumikogu tyyp="Esemekogu">
      <eksponaat originaal="true" id="1">
        <nimetus olemus="kinnas"><![CDATA["Labakinnas. M. Laidoneri (ema) kootud"]]></nimetus>
        <number><![CDATA["KLM ET 22 A 22"]]></number>
        <seisund>Hea</seisund>
      </eksponaat>
      <eksponaat originaal="true" id="2">
        <nimetus olemus="tääk"><![CDATA["Mälestusese, miniatuurne tääk, USA Air Cavalry Divisioni sümboolikaga."]]></nimetus>
        <number><![CDATA["KLM ET 365 A"]]></number>
        <seisund>Hea</seisund>
      </eksponaat>
    </muuseumikogu>
    <muuseumikogu tyyp="Tulirelvad">
      <eksponaat originaal="false" id="1">
        <nimetus olemus="tulirelv"><![CDATA["Otepää püss, koopia"]]></nimetus>
        <number><![CDATA["KLM ET 1421 R1 457"]]></number>
        <seisund>Hea</seisund>
      </eksponaat>
      <eksponaat originaal="true" id="2">
        <nimetus olemus="tulirelv"><![CDATA["Tank 34-85"]]></nimetus>
        <number><![CDATA["KLM ET 1603 R1 553"]]></number>
        <seisund>Rahuldav</seisund>
      </eksponaat>
    </muuseumikogu> 
  </muuseum>
  
  <muuseum nimi="Eesti Ajaloomuuseum" id="2">
    <muuseumikogu tyyp="Fotod">
      <eksponaat originaal="true" id="1">
        <nimetus olemus="album"><![CDATA["Fotoalbum: Vene tsaariarmee - 141. Možaiski polk, polkovnik Aganjev, grupipildid, portreed, olustik, kohavaated, ettevalmistused lahinguteks, arstiabi, matused."]]></nimetus>
        <number><![CDATA["AM _ 59 F 5501/1-305"]]></number>
        <seisund>Hea</seisund>
      </eksponaat>
      <eksponaat originaal="true" id="2">
        <nimetus olemus="album"><![CDATA["Fotoalbum: "Kaks aastat Punaarmee Eesti korpust 1942-1944." Illustreeritud, venekeelsed pildiallkirjad."]]></nimetus>
        <number><![CDATA["AM _ 42 F 4100/1-270"]]></number>
        <seisund>Hea</seisund>
      </eksponaat>
    </muuseumikogu>
    <muuseumikogu tyyp="Mööblikollektsioon">
      <eksponaat originaal="true" id="1">
        <nimetus olemus="mööbel"><![CDATA["Laste söögitool, XIX saj. lõpp"]]></nimetus>
        <number><![CDATA["AM _ 35566:1 Mb 1"]]></number>
        <seisund>Hea</seisund>
      </eksponaat>
    </muuseumikogu>    
  </muuseum>

</muuseumid>

XML skeemifail

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           targetNamespace="http://example.com/schemas/muuseumid/v1" 
           xmlns="http://example.com/schemas/muuseumid/v1" 
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           attributeFormDefault="unqualified" 
           elementFormDefault="qualified">
  <xs:element name="muuseumid">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="muuseum">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="muuseumikogu">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="eksponaat">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="nimetus">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:string">
                                  <xs:attribute name="olemus" type="xs:string" use="required" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="number" type="xs:string" />
                          <xs:element name="seisund">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                <xs:enumeration value="Hea"></xs:enumeration>
                                <xs:enumeration value="Rahuldav"></xs:enumeration>
                                <xs:enumeration value="Halb"></xs:enumeration>
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="originaal" type="xs:boolean" use="required" />
                        <xs:attribute name="id" type="xs:integer" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="tyyp" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="nimi" type="xs:string" use="required" />
            <xs:attribute name="id" type="xs:integer" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XSLT failid

Kõikide eksponaatide kohta käiv informatsioon

<?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="muuseumid/muuseum">
            <h1>
              <xsl:variable name="nimi" select="@nimi"></xsl:variable>
              <xsl:value-of select="@nimi"/>
            </h1>
            <xsl:for-each select="muuseumikogu">
              <xsl:variable name="originaal" select="@originaal"></xsl:variable>
              <xsl:variable name="tyyp" select="@tyyp"></xsl:variable>
              <h2>
                <xsl:value-of select="@tyyp"/>
              </h2>
              <xsl:for-each select="eksponaat">
                <p>Nimetus: 
                  <xsl:value-of select="nimetus"/>
                </p>
                <p>
                  Number:
                  <xsl:value-of select="number"/>
                </p>
                <p>
                  Seisukord: 
                  <xsl:value-of select="seisund"/>
                </p>
                <p>------------</p>
              </xsl:for-each>

            </xsl:for-each>
          </xsl:for-each>
        </body>
      </html>
    </xsl:template>
</xsl:stylesheet>

Tulemus

Informatsioon eksponaatide kohta, mis on originaalid ja heas korras

<?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="muuseumid/muuseum">
          <h1>
            <xsl:variable name="nimi" select="@nimi"></xsl:variable>
            <xsl:value-of select="@nimi"/>
          </h1>
          <xsl:for-each select="muuseumikogu">
            <xsl:variable name="originaal" select="@originaal"></xsl:variable>
            <xsl:variable name="tyyp" select="@tyyp"></xsl:variable>
            <h2>
              <xsl:value-of select="@tyyp"/>
            </h2>
            <xsl:for-each select="eksponaat">
              <xsl:choose>
                <xsl:when test="@originaal = 'true' and seisund = 'Hea'">
                  <p>
                    Nimetus:
                    <xsl:value-of select="nimetus"/>
                  </p>
                  <p>
                    Number:
                    <xsl:value-of select="number"/>
                  </p>
                  <p>
                    Seisukord:
                    <xsl:value-of select="seisund"/>
                  </p>
                  <p>------------</p>
                </xsl:when>
                <xsl:otherwise>
                  <p>Eksponaat ei vasta tingimustele</p>
                </xsl:otherwise>
              </xsl:choose>
              
            </xsl:for-each>

          </xsl:for-each>
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>


Veebiteenuse analüüs

Veebiteenus

Klientrakendus