Meeskond: QView: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Lnoor (talk | contribs)
No edit summary
Lnoor (talk | contribs)
Line 9: Line 9:


===Kirjeldus===
===Kirjeldus===
QView rakendus sisaldab endas järjekorra numbri kuvamis rakendust. Kliendid saavad valida teeninduse kus nad on võtnud omale järjekorra numbri ning rakendusest saavad hoida silma peal mis järjekorra numbrit hetkel teenindakse. Tipptunni ajal on võimalik kliendil teenindusest lahkuda ning tagasi tulla õige aegselt. Rakenduses on võimalik vaadata minutiliselt kaua järjekorras on vaja oodata.
 
QView rakendus sisaldab endas järjekorranumbri kuvamise rakendust. Kliendid saavad valida teeninduse, kus nad on võtnud omale järjekorranumbri ning rakendusest saavad hoida silma peal, mis järjekorranumbrit hetkel teenindatakse. Tipptunni ajal on võimalik kliendil teenindusest lahkuda ning tagasi tulla õigeaegselt. Rakenduses on võimalik vaadata minutiliselt kui kaua järjekorras on vaja oodata.


'''Kasutaja'''
'''Kasutaja'''
Kasutajal oleks võimalik luua oma kasutaja mille alt on võimalik vaadata mis järjekorra number  hetkel mõnes teeninduses on. Lisaks on võimalik lisada ‘’favorites’’ nimekirja enim külastatud teenindused.
 
Kasutajal oleks võimalik luua oma kasutaja, mille alt on võimalik vaadata, mis järjekorranumber hetkel mõnes teeninduses on. Lisaks on võimalik lisada ‘’favourites’’ nimekirja enim külastatud teenindused.


'''Admin'''
'''Admin'''
Admin haldab tervet rakendust. Adminil on õigus muuta rakendust ning lisada uuendusi.
Admin haldab tervet rakendust. Adminil on õigus muuta rakendust ning lisada uuendusi.


'''Firmad'''
'''Firmad'''
Firmadel on võimalik rakenduse teenuse eest maksa, et nende teenindus oleks rakenduses kuvatud. Firmade kaudu saab rakendus teeninduste järjekorra numbrid.


===Must have===  
Firmadel on võimalik rakenduse teenuse eest maksa, et nende teenindus oleks rakenduses kuvatud. Firmade kaudu saab rakendus teeninduste järjekorranumbrid.
*Kasutaja loomine
 
*‘’favorites’’ listi kontorite lisamine
===Must have===
*‘’favorites’’ listist kustutamine
*Järjekorra numbri kuvamine
*kasutaja loomine
*Teenusepakkujate valimine
*‘’favourites’’ listi kontorite lisamine
*Ooteaja kuvamine
*‘’favourites’’ listist kustutamine
*järjekorranumbri kuvamine
*teenusepakkujate valimine
*ooteaja kuvamine


===Nice to have===
===Nice to have===
*Numbri võtmine
*GPS (on võimalik mapi pealt valida lähim teenindus ja vaadata ooteaega)
*Hoiatus mis annab teada kui kontor pannakse umber tunni aja pärast kinni.


===ERD===
numbri võtmine
GPS (on võimalik mapi pealt valida lähim teenindus ja vaadata ooteaega)
hoiatus mis annab teada kui kontor pannakse umbes tunni aja pärast kinni.


[[File:ERD.PNG]]
ERD


== XML fail ==
== XML fail ==

Revision as of 13:06, 14 April 2017

Meeskond

  • Margus Muru
  • Martin Nigul
  • Martin Nõukas
  • Semjon Greef
  • Lisandra Noor

Veebiteenuse analüüs

Kirjeldus

QView rakendus sisaldab endas järjekorranumbri kuvamise rakendust. Kliendid saavad valida teeninduse, kus nad on võtnud omale järjekorranumbri ning rakendusest saavad hoida silma peal, mis järjekorranumbrit hetkel teenindatakse. Tipptunni ajal on võimalik kliendil teenindusest lahkuda ning tagasi tulla õigeaegselt. Rakenduses on võimalik vaadata minutiliselt kui kaua järjekorras on vaja oodata.

Kasutaja

Kasutajal oleks võimalik luua oma kasutaja, mille alt on võimalik vaadata, mis järjekorranumber hetkel mõnes teeninduses on. Lisaks on võimalik lisada ‘’favourites’’ nimekirja enim külastatud teenindused.

Admin

Admin haldab tervet rakendust. Adminil on õigus muuta rakendust ning lisada uuendusi.

Firmad

Firmadel on võimalik rakenduse teenuse eest maksa, et nende teenindus oleks rakenduses kuvatud. Firmade kaudu saab rakendus teeninduste järjekorranumbrid.

Must have

  • kasutaja loomine
  • ‘’favourites’’ listi kontorite lisamine
  • ‘’favourites’’ listist kustutamine
  • järjekorranumbri kuvamine
  • teenusepakkujate valimine
  • ooteaja kuvamine

Nice to have

numbri võtmine GPS (on võimalik mapi pealt valida lähim teenindus ja vaadata ooteaega) hoiatus mis annab teada kui kontor pannakse umbes tunni aja pärast kinni.

ERD

XML fail

<?xml version="1.0" encoding="utf-8"?>
<Cars>
  
  <Bodies>
    <Body Body-Id="1">
      <Name>Sedan</Name>
    </Body>
    <Body Body-Id="2">
      <Name>Coupe</Name>
    </Body>
    <Body Body-Id="3">
      <Name>Hatchback</Name>
    </Body>
    <Body Body-Id="4">
      <Name>Wagon</Name>
    </Body>
    <Body Body-Id="5">
      <Name>Cabriolet</Name>
    </Body>
    <Body Body-Id="6">
      <Name>SUV</Name>
    </Body>
  </Bodies>
  
  <Fueltypes>
    <Fueltype Fueltype-Id="1">
      <Name>Petrol</Name>
    </Fueltype>
    <Fueltype Fueltype-Id="2">
      <Name>Diesel</Name>
    </Fueltype>
    <Fueltype Fueltype-Id="3">
      <Name>Electric</Name>
    </Fueltype>
    <Fueltype Fueltype-Id="4">
      <Name>Hybrid</Name>
    </Fueltype>
  </Fueltypes>
  
  <Brands>
    <Make Make-Id="1">
      <Name>Audi</Name>
      <Country>Germany</Country>
    </Make>
    <Make Make-Id="2">
      <Name>VolksWagen</Name>
      <Country>Germany</Country>
    </Make>
    <Make Make-Id="3">
      <Name>Volvo</Name>
      <Country>Sweden</Country>
    </Make>
    <Make Make-Id="4">
      <Name>BMW</Name>
      <Country>Germany</Country>
    </Make>
    <Make Make-Id="5">
      <Name>Mercedes-Benz</Name>
      <Country>Germany</Country>
    </Make>
    <Make Make-Id="6">
      <Name>Opel</Name>
      <Country>Germany</Country>
    </Make>
    <Make Make-Id="7">
      <Name>Lada</Name>
      <Country>Russia</Country>
    </Make>
    <Make Make-Id="8">
      <Name>Honda</Name>
      <Country>Japan</Country>
    </Make>
    <Make Make-Id="9">
      <Name>Toyota</Name>
      <Country>Japan</Country>
    </Make>
    <Make Make-Id="10">
      <Name>Nissan</Name>
      <Country>Japan</Country>
    </Make>
    <Make Make-Id="11">
      <Name>Skoda</Name>
      <Country>Czech Republic</Country>
    </Make>
    <Make Make-Id="12">
      <Name>Renault</Name>
      <Country>France</Country>
    </Make>
    <Make Make-Id="13">
      <Name>Caterham</Name>
      <Country>United Kingdom</Country>
    </Make>
    <Make Make-Id="14">
      <Name>Citroen</Name>
      <Country>France</Country>
    </Make>
    <Make Make-Id="15">
      <Name>Ariel</Name>
      <Country>United States of America</Country>
    </Make>
    <Make Make-Id="16">
      <Name>Seat</Name>
      <Country>Spain</Country>
    </Make>
    <Make Make-Id="17">
      <Name>Mazda</Name>
      <Country>Japan</Country>
    </Make>
    <Make Make-Id="18">
      <Name>Ford</Name>
      <Country>Germany</Country>
    </Make>
    <Make Make-Id="19">
      <Name>Suzuki</Name>
      <Country>Japan</Country>
    </Make>
    <Make Make-Id="20">
      <Name>Kia</Name>
      <Country>South Korea</Country>
    </Make>
    <Make Make-Id="21">
      <Name>Hyundai</Name>
      <Country>South Korea</Country>
    </Make>
    <Make Make-Id="22">
      <Name>Mini</Name>
      <Country>United Kingdom</Country>
    </Make>
  </Brands>
  
  <Transmissions>
    <Transmission Trans-Id="1">
      <Name>Automatic</Name>
    </Transmission>
    <Transmission Trans-Id="2">
      <Name>Manual</Name>
    </Transmission>
  </Transmissions>
  
  <Drivetrains>
    <Drivetrain Drivetrain-Id="1">
      <Name>Front-Wheel Drive</Name>
    </Drivetrain>
    <Drivetrain Drivetrain-Id="2">
      <Name>Rear-Wheel Drive</Name>
    </Drivetrain>
    <Drivetrain Drivetrain-Id="3">
      <Name>All-Wheel Drive</Name>
    </Drivetrain>
  </Drivetrains>

  <Car Make-Id="1" Model="A6" Year="2010" RegPlate="123ABC" VIN="jasdfjasbdjf34234" Power="220kW" Milage="140000" Color="White" Price="25000">
    <Comments>
      Jumala katkine veermik
    </Comments>
    <Body Body-Id="1">
      <Info> Suur ja pikk sedaan </Info>
    </Body>
    <Fueltypes Preferred="98" Fueltype-Id="1">
      <FuelConsumption>8</FuelConsumption>
    </Fueltypes>
    <Drivetrain Drivetrain-Id="3"/>
    <Transmissions Trans-Id="1">
      <Gears>7</Gears>
    </Transmissions>
    <ImageUrl>
      http://o.aolcdn.com/dims-shared/dims3/GLOB/legacy_thumbnail/800x450/format/jpg/quality/85/http://o.aolcdn.com/hss/storage/midas/a899c65e2622bb49bc9c7d83c35fd097/201042411/2016-audi-a6-fd.jpg
    </ImageUrl>
  </Car>

  <Car Make-Id="7" Model="Samara" Year="2000" RegPlate="315APV" VIN="jasjjhjdsfsbdjf34234" Power="82kW" Milage="250000" Color="Metallic-Green" Price="1800">
    <Comments>
      Kere roostetab
    </Comments>
    <Body Body-Id="3">
      <Info>Kolme uksega</Info>
    </Body>
    <Fueltypes Preferred="95" Fueltype-Id="1">
      <FuelConsumption>7</FuelConsumption>
    </Fueltypes>
    <Drivetrain Drivetrain-Id="1" />
    <Transmissions Trans-Id="2">
      <Gears>5</Gears>
    </Transmissions>
    <ImageUrl>
      http://img5.auto24.ee/auto24/320/032/44227032.jpg
    </ImageUrl>
  </Car>

  <Car Make-Id="18" Model="Escort" Year="1998" RegPlate="125KJH" VIN="ja7878fsbdjf34234" Power="63kW" Milage="27000" Color="Red" Price="1100">
    <Comments>
      Ossipill
    </Comments>
      <Body Body-Id="1">
        <Info>Natuke roostes, paar lohku keres.</Info>
      </Body>
    <Fueltypes Preferred="95" Fueltype-Id="1">
      <FuelConsumption>11</FuelConsumption>
    </Fueltypes>
    <Drivetrain Drivetrain-Id="1"/>
    <Transmissions Trans-Id="2">
      <Gears>5</Gears>
    </Transmissions>
    <ImageUrl>
      https://i.ebayimg.com/00/s/NzY4WDEwMjQ=/z/vC0AAOSwTM5YxbNs/$_86.JPG
    </ImageUrl>
  </Car>

  <Car Make-Id="4" Model="5-series" Year="2017" RegPlate="766BCH" VIN="wswa1238asd87123" Power="195kW" Milage="50" Color="Black" Price="77500">
    <Comments>
      Sõiduki asukoht: Saksamaa
      Hind sisaldab transporti ja registreerimist Eestis.
    </Comments>
    <Body Body-Id="1">
      <Info>Piklik sedaan.</Info>
    </Body>
    <Fueltypes Preferred="D" Fueltype-Id="2">
      <FuelConsumption>6</FuelConsumption>
    </Fueltypes>
    <Drivetrain Drivetrain-Id="3"/>"
    <Transmissions Trans-Id="1">
      <Gears>7</Gears>
    </Transmissions>
    <ImageUrl>
      http://blog.caranddriver.com/wp-content/uploads/2016/10/2017-BMW-5-Series-101-876x535.jpg
    </ImageUrl>
  </Car>

  <Car Make-Id="4" Model="3-series" Year="2002" RegPlate="172BCH" VIN="wswa1238hwhrd81233" Power="110kW" Milage="275000" Color="Silver" Price="3500">
    <Comments>
      Roostevaba
    </Comments>
    <Body Body-Id="1">
      <Info>Kompaktne sedaan.</Info>
    </Body>
    <Fueltypes Preferred="D" Fueltype-Id="2">
      <FuelConsumption>7</FuelConsumption>
    </Fueltypes>
    <Drivetrain Drivetrain-Id="2"/>
    <Transmissions Trans-Id="2">
      <Gears>6</Gears>
    </Transmissions>
    <ImageUrl>
      https://i.ytimg.com/vi/n5GAiugBWC8/maxresdefault.jpg
    </ImageUrl>
  </Car>

  <Car Make-Id="5" Model="B-class" Year="2012" RegPlate="175JUS" VIN="wssd121338aswegrd855" Power="80kW" Milage="76000" Color="Grey" Price="19200">
    <Comments>
      Läbisõidugarantii
    </Comments>
    <Body Body-Id="3">
      <Info>Hea pereauto</Info>
    </Body>
    <Fueltypes Preferred="D" Fueltype-Id="2">
      <FuelConsumption>5</FuelConsumption>
    </Fueltypes>
    <Drivetrain Drivetrain-Id="1"/>
    <Transmissions Trans-Id="1">
      <Gears>7</Gears>
    </Transmissions>
    <ImageUrl>
      http://p.ocdn.ee/17/i/000259/x-855c414a-f493-451a-ba7a-4ed27f95bc77.jpg
    </ImageUrl>
  </Car>

  <Car Make-Id="10" Model="Skyline R34 GTT" Year="1999" RegPlate="SNR442" VIN="wsbd9514753jvseiga751" Power="212kW" Milage="76500" Color="Blue" Price="29500">
    <Comments>
      UK rooliga auto.
    </Comments>
    <Body Body-Id="2">
      <Info>Megakiire masin.</Info>
    </Body>
    <Fueltypes Preferred="98" Fueltype-Id="1">
      <FuelConsumption>15</FuelConsumption>
    </Fueltypes>
    <Drivetrain Drivetrain-Id="2"/>
    <Transmissions Trans-Id="2">
      <Gears>6</Gears>
    </Transmissions>
    <ImageUrl>
      https://s-media-cache-ak0.pinimg.com/originals/8d/e6/b2/8de6b2a55873b2044480921b83ba928f.jpg
    </ImageUrl>
  </Car>

  <Car Make-Id="22" Model="Cooper" Year="2003" RegPlate="SN34PE" VIN="WMWRC31010TH01840" Power="85kW" Milage="233788" Color="Red" Price="3400">
    <Comments>
      Esiklaasis on mõrad.
    </Comments>
    <Body Body-Id="3">
      <Info>Armas autoke.</Info>
    </Body>
    <Fueltypes Preferred="95" Fueltype-Id="1">
      <FuelConsumption>9</FuelConsumption>
    </Fueltypes>
    <Drivetrain Drivetrain-Id="1"/>
    <Transmissions Trans-Id="1">
      <Gears>6</Gears>
    </Transmissions>
    <ImageUrl>
      http://global.fncstatic.com/static/managed/img/Leisure/2009/mini-cooper-2014.jpg
    </ImageUrl>
  </Car>

  <Car Make-Id="2" Model="Beetle" Year="1998" RegPlate="4AUW407" VIN="WVWZZZ16ZEM635903" Power="72kW" Milage="278000" Color="Red" Price="1700">
    <Comments>
      Auto regulaarselt hooldatud.
    </Comments>
    <Body Body-Id="3">
      <Info>Kolme uksega</Info>
    </Body>
    <Fueltypes Preferred="D" Fueltype-Id="2">
      <FuelConsumption>6</FuelConsumption>
    </Fueltypes>
    <Drivetrain Drivetrain-Id="1"/>
    <Transmissions Trans-Id="2">
      <Gears>5</Gears>
    </Transmissions>
    <ImageUrl>
      http://i.imgur.com/iS6OjqD.jpg
    </ImageUrl>
  </Car>

  <Car Make-Id="9" Model="Supra" Year="1998" RegPlate="69SUPRA" VIN="WW23283WJDZUIE238" Power="300kW" Milage="68000" Color="Silver" Price="62000">
    <Comments>
      Haruludane, vähe sõitnud eksemplar.
    </Comments>
    <Body Body-Id="2">
      <Info>Kolme uksega</Info>
    </Body>
    <Fueltypes Preferred="98" Fueltype-Id="1">
      <FuelConsumption>10</FuelConsumption>
    </Fueltypes>
    <Drivetrain Drivetrain-Id="2" />
    <Transmissions Trans-Id="2">
      <Gears>6</Gears>
    </Transmissions>
    <ImageUrl>
      https://static.cargurus.com/images/site/2012/02/27/06/02/1998_toyota_supra-pic-5576793256549915341-1600x1200.jpeg
    </ImageUrl>
  </Car>
</Cars>

XSLT XML

<?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="/Cars">
      <Cars>
          <xsl:for-each select="/Cars/Car">
            <xsl:choose>
              <xsl:when test="@Year > 2000">
                <xsl:variable name="model" select="@Model"/>
                <Car>
                  <xsl:variable name="M-Id" select="@Make-Id" />
                  <Brand>
                    <xsl:value-of select="/Cars/Brands/Make[@Make-Id=$M-Id]/Name"/>
                  </Brand>
                  <Model>
                    <xsl:value-of select="@Model"/>
                  </Model>
                  <Year>
                    <xsl:value-of select="@Year"/>
                  </Year>
                  <VIN>
                    <xsl:value-of select="@VIN"/>
                  </VIN>
                  <Power>
                    <xsl:value-of select="@Power"/>
                  </Power>
                  <Milage>
                    <xsl:value-of select="@Milage"/>
                  </Milage>
                  <Color>
                    <xsl:value-of select="@Color"/>
                  </Color>
                  <Comments>
                    <xsl:value-of select="Comments"/>
                  </Comments>
                  <RegPlate>
                    <xsl:value-of select="@RegPlate"/>
                  </RegPlate>
                  <Body>
                    <xsl:variable name="B-Id" select="Body/@Body-Id" />
                    <xsl:value-of select="/Cars/Bodies/Body[@Body-Id=$B-Id]/Name"/>
                  </Body>
                  <Fueltype>
                    <xsl:variable name="F-Id" select="Fueltypes/@Fueltype-Id" />
                    <xsl:value-of select="/Cars/Fueltypes/Fueltype[@Fueltype-Id=$F-Id]/Name"/>
                  </Fueltype>
                  <Drivetrain>
                    <xsl:variable name="D-Id" select="Drivetrain/@Drivetrain-Id" />
                    <xsl:value-of select="/Cars/Drivetrains/Drivetrain[@Drivetrain-Id=$D-Id]/Name"/>
                  </Drivetrain>
                  <Transmissions>
                    <xsl:variable name="T-Id" select="Transmissions/@Trans-Id" />
                    <xsl:value-of select="/Cars/Transmissions/Transmission[@Trans-Id=$T-Id]/Name"/>
                  </Transmissions>
                  <Price>
                    <xsl:value-of select="@Price"/>
                  </Price>
                  <ImageUrl>
                    <xsl:value-of select="ImageUrl"/>
                  </ImageUrl>
                </Car>              
              </xsl:when>
            </xsl:choose>
          </xsl:for-each>
      </Cars>
    </xsl:template>
</xsl:stylesheet>

XSLT HTML

<?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>
        <h1>Car Database</h1>
        <xsl:for-each select="/Cars/Car">
          <xsl:variable name="M-Id" select="@Make-Id" />
          <h2>
            <xsl:value-of select="/Cars/Brands/Make[@Make-Id=$M-Id]/Name"/>
          </h2>
          <br>
            Model:
            <xsl:value-of select="@Model"/>
          </br>
          <br>
            Country:
            <xsl:value-of select="/Cars/Brands/Make[@Make-Id=$M-Id]/Country"/>
          </br>
          <br>
            Year:
            <xsl:value-of select="@Year"/>
          </br>
          <br>
            RegPlate:
            <xsl:value-of select="@RegPlate"/>
          </br>
          <br>
            VIN:
            <xsl:value-of select="@VIN"/>
          </br>
          <br>
            Power:
            <xsl:value-of select="@Power"/>
          </br>
          <br>
            Milage:
            <xsl:value-of select="@Milage"/>
          </br>
          <br>
            Color:
            <xsl:value-of select="@Color"/>
          </br>
          <br>
            Price:
            <xsl:value-of select="@Price"/>
          </br>
          <br>
            <xsl:for-each select="Comments">
              Comment:
              <xsl:value-of select="."/>
            </xsl:for-each>
          </br>
          <br>
            Body:
            <xsl:variable name="B-Id" select="Body/@Body-Id" />
            <xsl:value-of select="/Cars/Bodies/Body[@Body-Id=$B-Id]/Name"/>
            , Comments:
            <xsl:for-each select="Body/Info">
              <xsl:value-of select="."/>
            </xsl:for-each>
          </br>
          <br>
            Fuel type:
            <xsl:variable name="F-Id" select="Fueltypes/@Fueltype-Id" />
            <xsl:value-of select="/Cars/Fueltypes/Fueltype[@Fueltype-Id=$F-Id]/Name"/>
          </br>
          <br>
            Fuel consumption:
            <xsl:for-each select="Fueltypes/FuelConsumption">
              <xsl:value-of select="."/>
            </xsl:for-each>
            l/100km
          </br>
          <br>
            Drivetrain:
            <xsl:variable name="D-Id" select="Drivetrain/@Drivetrain-Id" />
            <xsl:value-of select="/Cars/Drivetrains/Drivetrain[@Drivetrain-Id=$D-Id]/Name"/>
          </br>
          <br>
            Gearbox:
            <xsl:variable name="T-Id" select="Transmissions/@Trans-Id" />
            <xsl:value-of select="/Cars/Transmissions/Transmission[@Trans-Id=$T-Id]/Name"/>
            , number of gears:
            <xsl:for-each select="Transmissions/Gears">
              <xsl:value-of select="."/>
            </xsl:for-each>
          </br>
          <br>
            <xsl:for-each select="ImageUrl">
              <xsl:variable name="ImageUrl" select="."/>
              <img style="width: 30em" src="{$ImageUrl}"/>
            </xsl:for-each>
          </br>
        </xsl:for-each>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>
<?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>
          <h1>Old cars</h1>
          <xsl:for-each select="/Cars/Car">
            <xsl:choose>
              <xsl:when test="2000 > @Year">
                <xsl:variable name="M-Id" select="@Make-Id" />
                <h2>
                  <xsl:value-of select="/Cars/Brands/Make[@Make-Id=$M-Id]/Name"/>
                </h2>
                <br>
                  Model:
                  <xsl:value-of select="@Model"/>
                </br>
                <br>
                  Country:
                  <xsl:value-of select="/Cars/Brands/Make[@Make-Id=$M-Id]/Country"/>
                </br>
                <br>
                  Year:
                  <xsl:value-of select="@Year"/>
                </br>
                <br>
                  RegPlate:
                  <xsl:value-of select="@RegPlate"/>
                </br>
                <br>
                  VIN:
                  <xsl:value-of select="@VIN"/>
                </br>
                <br>
                  Power:
                  <xsl:value-of select="@Power"/>
                </br>
                <br>
                  Milage:
                  <xsl:value-of select="@Milage"/>
                </br>
                <br>
                  Color:
                  <xsl:value-of select="@Color"/>
                </br>
                <br>
                  Price:
                  <xsl:value-of select="@Price"/>
                </br>
                <br>
                  <xsl:for-each select="Comments">
                    Comment:
                    <xsl:value-of select="."/>
                  </xsl:for-each>
                </br>
                <br>
                  Body:
                  <xsl:variable name="B-Id" select="Body/@Body-Id" />
                  <xsl:value-of select="/Cars/Bodies/Body[@Body-Id=$B-Id]/Name"/>
                  , Comments:
                  <xsl:for-each select="Body/Info">
                    <xsl:value-of select="."/>
                  </xsl:for-each>
                </br>
                <br>
                  Fuel type:
                  <xsl:variable name="F-Id" select="Fueltypes/@Fueltype-Id" />
                  <xsl:value-of select="/Cars/Fueltypes/Fueltype[@Fueltype-Id=$F-Id]/Name"/>
                </br>
                <br>
                  Fuel consumption:
                  <xsl:for-each select="Fueltypes/FuelConsumption">
                    <xsl:value-of select="."/>
                  </xsl:for-each>
                  l/100km
                </br>
                <br>
                  Drivetrain:
                  <xsl:variable name="D-Id" select="Drivetrain/@Drivetrain-Id" />
                  <xsl:value-of select="/Cars/Drivetrains/Drivetrain[@Drivetrain-Id=$D-Id]/Name"/>
                </br>
                <br>
                  Gearbox:
                  <xsl:variable name="T-Id" select="Transmissions/@Trans-Id" />
                  <xsl:value-of select="/Cars/Transmissions/Transmission[@Trans-Id=$T-Id]/Name"/>
                  , number of gears:
                  <xsl:for-each select="Transmissions/Gears">
                    <xsl:value-of select="."/>
                  </xsl:for-each>
                </br>
                <br>
                  <xsl:for-each select="ImageUrl">
                    <xsl:variable name="ImageUrl" select="."/>
                    <img style="width: 30em" src="{$ImageUrl}"/>
                  </xsl:for-each>
                </br>
              </xsl:when>
            </xsl:choose>
          </xsl:for-each>
      </body>
     </html>    
    </xsl:template>
</xsl:stylesheet>

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="Cars">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Bodies">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="Body">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Name" type="xs:string" />
                  </xs:sequence>
                  <xs:attribute name="Body-Id" type="xs:unsignedByte" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Fueltypes">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="Fueltype">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Name" type="xs:string" />
                  </xs:sequence>
                  <xs:attribute name="Fueltype-Id" type="xs:unsignedInt" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Brands">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="Make">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Name" type="xs:string" />
                    <xs:element name="Country" type="xs:string" />
                  </xs:sequence>
                  <xs:attribute name="Make-Id" type="xs:unsignedInt" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Transmissions">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="Transmission">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Name" type="xs:string" />
                  </xs:sequence>
                  <xs:attribute name="Trans-Id" type="xs:unsignedInt" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="Drivetrains">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="Drivetrain">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Name" type="xs:string" />
                  </xs:sequence>
                  <xs:attribute name="Drivetrain-Id" type="xs:unsignedInt" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element maxOccurs="unbounded" name="Car">
          <xs:complexType mixed="true">
            <xs:sequence>
              <xs:element name="Comments" type="xs:string" />
              <xs:element name="Body">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Info" type="xs:string" />
                  </xs:sequence>
                  <xs:attribute name="Body-Id" type="xs:unsignedInt" use="required" />
                </xs:complexType>
              </xs:element>
              <xs:element name="Fueltypes">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="FuelConsumption" type="xs:unsignedByte" />
                  </xs:sequence>
                  <xs:attribute name="Preferred" type="xs:string" use="optional" />
                  <xs:attribute name="Fueltype-Id" type="xs:unsignedInt" use="required" />
                </xs:complexType>
              </xs:element>
              <xs:element name="Drivetrain">
                <xs:complexType>
                  <xs:attribute name="Drivetrain-Id" type="xs:unsignedInt" use="required" />
                </xs:complexType>
              </xs:element>
              <xs:element name="Transmissions">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="Gears" type="xs:unsignedByte" />
                  </xs:sequence>
                  <xs:attribute name="Trans-Id" type="xs:unsignedInt" use="required" />
                </xs:complexType>
              </xs:element>
              <xs:element name="ImageUrl" type="xs:string" />
            </xs:sequence>
            <xs:attribute name="Make-Id" type="xs:unsignedInt" use="required" />
            <xs:attribute name="Model" type="xs:string" use="required" />
            <xs:attribute name="Year" type="xs:unsignedInt" use="required" />
            <xs:attribute name="RegPlate" type="xs:string" use="optional" />
            <xs:attribute name="VIN" type="xs:string" use="optional" />
            <xs:attribute name="Power" type="xs:string" use="optional" />
            <xs:attribute name="Milage" type="xs:unsignedInt" use="required" />
            <xs:attribute name="Color" type="xs:string" use="optional" />
            <xs:attribute name="Price" type="xs:unsignedInt" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>