Unnamed Team

From ICO wiki
Jump to navigationJump to search

Meeskond

  • Andreas Kirotar
  • Jaan Kostõgov

Idee

XML ideeks on arvuti mängude kataloog.

XML / XSD / XSLT

<?xml version="1.0" encoding="UTF-8"?>
<GameShop>
   <Genres>
      <Genre>Action</Genre>
      <Genre>RPG</Genre>
      <Genre>Action</Genre>
      <Genre>Fantasy</Genre>
      <Genre>Sci-fi</Genre>
      <Genre>Horror</Genre>
   </Genres>
   <Games>
      <Game Title="Fallout4" Year="2016">
         <Genres>
            <Genre>FPS</Genre>
            <Genre>Action</Genre>
            <Genre>Sci-fi</Genre>
         </Genres>
         <Images>
            <Image>http://cdn.akamai.steamstatic.com/steam/apps/377160/header.jpg?t=1486403180</Image>
            <Image>http://cdn.akamai.steamstatic.com/steam/apps/377160/header.jpg?t=1486403180</Image>
         </Images>
         <SystemRequiments RequimentType="Minimum">
            <Oses>
               <Os Architecture="64bit">Windows 7</Os>
               <Os Architecture="64bit">Windows 10</Os>
            </Oses>
            <Processor>Intel Core i5-2400/AMD FX-8320 or better</Processor>
            <Memory>4 GB RAM</Memory>
            <Graphics>NVIDIA GTX 670 2GB/AMD Radeon HD 7870 2GB or better</Graphics>
            <Storage>25 GB available space</Storage>
            <AdditionalNotes>Requires broadband internet connection for Multiplayer</AdditionalNotes>
         </SystemRequiments>
         <SystemRequiments RequimentType="Reccomended">
            <Os>Windows 7/8.1/10 (64-bit versions)</Os>
            <Processor>Intel Core i7-3770/AMD FX-8350 or better</Processor>
            <Memory>8 GB RAM</Memory>
            <Graphics>NVIDIA GTX 970 4GB/AMD Radeon R9 290 4GB or better</Graphics>
            <Storage>25 GB available space</Storage>
            <AdditionalNotes>Requires broadband internet connection for Multiplayer</AdditionalNotes>
         </SystemRequiments>
      </Game>
      <Game Title="Fallout 3 NewVegas" Year="2016">
         <Genres>
            <Genre>FPS</Genre>
            <Genre>Action</Genre>
            <Genre>Sci-fi</Genre>
         </Genres>
         <Images>
            <Image>https://i.kinja-img.com/gawker-media/image/upload/s--dWfA2BXt--/ilz6yicwfquqoyalkwjd.jpg</Image>
         </Images>
         <SystemRequiments RequimentType="Minimum">
            <Oses>
               <Os Architecture="32bit">Windows xp</Os>
               <Os Architecture="32bit">Windows Vista</Os>
            </Oses>
            <Processor>2.4 Ghz Intel Pentium 4 or equivalent processor</Processor>
            <Memory>1 GB (XP)/ 2 GB (Vista)</Memory>
            <Graphics>Direct X 9.0c compliant video card with 256MB RAM (NVIDIA 6800 or better/ATI X850 or better)</Graphics>
            <Storage>25 GB available space</Storage>
            <AdditionalNotes>Online play requires log-in to Games For Windows - Live</AdditionalNotes>
         </SystemRequiments>
      </Game>
      <Game Title="Dark Souls 3" Year="2016">
         <Genres>
            <Genre>RPG</Genre>
         </Genres>
         <Images>
            <Image>https://d1r7xvmnymv7kg.cloudfront.net/sites_products/darksouls3/assets/img/DARKSOUL_facebook_mini.jpg</Image>
            <Image>https://cdn2.vox-cdn.com/uploads/chorus_asset/file/6323691/Dark_Souls_3_concept_art.0.jpg</Image>
            <Image>https://i.ytimg.com/vi/Ha8eRiP0DmI/maxresdefault.jpg</Image>
         </Images>
         <SystemRequiments RequimentType="Minimum">
            <Oses>
               <Os Architecture="32bit">Windows xp</Os>
               <Os Architecture="32bit">Windows Vista</Os>
            </Oses>
            <Os>Windows 7 SP1 64bit, Windows 8.1 64bit Windows 10 64bit</Os>
            <Processor>Intel Core i3-2100 / AMD® FX-6300</Processor>
            <Memory>4 GB RAM</Memory>
            <Graphics>NVIDIA® GeForce GTX 750 Ti / ATI Radeon HD 7950</Graphics>
            <DirectX>Version 11</DirectX>
            <Network>Broadband Internet connection</Network>
            <Storage>25 GB available space</Storage>
            <SoundCard>DirectX 11 sound device</SoundCard>
         </SystemRequiments>
         <SystemRequiments RequimentType="Recommended">
            <Oses>
               <Os Architecture="64bit">Windows 7</Os>
               <Os Architecture="64bit">Windows 8.1</Os>
               <Os Architecture="64bit">Windows 10</Os>
            </Oses>
            <Processor>Intel Core i7-3770 / AMD® FX-8350</Processor>
            <Memory>8 GB RAM</Memory>
            <Graphics>NVIDIA® GeForce GTX 970 / ATI Radeon R9 series</Graphics>
            <DirectX>Version 11</DirectX>
            <Network>Broadband Internet connection</Network>
            <Storage>25 GB</Storage>
            <SoundCard>DirectX 11 sound device</SoundCard>
         </SystemRequiments>
      </Game>
   </Games>
</GameShop>


XSD

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
   <xs:element name="GameShop">
      <xs:complexType>
         <xs:sequence>
            <xs:element name="Genres">
               <xs:complexType>
                  <xs:sequence>
                     <xs:element maxOccurs="unbounded" name="Genre" type="xs:string" />
                  </xs:sequence>
               </xs:complexType>
            </xs:element>
            <xs:element name="Games">
               <xs:complexType>
                  <xs:sequence>
                     <xs:element maxOccurs="unbounded" name="Game">
                        <xs:complexType>
                           <xs:sequence>
                              <xs:element name="Genres">
                                 <xs:complexType>
                                    <xs:sequence>
                                       <xs:element maxOccurs="unbounded" name="Genre" type="xs:string" />
                                    </xs:sequence>
                                 </xs:complexType>
                              </xs:element>
                              <xs:element name="Images">
                                 <xs:complexType>
                                    <xs:sequence>
                                       <xs:element maxOccurs="unbounded" name="Image" type="xs:string" />
                                    </xs:sequence>
                                 </xs:complexType>
                              </xs:element>
                              <xs:element maxOccurs="unbounded" name="SystemRequiments">
                                 <xs:complexType>
                                    <xs:sequence>
                                       <xs:choice maxOccurs="unbounded">
                                          <xs:element name="Os" type="xs:string" />
                                          <xs:element name="Oses">
                                             <xs:complexType>
                                                <xs:sequence>
                                                   <xs:element maxOccurs="unbounded" name="Os">
                                                      <xs:complexType>
                                                         <xs:simpleContent>
                                                            <xs:extension base="xs:string">
                                                               <xs:attribute name="Architecture" type="xs:string" use="required" />
                                                            </xs:extension>
                                                         </xs:simpleContent>
                                                      </xs:complexType>
                                                   </xs:element>
                                                </xs:sequence>
                                             </xs:complexType>
                                          </xs:element>
                                          <xs:element name="Processor" type="xs:string" />
                                          <xs:element name="Memory" type="xs:string" />
                                          <xs:element name="Graphics" type="xs:string" />
                                          <xs:element name="Storage" type="xs:string" />
                                          <xs:element name="AdditionalNotes" type="xs:string" />
                                          <xs:element name="DirectX" type="xs:string" />
                                          <xs:element name="Network" type="xs:string" />
                                          <xs:element name="SoundCard" type="xs:string" />
                                       </xs:choice>
                                    </xs:sequence>
                                    <xs:attribute name="RequimentType" type="xs:string" use="required" />
                                 </xs:complexType>
                              </xs:element>
                           </xs:sequence>
                           <xs:attribute name="Title" type="xs:string" use="required" />
                           <xs:attribute name="Year" type="xs:unsignedShort" use="required" />
                        </xs:complexType>
                     </xs:element>
                  </xs:sequence>
               </xs:complexType>
            </xs:element>
         </xs:sequence>
      </xs:complexType>
   </xs:element>
</xs:schema>

XSLT

XSLT (HTML)

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" version="1.0" exclude-result-prefixes="msxsl">
   <xsl:output method="html" indent="yes" />
   <xsl:template match="/">
      <html>
         <head>
            <title>Games by genre(windows 7)</title>
         </head>
         <body>
            <xsl:for-each select="/GameShop/Genres/Genre">
               <xsl:variable name="MainGenre" select="." />
               <h2>
                  <xsl:value-of select="$MainGenre" />
               </h2>
               <ul style="list-style-type:none">
                  <xsl:for-each select="/GameShop/Games/Game">
                     <xsl:if test="(Genres/Genre = $MainGenre) and (SystemRequiments/Oses/Os ='Windows 7')">
                        <xsl:variable name="Game" select="." />
                        <li>
                           Name:
                           <xsl:value-of select="./@Title" />
                        </li>
                        <li>
                           Release year:
                           <xsl:value-of select="./@Year" />
                        </li>
                        <li>
                           <xsl:for-each select="./Images/Image">
                              <xsl:variable name="ImageUrl" select="." />
                              <img src="{$ImageUrl}" width="400" height="200" />
                           </xsl:for-each>
                        </li>
                        <li>Requirements:</li>
                        <li>
                           Operating systems:
                           <xsl:value-of select="$Game/SystemRequiments/Oses" />
                        </li>
                        <li>
                           Processor:
                           <xsl:value-of select="$Game/SystemRequiments/Processor" />
                        </li>
                        <li>
                           Memory:
                           <xsl:value-of select="$Game/SystemRequiments/Memory" />
                        </li>
                        <li>
                           Graphics card:
                           <xsl:value-of select="$Game/SystemRequiments/Graphics" />
                        </li>
                        <li>
                           Storage:
                           <xsl:value-of select="$Game/SystemRequiments/Storage" />
                        </li>
                        <li>
                           Notes:
                           <xsl:value-of select="$Game/SystemRequiments/AdditionalNotes" />
                        </li>
                        <li>
                           Sound:
                           <xsl:value-of select="$Game/SystemRequiments/SoundCard" />
                        </li>
                        <li>
                           DirectX:
                           <xsl:value-of select="$Game/SystemRequiments/DirectX" />
                        </li>
                     </xsl:if>
                  </xsl:for-each>
               </ul>
            </xsl:for-each>
         </body>
      </html>
   </xsl:template>
</xsl:stylesheet>

XSLT (XML)

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" version="1.0" exclude-result-prefixes="msxsl">
   <xsl:output method="xml" indent="yes" />
   <xsl:template match="@* | node()">
      <GameShop>
         <Game>
            <xsl:for-each select="/GameShop/Games/Game">
               <xsl:if test="Genres/Genre = 'Action'">
                  <xsl:variable name="Game" select="." />
                  <Name>
                     <xsl:value-of select="./@Title" />
                  </Name>
                  <Realease>
                     <xsl:value-of select="./@Year" />
                  </Realease>
                  <Images>
                     <xsl:for-each select="./Images/Image">
                        <xsl:variable name="ImageUrl" select="." />
                        <img src="{$ImageUrl}" width="400" height="200" />
                     </xsl:for-each>
                  </Images>
                  <xsl:if test="SystemRequiments/@RequimentType = 'Minimum'">
                     <MinimumSystemRequiments>
                        <OperatingSystems>
                           <xsl:for-each select="./SystemRequiments/Oses/Os">
                              <OperatingSystem>
                                 <xsl:value-of select="." />
                              </OperatingSystem>
                           </xsl:for-each>
                        </OperatingSystems>
                        <Processor>
                           <xsl:value-of select="$Game/SystemRequiments/Processor" />
                        </Processor>
                        <Memory>
                           <xsl:value-of select="$Game/SystemRequiments/Memory" />
                        </Memory>
                        <GraphicsCard>
                           <xsl:value-of select="$Game/SystemRequiments/Graphics" />
                        </GraphicsCard>
                        <Storage>
                           <xsl:value-of select="$Game/SystemRequiments/Storage" />
                        </Storage>
                        <Notes>
                           <xsl:value-of select="$Game/SystemRequiments/AdditionalNotes" />
                        </Notes>
                        <Sound>
                           <xsl:value-of select="$Game/SystemRequiments/SoundCard" />
                        </Sound>
                        <DirectX>
                           <xsl:value-of select="$Game/SystemRequiments/DirectX" />
                        </DirectX>
                     </MinimumSystemRequiments>
                  </xsl:if>
               </xsl:if>
            </xsl:for-each>
         </Game>
      </GameShop>
   </xsl:template>
</xsl:stylesheet>

Log

  • 17.03 Esimene kokkusaamine, XML, XSD, XSLT(HTML) kujul loomine.
  • 20.03 Kaugtööna XSLT(HTML) ja XSLT(XML) lõpetamine, Wiki lehe loomine.