Meeskond "asdasdasd": Difference between revisions

From ICO wiki
Jump to navigationJump to search
Kkadalip (talk | contribs)
Kkadalip (talk | contribs)
 
(49 intermediate revisions by 2 users not shown)
Line 6: Line 6:
Teemaks valisime relvakataloogi/e-poe, kus hoitakse informatsiooni erinevate käsituli- ja külmrelvade kohta.
Teemaks valisime relvakataloogi/e-poe, kus hoitakse informatsiooni erinevate käsituli- ja külmrelvade kohta.


===XML Fail===
===XML===
.................................
====Kirjeldus:====
<pre>
Meie .xml faili juurelemendiks on <relvad>, mis jagunevad omakorda kaheks: <käsitulirelvad> ja <külmrelvad>. Seda selleks, et oleks selgem eristada. <käsitulirelvad> jagunevad: element püstolid, automaadid, pumppüssid jne. Vastavalt on nende sees juba individuaalsed relvamudelid, näiteks element püstol, mille sees on antud relva tehnilised spetsifikatsioonid ning eripärad. Ka külmrelvad jagunevad alamliikidesse nagu <löögirelvad>, <torkerelvad> jne ning sisaldavad mõningaid andmeid. Atribuudid on tulirelvade alamliikide elementidel mõningad andmed, mis on ühised kõikidel tulirelvadel.
<?xml version="1.0" encoding="utf-8" ?>
 
<!--https://wiki.itcollege.ee/index.php/Kodut%C3%B6%C3%B6_aines_%22V%C3%B5rgurakendused_II:_hajuss%C3%BCsteemide_ehitamine%22_2012#XML_andmefail-->
====Link:====
<!--XML andmefail
*[http://enos.itcollege.ee/~kkadalip/VR2PROJEKT/Relvad.xml XML fail]
Ülesande täitmiseks tuleb luua XML fail andmete edastamiseks,
selle XML faili skeemifail ning paar kolm sobivat XSL faili
loodud XML failis olevate andmete transformeerimiseks HTML formaati ja
XML faili formaadi muutmiseks.
XML-il peab olema vähemalt 4 loogilist dimensiooni.-->
<!--Lisaks tuleb kasutada 3-el dimensioonil attribuute,
mis one enamat, kui lihtsalt ID.-->
<!DOCTYPE relvad SYSTEM "Relvad.dtd">
<relvad>
  <käsitulirelvad>
    <püstolid>
      <püstol Id="1" laskmisrežiimid="safe-semi" päästikutüüp="kahetoimeline/ühetoimeline" rauatüüp="vintraudne">
        <mudel>P226</mudel>
        <päritolu-maad>
          <päritolu-maa>Saksamaa</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>SIG-Sauer</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>9x19</väärtus>
            <tüüp>mm Luger</tüüp>
          </kaliiber>
          <kaliiber>
            <väärtus>.357</väärtus>
            <tüüp>SIG</tüüp>
          </kaliiber>
          <kaliiber>
            <väärtus>.40</väärtus>
            <tüüp>SW</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <väärtus>196</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>112</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <tüüp>alumiiniumist raamiga</tüüp>
            <kaliibritüüp>
              <väärtus>9</väärtus>
              <ühik>mm</ühik>
            </kaliibritüüp>
            <väärtus>870</väärtus>
            <ühik>g</ühik>
          </tühikaal>
          <tühikaal>
            <tüüp>alumiiniumist raamiga</tüüp>
            <kaliibritüüp>
              <väärtus>.40</väärtus>
            </kaliibritüüp>
            <kaliibritüüp>
              <väärtus>.357</väärtus>
            </kaliibritüüp>
            <väärtus>920</väärtus>
            <ühik>g</ühik>
          </tühikaal>
          <tühikaal>
            <tüüp>roostevabast terasest raamiga</tüüp>
            <väärtus>1180</väärtus>
            <ühik>g</ühik>
          </tühikaal>
        </kaalud>
        <salved>
          <salv>
            <kaliibritüüp>
              <väärtus>9</väärtus>
              <ühik>mm</ühik>
            </kaliibritüüp>
            <mahutavus>
              <väärtus>15</väärtus>
              <ühik>padrunit</ühik>
            </mahutavus>
          </salv>
          <salv>
            <kaliibritüüp>
              <väärtus>.40</väärtus>
              <ühik>mm</ühik>
            </kaliibritüüp>
            <mahutavus>
              <väärtus>12</väärtus>
              <ühik>padrunit</ühik>
            </mahutavus>
          </salv>
          <salv>
            <kaliibritüüp>
              <väärtus>.357</väärtus>
              <ühik>mm</ühik>
            </kaliibritüüp>
            <mahutavus>
              <väärtus>12</väärtus>
              <ühik>padrunit</ühik>
            </mahutavus>
          </salv>
        </salved>
      </püstol>
      <püstol Id="2" laskmisrežiimid="safe-semi" päästikutüüp="ühetoimeline" rauatüüp="vintraudne">
        <mudel>M1911</mudel>
        <päritolu-maad>
          <päritolu-maa>USA</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>Colt</tootja>
          <tootja>Springfield Armory</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>.45</väärtus>
            <tüüp>ACP</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <väärtus>210</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <tüüp>Government</tüüp>
            <väärtus>127</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
          <rauapikkus>
            <tüüp>Commander</tüüp>
            <väärtus>108</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
          <rauapikkus>
            <tüüp>Officer's ACP</tüüp>
            <väärtus>89</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <tüüp>tühi koos salvega</tüüp>
            <väärtus>1105</väärtus>
            <ühik>g</ühik>
          </tühikaal>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <väärtus>7</väärtus>
              <ühik>padrunit</ühik>
              <tüüp>standartne eemaldatav karp</tüüp>
            </mahutavus>
          </salv>
        </salved>
      </püstol>
      <püstol Id="3" laskmisrežiimid="safe-semi" päästikutüüp="kahetoimeline/ühetoimeline" rauatüüp="vintraudne">
        <mudel>Beretta M9</mudel>
        <päritolu-maad>
          <päritolu-maa>Itaalia</päritolu-maa>
          <päritolu-maa>USA</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>Fabbrica d'Armi Pietro Beretta</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>9x19</väärtus>
            <tüüp>mm Parabellum</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <väärtus>217</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>125</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <väärtus>952</väärtus>
            <ühik>g</ühik>
          </tühikaal>
          <täiskaal>
            <väärtus>1162</väärtus>
            <ühik>g</ühik>
          </täiskaal>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <väärtus>15</väärtus>
              <ühik>padrunit</ühik>
              <tüüp>eemaldatav karp</tüüp>
            </mahutavus>
          </salv>
        </salved>
      </püstol>
    </püstolid>
    <revolvrid>
      <revolver Id="1" laskmisrežiimid="safe-semi" päästikutüüp="kahetoimeline" rauatüüp="vintraudne">
        <mudel>Python</mudel>
        <päritolu-maad>
          <päritolu-maa>USA</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>Colt Defense</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>.357</väärtus>
            <tüüp>Magnum</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <vintrauatüüp>
              <väärtus>4</väärtus>
              <ühik>toll</ühik>
            </vintrauatüüp>
            <väärtus>240</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>64</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
          <rauapikkus>
            <väärtus>102</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
          <rauapikkus>
            <väärtus>153</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
          <rauapikkus>
            <väärtus>203</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <vintrauatüüp>
              <väärtus>4</väärtus>
              <ühik>toll</ühik>
            </vintrauatüüp>
            <väärtus>1100</väärtus>
            <ühik>g</ühik>
          </tühikaal>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <väärtus>6</väärtus>
              <ühik>padrunit</ühik>
            </mahutavus>
          </salv>
        </salved>
      </revolver>
      <revolver Id="2" laskmisrežiimid="safe-semi" päästikutüüp="kahetoimeline" rauatüüp="vintraudne">
        <mudel>M1895 Nagant</mudel>
        <päritolu-maad>
          <päritolu-maa>Belgia-Venemaa</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>Tula &amp; Izhevsk</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>7.62</väärtus>
            <tüüp>mm Nagant</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <väärtus>230</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>114</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <väärtus>750</väärtus>
            <ühik>g</ühik>
          </tühikaal>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <väärtus>7</väärtus>
              <ühik>padrunit</ühik>
              <tüüp>trummel</tüüp>
            </mahutavus>
          </salv>
        </salved>
      </revolver>
      <revolver Id="3" laskmisrežiimid="safe-semi" päästikutüüp="kahetoimeline" rauatüüp="vintraudne">
        <mudel>AAI Quiet Special Purpose Revolver</mudel>
        <päritolu-maad>
          <päritolu-maa>USA</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>Smith &amp; Wesson</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>.40</väärtus>
            <tüüp>smoothbore</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <väärtus>170</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>35</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <väärtus>6</väärtus>
              <ühik>padrunit</ühik>
              <tüüp>trummel</tüüp>
            </mahutavus>
          </salv>
        </salved>
      </revolver>
    </revolvrid>
    <automaadid>
      <automaat Id="1" laskmisrežiimid="safe-semi-auto" päästikutüüp="ühetoimeline" rauatüüp="vintraudne">
        <mudel>M16A4</mudel>
        <päritolu-maad>
          <päritolu-maa>USA</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>Colt Defense</tootja>
          <tootja>Daewoo Precision Industries</tootja>
          <tootja>FN Herstal</tootja>
          <tootja>H&amp;R Firearms</tootja>
          <tootja>General Motors Hydramatic Division</tootja>
          <tootja>Elisco</tootja>
          <tootja>U.S. Ordnance</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>5.56x45</väärtus>
            <tüüp>mm</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <väärtus>1000</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>508</väärtus>
            <ühik>mm NATO</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <väärtus>3.26</väärtus>
            <ühik>kg</ühik>
          </tühikaal>
          <täiskaal>
            <väärtus>4.0</väärtus>
            <ühik>kg</ühik>
          </täiskaal>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <väärtus>20</väärtus>
              <ühik>padrunit</ühik>
              <tühikaal>
                <väärtus>96</väärtus>
                <ühik>g</ühik>
              </tühikaal>
              <täiskaal>
                <väärtus>335</väärtus>
                <ühik>g</ühik>
              </täiskaal>
              <tüüp>karp</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>30</väärtus>
              <ühik>padrunit</ühik>
              <tühikaal>
                <väärtus>117</väärtus>
                <ühik>g</ühik>
              </tühikaal>
              <täiskaal>
                <väärtus>483</väärtus>
                <ühik>g</ühik>
              </täiskaal>
              <tüüp>karp</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>100</väärtus>
              <ühik>padrunit</ühik>
              <tühikaal>
                <väärtus>1000</väärtus>
                <ühik>g</ühik>
              </tühikaal>
              <täiskaal>
                <väärtus>2190</väärtus>
                <ühik>g</ühik>
              </täiskaal>
              <tüüp>Beta-C kaheosaline trummel</tüüp>
            </mahutavus>
          </salv>
        </salved>
        <lasketihedused>
          <lasketihedus>
            <väärtus>12-15</väärtus>
            <ühik>padrunit/minutis</ühik>
            <tüüp>stabiilne</tüüp>
          </lasketihedus>
          <lasketihedus>
            <väärtus>45-60</väärtus>
            <ühik>padrunit/minutis</ühik>
            <tüüp>üksilaskudega</tüüp>
          </lasketihedus>
          <lasketihedus>
            <väärtus>700-950</väärtus>
            <ühik>padrunit/minutis</ühik>
            <tüüp>tsükliline</tüüp>
          </lasketihedus>
        </lasketihedused>
        <laskekaugused>
          <laskekaugus>
            <väärtus>550</väärtus>
            <ühik>m</ühik>
            <tüüp>punkt sihtmärk</tüüp>
          </laskekaugus>
          <laskekaugus>
            <väärtus>800</väärtus>
            <ühik>m</ühik>
            <tüüp>ala sihtmärk</tüüp>
          </laskekaugus>
        </laskekaugused>
      </automaat>
      <automaat Id="2" laskmisrežiimid="safe-semi-auto" päästikutüüp="ühetoimeline" rauatüüp="vintraudne">
        <mudel>Galil AR (5.56)</mudel>
        <päritolu-maad>
          <päritolu-maa>Iisrael</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>Israel Military Industries (IMI)</tootja>
          <tootja>Bernardelli tehas</tootja>
          <tootja>Indumil tehas</tootja>
          <tootja>Ka Pa Sa State tehased</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>5.56x45</väärtus>
            <tüüp>mm</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <tüüp>lahtise kabaga</tüüp>
            <väärtus>979</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <täispikkus>
            <tüüp>kinnipandud kabaga</tüüp>
            <väärtus>742</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>460</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <väärtus>3.95</väärtus>
            <ühik>kg</ühik>
          </tühikaal>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <väärtus>35</väärtus>
              <ühik>padrunit</ühik>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>50</väärtus>
              <ühik>padrunit</ühik>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>65</väärtus>
              <ühik>padrunit</ühik>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>30</väärtus>
              <ühik>padrunit</ühik>
              <tühikaal>
                <väärtus>117</väärtus>
                <ühik>g</ühik>
              </tühikaal>
              <täiskaal>
                <väärtus>483</väärtus>
                <ühik>g</ühik>
              </täiskaal>
              <tüüp>karp</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>100</väärtus>
              <ühik>padrunit</ühik>
              <tühikaal>
                <väärtus>1000</väärtus>
                <ühik>g</ühik>
              </tühikaal>
              <täiskaal>
                <väärtus>2190</väärtus>
                <ühik>g</ühik>
              </täiskaal>
              <tüüp>Beta-C kaheosaline trummel</tüüp>
            </mahutavus>
          </salv>
        </salved>
        <lasketihedused>
          <lasketihedus>
            <väärtus>630-750</väärtus>
            <ühik>padrunit/minutis</ühik>
            <tüüp>tsükliline</tüüp>
          </lasketihedus>
        </lasketihedused>
        <laskekaugused>
          <laskekaugus>
            <väärtus>300-500</väärtus>
            <ühik>m</ühik>
            <tüüp>punkt sihtmärk</tüüp>
          </laskekaugus>
        </laskekaugused>
      </automaat>
      <automaat Id="3" laskmisrežiimid="safe-semi-auto" päästikutüüp="ühetoimeline" rauatüüp="vintraudne">
        <mudel>G3A3</mudel>
        <päritolu-maad>
          <päritolu-maa>Saksamaa</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>Heckler &amp; Koch</tootja>
          <tootja>Rheinmetall</tootja>
          <tootja>SEDENA</tootja>
          <tootja>Defense Industries Organization</tootja>
          <tootja>FBP</tootja>
          <tootja>Carl Gustafs Stads Gevärsfabrik</tootja>
          <tootja>Husqvarna Vapenfabrik</tootja>
          <tootja>Kongsberg Våpenfabrikk</tootja>
          <tootja>MAS</tootja>
          <tootja>Military Industry Corporation</tootja>
          <tootja>MKEK</tootja>
          <tootja>Pakistan Ordnance Factories</tootja>
          <tootja>Royal Ordnance</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>7.62x51</väärtus>
            <tüüp>mm NATO</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <väärtus>1025</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>450</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <väärtus>4.1</väärtus>
            <ühik>kg</ühik>
          </tühikaal>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <väärtus>20</väärtus>
              <ühik>padrunit</ühik>
              <tüüp>karp</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>50</väärtus>
              <ühik>padrunit</ühik>
              <tüüp>trummel</tüüp>
            </mahutavus>
          </salv>
        </salved>
        <lasketihedused>
          <lasketihedus>
            <väärtus>500-600</väärtus>
            <ühik>padrunit/minutis</ühik>
            <tüüp>tsükliline</tüüp>
          </lasketihedus>
        </lasketihedused>
        <laskekaugused>
          <laskekaugus>
            <väärtus>500</väärtus>
            <ühik>m</ühik>
          </laskekaugus>
        </laskekaugused>
      </automaat>
    </automaadid>
    <püstolkuulipildujad>
      <püstolkuulipilduja Id="1" laskmisrežiimid="safe-semi-auto" päästikutüüp="ühetoimeline" rauatüüp="vintraudne">
        <mudel>MP5A4</mudel>
        <päritolu-maad>
          <päritolu-maa>Saksamaa</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>H&amp;K</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>9</väärtus>
            <tüüp>mm</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <väärtus>680</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>225</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <väärtus>2.9</väärtus>
            <ühik>kg</ühik>
          </tühikaal>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <väärtus>15</väärtus>
              <ühik>padrunit</ühik>
              <tühikaal>
                <väärtus>0.12</väärtus>
                <ühik>kg</ühik>
              </tühikaal>
              <tüüp>karp</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>30</väärtus>
              <ühik>padrunit</ühik>
              <tühikaal>
                <väärtus>0.17</väärtus>
                <ühik>kg</ühik>
              </tühikaal>
              <tüüp>karp</tüüp>
            </mahutavus>
          </salv>
        </salved>
      </püstolkuulipilduja>
      <püstolkuulipilduja Id="2" laskmisrežiimid="safe-semi-auto" päästikutüüp="ühetoimeline" rauatüüp="vintraudne">
        <mudel>Uzi</mudel>
        <päritolu-maad>
          <päritolu-maa>Iisrael</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>Israel Military Industries (IMI)</tootja>
          <tootja>FN Herstal</tootja>
          <tootja>Norinco</tootja>
          <tootja>Lyttleton Engineering Works (Vektor Arms-i all)</tootja>
          <tootja>RH-ALAN</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>9x19</väärtus>
            <tüüp>mm Parabellum</tüüp>
          </kaliiber>
          <kaliiber>
            <väärtus>.22</väärtus>
            <tüüp>LR</tüüp>
          </kaliiber>
          <kaliiber>
            <väärtus>.45</väärtus>
            <tüüp>ACP</tüüp>
          </kaliiber>
          <kaliiber>
            <väärtus>.41</väärtus>
            <tüüp>AE</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <tüüp>avatud kabaga</tüüp>
            <väärtus>640</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <täispikkus>
            <tüüp>kinnise kabaga</tüüp>
            <väärtus>470</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>260</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <väärtus>3.5</väärtus>
            <ühik>kg</ühik>
          </tühikaal>
        </kaalud>
      </püstolkuulipilduja>
      <püstolkuulipilduja Id="3" laskmisrežiimid="safe-semi-auto" päästikutüüp="ühetoimeline" rauatüüp="vintraudne">
        <mudel>MAC-10</mudel>
        <päritolu-maad>
          <päritolu-maa>USA</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>Military Armament Corporation</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>9</väärtus>
            <tüüp>mm</tüüp>
          </kaliiber>
          <kaliiber>
            <väärtus>.45</väärtus>
            <tüüp>mm</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <tüüp>eemaldatud kabaga</tüüp>
            <väärtus>269</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <täispikkus>
            <tüüp>kokkupandud kabaga</tüüp>
            <väärtus>295</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <täispikkus>
            <tüüp>lahtitehtud kabaga</tüüp>
            <väärtus>548</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <täispikkus>
            <tüüp>kokkupandud kaba ja helikompensaatoriga</tüüp>
            <väärtus>545</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <täispikkus>
            <tüüp>lahtitehtud kaba ja helikompensaatoriga</tüüp>
            <väärtus>798</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>146</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <tüüp>ilma helikompensaatorita</tüüp>
            <väärtus>2.84</väärtus>
            <ühik>kg</ühik>
          </tühikaal>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <kaliiber>
                <väärtus>.45</väärtus>
                <tüüp>ACP</tüüp>
              </kaliiber>
              <väärtus>30</väärtus>
              <ühik>padrunit</ühik>
              <tüüp>karp</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <kaliiber>
                <väärtus>9</väärtus>
                <ühik>mm</ühik>
              </kaliiber>
              <väärtus>32</väärtus>
              <ühik>padrunit</ühik>
              <tüüp>karp</tüüp>
            </mahutavus>
          </salv>
        </salved>
      </püstolkuulipilduja> 
  </püstolkuulipildujad>
    <pumppüssid>
      <pumppüss Id="1" laskmisrežiimid="safe-pump" päästikutüüp="ühetoimeline" rauatüüp="sileraudne">
        <mudel>870</mudel>
        <päritolu-maad>
          <päritolu-maa>USA</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>Remington</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>12</väärtus>
            <tüüp>cal</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <väärtus>sõltub mudelist</väärtus>
          </täispikkus>
          <rauapikkus>
            <väärtus>355</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
          <rauapikkus>
            <väärtus>457</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <väärtus>3-3.5</väärtus>
            <ühik>kg</ühik>
          </tühikaal>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <väärtus>7-8</väärtus>
              <ühik>hülssi</ühik>
              <tüüp>sisse-ehitatud</tüüp>
            </mahutavus>
          </salv>
        </salved>
      </pumppüss>
      <pumppüss Id="2" laskmisrežiimid="safe-pump" päästikutüüp="ühetoimeline" rauatüüp="sileraudne">
        <mudel>M3T</mudel>
        <päritolu-maad>
          <päritolu-maa>Itaalia</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>Benelli</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>12</väärtus>
            <tüüp>cal</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <tüüp>lahtise kabaga</tüüp>
            <väärtus>1035</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <täispikkus>
            <tüüp>kokkupandud-kabaga</tüüp>
            <väärtus>780</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>355</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
          <rauapikkus>
            <väärtus>457</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <väärtus>3-3.5</väärtus>
            <ühik>kg</ühik>
          </tühikaal>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <väärtus>7-8</väärtus>
              <ühik>hülssi</ühik>
              <tüüp>sisse-ehitatud</tüüp>
            </mahutavus>
          </salv>
        </salved>
      </pumppüss>
      <pumppüss Id="3" laskmisrežiimid="safe-semi" päästikutüüp="ühetoimeline" rauatüüp="sileraudne">
        <mudel>Saiga-12</mudel>
        <päritolu-maad>
          <päritolu-maa>Venemaa</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>Izhmash</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>12</väärtus>
            <tüüp>cal</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <väärtus>1145</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>580</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <väärtus>3.6</väärtus>
            <ühik>kg</ühik>
          </tühikaal>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <väärtus>2</väärtus>
              <ühik>hülssi</ühik>
              <tüüp>eemaldatav karp</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>5</väärtus>
              <ühik>hülssi</ühik>
              <tüüp>eemaldatav karp</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>8</väärtus>
              <ühik>hülssi</ühik>
              <tüüp>eemaldatav karp</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>10</väärtus>
              <ühik>hülssi</ühik>
              <tüüp>eemaldatav karp</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>12</väärtus>
              <ühik>hülssi</ühik>
              <tüüp>eemaldatav trummel</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>20</väärtus>
              <ühik>hülssi</ühik>
              <tüüp>eemaldatav trummel</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>30</väärtus>
              <ühik>hülssi</ühik>
              <tüüp>eemaldatav trummel</tüüp>
            </mahutavus>
          </salv>
        </salved>
      </pumppüss>
    </pumppüssid>
    <kuulipildujad>
      <kuulipilduja Id="1" laskmisrežiimid="safe-auto" päästikutüüp="ühetoimeline" rauatüüp="vintraudne">
        <mudel>M249</mudel>
        <päritolu-maad>
          <päritolu-maa>USA</päritolu-maa>
          <päritolu-maa>Belgia</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>Fabrique Nationale de Herstal</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>5.56x45</väärtus>
            <tüüp>mm NATO</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <väärtus>1035</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>465</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <väärtus>7.5</väärtus>
            <ühik>kg</ühik>
          </tühikaal>
          <täiskaal>
            <väärtus>10</väärtus>
            <ühik>kg</ühik>
          </täiskaal>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <väärtus>ükspuha, kui palju</väärtus>
              <tüüp>lagunev lint (M27)</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>20</väärtus>
              <ühik>padrunit</ühik>
              <tühikaal>
                <väärtus>96</väärtus>
                <ühik>g</ühik>
              </tühikaal>
              <täiskaal>
                <väärtus>335</väärtus>
                <ühik>g</ühik>             
              </täiskaal>
              <tüüp>karp</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>30</väärtus>
              <ühik>padrunit</ühik>
              <tühikaal>
                <väärtus>117</väärtus>
                <ühik>g</ühik>
              </tühikaal>
              <täiskaal>
                <väärtus>483</väärtus>
                <ühik>g</ühik>
                </täiskaal>
              <tüüp>karp</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>100</väärtus>
              <ühik>padrunit</ühik>
              <tühikaal>
                <väärtus>1000</väärtus>
                <ühik>g</ühik>
              </tühikaal>
              <täiskaal>
                <väärtus>2190</väärtus>
                <ühik>g</ühik>
              </täiskaal>
              <tüüp>Beta-C kaheosaline trummel</tüüp>
            </mahutavus>
          </salv>
        </salved>
        <lasketihedused>
          <lasketihedus>
            <väärtus>50</väärtus>
            <ühik>padrunit/minutis</ühik>
            <tüüp>stabiilne</tüüp>
          </lasketihedus>
          <lasketihedus>
            <väärtus>100</väärtus>
            <ühik>padrunit/minutis</ühik>
            <tüüp>tihe</tüüp>
          </lasketihedus>
          <lasketihedus>
            <väärtus>775</väärtus>
            <ühik>padrunit/minutis</ühik>
            <tüüp>tsükliline</tüüp>
          </lasketihedus>
        </lasketihedused>
        <laskekaugused>
          <laskekaugus>
            <väärtus>800</väärtus>
            <ühik>m</ühik>
            <tüüp>punkt sihtmärk</tüüp>
          </laskekaugus>
          <laskekaugus>
            <väärtus>3600</väärtus>
            <ühik>m</ühik>
            <tüüp>maksimaalne</tüüp>
          </laskekaugus>
        </laskekaugused>
      </kuulipilduja>
      <kuulipilduja Id="2" laskmisrežiimid="safe-semi-auto" päästikutüüp="ühetoimeline" rauatüüp="vintraudne">
        <mudel>RPK</mudel>
        <päritolu-maad>
          <päritolu-maa>Nõukogude Liit</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>Vyatskie Polyany tehas</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>7.62×39</väärtus>
            <tüüp>mm M43</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <väärtus>1040</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>590</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <väärtus>4.8</väärtus>
            <ühik>kg</ühik>
          </tühikaal>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <väärtus>20</väärtus>
              <ühik>padrunit</ühik>
              <tüüp>kaardus karp</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>30</väärtus>
              <ühik>padrunit</ühik>
              <tüüp>kaardus karp</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>40</väärtus>
              <ühik>padrunit</ühik>
              <tüüp>kaardus karp</tüüp>
            </mahutavus>
          </salv>         
          <salv>
            <mahutavus>
              <väärtus>100</väärtus>
              <ühik>padrunit</ühik>
              <tüüp>trummel</tüüp>
            </mahutavus>
          </salv>       
        </salved>
        <lasketihedused>
          <lasketihedus>
            <väärtus>600</väärtus>
            <ühik>padrunit/minutis</ühik>
            <tüüp>tsükliline</tüüp>
          </lasketihedus>
        </lasketihedused>
        <laskekaugused>
          <laskekaugus>
            <väärtus>100-1000</väärtus>
            <ühik>m</ühik>
            <tüüp>sihikuline</tüüp>
          </laskekaugus>
        </laskekaugused>
      </kuulipilduja>
    </kuulipildujad>
    <täpsuspüssid>
      <täpsuspüss Id="1" laskmisrežiimid="safe-bolt" päästikutüüp="ühetoimeline" rauatüüp="vintraudne">
        <mudel>M40A3</mudel>
        <päritolu-maad>
          <päritolu-maa>USA</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>United States Marine Corps</tootja>
          <tootja>Remington</tootja>
          <tootja>U.S. Ordnance</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>7.62x51</väärtus>
            <tüüp>mm NATO</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <väärtus>1124</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>610</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <väärtus>7.5</väärtus>
            <ühik>kg</ühik>
          </tühikaal>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <väärtus>5</väärtus>
              <ühik>padrunit</ühik>
              <tüüp>sisse-ehitatud karp</tüüp>
            </mahutavus>
          </salv>
        </salved>
      </täpsuspüss>
      <täpsuspüss Id="2" laskmisrežiimid="safe-semi" päästikutüüp="ühetoimeline" rauatüüp="vintraudne">
        <mudel>M14EBR Mod 0</mudel>
        <päritolu-maad>
          <päritolu-maa>USA</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>Naval Surface Warfare Center</tootja>
          <tootja>Crane Division</tootja>
          <tootja>Smith Enterprises</tootja>
          <tootja>CheyTac Firearms(US)</tootja>
          <tootja>Colt Defense Systems (jupid)</tootja>
          <tootja>Sage International (kaba)</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>7.62x51</väärtus>
            <tüüp>mm NATO</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <väärtus>889</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>457</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <tühikaal>
            <väärtus>5.1</väärtus>
            <ühik>kg</ühik>
          </tühikaal>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <väärtus>10</väärtus>
              <ühik>padrunit</ühik>
              <tüüp>karp</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>20</väärtus>
              <ühik>padrunit</ühik>
              <tüüp>karp</tüüp>
            </mahutavus>
          </salv>
        </salved>
      </täpsuspüss>
      <täpsuspüss Id="3" laskmisrežiimid="safe-semi" päästikutüüp="ühetoimeline" rauatüüp="vintraudne">
        <mudel>M110</mudel>
        <päritolu-maad>
          <päritolu-maa>USA</päritolu-maa>
        </päritolu-maad>
        <tootjad>
          <tootja>Knight's Armament Company</tootja>
        </tootjad>
        <kaliibrid>
          <kaliiber>
            <väärtus>7.62x51</väärtus>
            <tüüp>mm NATO</tüüp>
          </kaliiber>
        </kaliibrid>
        <pikkused>
          <täispikkus>
            <tüüp>kaba täiesti väljatõmmatud</tüüp>
            <väärtus>1029</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <täispikkus>
            <tüüp>kaba täiesti kokkulükatud</tüüp>
            <väärtus>1181</väärtus>
            <ühik>mm</ühik>
          </täispikkus>
          <rauapikkus>
            <väärtus>508</väärtus>
            <ühik>mm</ühik>
          </rauapikkus>
        </pikkused>
        <kaalud>
          <täiskaal>
            <tüüp>koos optika, harkjala ja laetud 20-se karpsalvega</tüüp>
            <väärtus>6.94</väärtus>
            <ühik>kg</ühik>
          </täiskaal>
        </kaalud>
        <salved>
          <salv>
            <mahutavus>
              <väärtus>10</väärtus>
              <ühik>padrunit</ühik>
              <tüüp>karp</tüüp>
            </mahutavus>
          </salv>
          <salv>
            <mahutavus>
              <väärtus>20</väärtus>
              <ühik>padrunit</ühik>
              <tüüp>karp</tüüp>
            </mahutavus>
          </salv>
        </salved>
      </täpsuspüss>
    </täpsuspüssid>
  </käsitulirelvad>
  <külmrelvad>
    <löögirelvad>
      <löögirelv Id="1">
        <nimetus>kumminui</nimetus>
        <tootja>Hiina RV</tootja>
      </löögirelv>
      <löögirelv Id="2">
        <nimetus>kettnui</nimetus>
      </löögirelv>
      <löögirelv Id="3">
        <nimetus>teraspiits</nimetus>
        <tootja>Eesti</tootja>
      </löögirelv>
      <löögirelv Id="4">
        <nimetus>kasteet</nimetus>
      </löögirelv>
    </löögirelvad>
    <torkerelvad>
      <torkerelv Id="1">
        <nimetus>pistoda</nimetus>
      </torkerelv>
      <torkerelv Id="2">
        <nimetus>torketääk</nimetus>
      </torkerelv>
      <torkerelv Id="3">
        <nimetus>stilett</nimetus>
      </torkerelv>
    </torkerelvad>
    <torke-lõikerelvad>
      <torke-lõikerelv Id="1">
        <nimetus>jahinuga</nimetus>
      </torke-lõikerelv>
      <torke-lõikerelv Id="2">
        <nimetus>jahipuss</nimetus>
      </torke-lõikerelv>
      <torke-lõikerelv Id="3">
        <nimetus>allveenuga</nimetus>
      </torke-lõikerelv>
      <torke-lõikerelv Id="4">
        <nimetus>tääknuga</nimetus>
      </torke-lõikerelv>
    </torke-lõikerelvad>
    <torke-raierelvad>
      <torke-raierelv Id="1">
        <nimetus>mõõk</nimetus>
      </torke-raierelv>
      <torke-raierelv Id="2">
        <nimetus>valgusmõõk</nimetus>
      </torke-raierelv>
    </torke-raierelvad>
  </külmrelvad>
</relvad>
</pre>


===XML DTD===
===XML DTD===
.................................
====Kirjeldus:====
<pre>
DTD eesmärk on aidata .xml failis leida üles vigu ning üldstruktuuri parandada/defineerida.
<!-- + * ? tähistavad esinevust failis:
 
The + sign in the example above declares that the child element must occur one or more times inside the element.
====Link:====
The * sign in the example above declares that the child element can occur zero or more times inside the element.
*[http://enos.itcollege.ee/~kkadalip/VR2PROJEKT/Relvad.dtd Käsitsi kirjutatud DTD]
The ? sign in the example above declares that the child element can occur zero or one time inside the element.
 
-->
===XML Skeemifail (DTD põhjal)===
<!ELEMENT relvad (käsitulirelvad*, külmrelvad*)>
*[http://enos.itcollege.ee/~kkadalip/VR2PROJEKT/DTD_pohjal.xsd Skeemifail käsitsi kirjutatud DTD põhjal]
  <!ELEMENT käsitulirelvad (püstolid*, revolvrid*, automaadid*, püstolkuulipildujad*, pumppüssid*, kuulipildujad*,täpsuspüssid*)>
 
    <!ELEMENT püstolid (püstol*)>
===XML Automaatgenereeritud skeemifail===
      <!ELEMENT püstol (mudel?, päritolu-maad?, tootjad?, kaliibrid?, pikkused?, kaalud?, salved?)>
* [http://enos.itcollege.ee/~kkadalip/VR2PROJEKT/automaatne.xsd Automaatgenereeritud skeemifail]
        <!ELEMENT mudel (#PCDATA)>
 
        <!ELEMENT päritolu-maad (päritolu-maa*)>
===XML Transformatsiooni failid:===
          <!ELEMENT päritolu-maa (#PCDATA)>
 
        <!ELEMENT tootjad (tootja*)>
====Esimene====
        <!ELEMENT kaliibrid (kaliiber*)>
See transformatsioonifail väljastab tulemuse html kujul .htm faililaiendiga failina ja on mõeldud selleks, et XML failist välja sorteerida ja kuvada kõik XML-i kirjutatud andmed võimalikult loetaval ja viisakal kujul.
          <!ELEMENT kaliiber (väärtus?, ühik?, tüüp?)>
* [http://enos.itcollege.ee/~kkadalip/VR2PROJEKT/XSL-1.xslt Transformatsioonifail 1]
        <!ELEMENT pikkused (täispikkus*, rauapikkus*)>
* [http://enos.itcollege.ee/~kkadalip/VR2PROJEKT/XSL-1.htm Transformatsioonifail 1 tulemus]
          <!ELEMENT täispikkus (vintrauatüüp?, tüüp?, väärtus?, ühik?)>
 
          <!ELEMENT rauapikkus (tüüp?, väärtus?, ühik?)>
====Teine====
        <!ELEMENT kaalud (tühikaal*, täiskaal*)>
See transformatsioonifail väljastab tulemuse html kujul .htm faililaiendiga failina ja on mõeldud selleks, et XML failist välja sorteerida ja kuvada esimeses nimekirjas kõik käsitulirelvad (tulirelva tüübi tekst on värvitud punaseks) ning teises nimekirjas külmrelvad (külmrelva tüübi tekst on värvitud siniseks).
          <!ELEMENT tühikaal (tüüp?, kaliibritüüp*, vintrauatüüp?, väärtus?, ühik?)>
* [http://enos.itcollege.ee/~kkadalip/VR2PROJEKT/XSL-2.xslt Transformatsioonifail 2]
          <!ELEMENT täiskaal (tüüp?, kaliibritüüp*, vintrauatüüp?, väärtus?, ühik?)>
* [http://enos.itcollege.ee/~kkadalip/VR2PROJEKT/XSL-2.htm Transformatsioonifail 2 tulemus]
        <!ELEMENT salved (salv*)>
 
          <!ELEMENT salv (kaliibritüüp*, mahutavus?)>
====Kolmas====
          <!ELEMENT kaliibritüüp (väärtus?, ühik?)>
See transformatsioonifail väljastab tulemuse html kujul .htm faililaiendiga failina ja on mõeldud selleks, et XML failist välja sorteerida ja kuvada esimeses alamsektsioonis USA-s toodetavad käsitulirelvad ning teises alamsektsioonis 9mm kaliibriga käsitulirelvad.
        <!ELEMENT mahutavus (kaliiber?, väärtus?, ühik?, tühikaal?, täiskaal?, tüüp?)>
* [http://enos.itcollege.ee/~kkadalip/VR2PROJEKT/XSL-3.xslt Transformatsioonifail 3]
        <!ELEMENT lasketihedused (lasketihedus*)>
* [http://enos.itcollege.ee/~kkadalip/VR2PROJEKT/XSL-3.htm Transformatsioonifail 3 tulemus]
          <!ELEMENT lasketihedus (väärtus?, ühik?, tüüp?)>
 
        <!ELEMENT laskekaugused (laskekaugus*)>
==Teenus==
          <!ELEMENT laskekaugus (väärtus?, ühik?, tüüp?)>
Valminud teenuse meetodid:
        <!ELEMENT vintrauatüüp (väärtus, ühik)>
* '''User GetCurrentUser()''' - tagastab teenuse välja kutsunud kasutaja ''User'' objektina
    <!ELEMENT revolvrid (revolver*)>
* '''bool RegisterUser(User user)''' - registreerib etteantud kasutaja, tagastab registreerimise õnnestumise ''true/false''
      <!ELEMENT revolver (mudel?, päritolu-maad?, tootjad?, kaliibrid?, pikkused?, kaalud?, salved?)>   
* '''bool LoginUser(string username, string password)''' - logib kasutaja sisse. Kontrollib, kas antud kasutajanimi ja parool ühtivad andmebaasi andmetega, tagastab tõeväärtuse
    <!ELEMENT automaadid (automaat*)>
* '''string GetUserRole(string username)''' - tagastab kasutaja rolli ''string''-ina. Kasutaja võib olla kas ''admin'' või ''user'' tüüpi
      <!ELEMENT automaat (mudel?, päritolu-maad?, tootjad?, kaliibrid?, pikkused?, kaalud?, salved?, lasketihedused?, laskekaugused?)>  
* '''bool AddGun(Gun gun)''' - lisab ''Gun'' andmetüübi andmebaasiolemisse ''Gun''. Tagastab lisamise õnnestumise
    <!ELEMENT püstolkuulipildujad (püstolkuulipilduja*)>
* '''string GetMd5Hash(string password)''' - muudab etteantud parooli räsiks, tagastab ''string''-i
      <!ELEMENT püstolkuulipilduja (mudel?, päritolu-maad?, tootjad?, kaliibrid?, pikkused?, kaalud?, salved?)>
* '''bool VerifyMd5Hash(string input, string hash)''' - kontrollib räsi
    <!ELEMENT pumppüssid (pumppüss*)>
* '''ObservableCollection<string> GetAllCategories()''' - tagastab kõik kategooriad tabelist ''Gun'' ''ObservableCollection''-ina.
      <!ELEMENT pumppüss (mudel?, päritolu-maad?, tootjad?, kaliibrid?, pikkused?, kaalud?, salved?)>
* '''ObservableCollection<string> GetAllGategoryWeapons(string category)''' - tagastab ''ObservableCollection''-ina kõik relvad, mis kuuluvad etteantud kategooriasse
    <!ELEMENT kuulipildujad (kuulipilduja*)>
* '''ObservableCollection<string> PopulateSpecs(string selectedGun)''' - tagastab kõik etteantud relva spetsifikatsioonid ''ObservableCollection''-ina
      <!ELEMENT kuulipilduja (mudel?, päritolu-maad?, tootjad?, kaliibrid?, pikkused?, kaalud?, salved?, lasketihedused?, laskekaugused?)>
* '''ObservableCollection<AddOn> GetAllAddOns()''' - tagastab kõik relvalisad ''ObservableCollection''-ina
    <!ELEMENT täpsuspüssid (täpsuspüss*)>
* '''ObservableCollection<Caliber> GetAllCalibers()''' - tagastab kõik kaliibrid ''ObservableCollection''-ina
      <!ELEMENT täpsuspüss (mudel?, päritolu-maad?, tootjad?, kaliibrid?, pikkused?, kaalud?, salved?)>
* '''ObservableCollection<Cartridge> GetAllCartridges()''' - tagastab kõik padrunid ''ObservableCollection''-ina
  <!ELEMENT külmrelvad (löögirelvad*, torkerelvad*, torke-lõikerelvad*, torke-raierelvad*)>
* '''ObservableCollection<Gun> GetAllGuns()''' - tagastab kõik relvad ''ObservableCollection''-ina
    <!ELEMENT löögirelvad (löögirelv*)>
* '''ObservableCollection<GunBarrel> GetAllGunBarrels()''' - tagastab kõik relvatorud ''ObservableCollection''-ina
      <!ELEMENT löögirelv (nimetus?, tootja?)>
* '''ObservableCollection<GunSize> GetAllGunSizes()''' - tagastab kõik relvasuurused ''ObservableCollection''-ina
        <!ELEMENT nimetus (#PCDATA)>
* '''ObservableCollection<GunWeight> GetAllGunWeights()''' - tagastab kõik relvakaalud ''ObservableCollection''-ina
        <!ELEMENT tootja (#PCDATA)>
* '''ObservableCollection<ItemSize> GetAllItemSizes()''' - tagastab kõik ühikusuurused ''ObservableCollection''-ina
    <!ELEMENT torkerelvad (torkerelv*)>
* '''ObservableCollection<Magazine> GetAllMagazines()''' - tagastab kõik salved ''ObservableCollection''-ina
      <!ELEMENT torkerelv (nimetus?)>
* '''ObservableCollection<Manufacturer> GetAllManufacturers()''' - tagastab kõik relvatootjad ''ObservableCollection''-ina
    <!ELEMENT torke-lõikerelvad (torke-lõikerelv*)>
* '''ObservableCollection<MeasurementUnit> GetAllMeasurementUnits()''' - tagastab kõik mõõteühikud ''ObservableCollection''-ina
      <!ELEMENT torke-lõikerelv (nimetus?)>
* '''ObservableCollection<OtherWeapon> GetAllOtherWeapons()''' - tagastab kõik muud tüüpi relvad (mitte Gun) ''ObservableCollection''-ina
    <!ELEMENT torke-raierelvad (torke-raierelv*)>
* '''ObservableCollection<Rof> GetAllRofs()''' - tagastab kõik lasketihedused ''ObservableCollection''-ina
      <!ELEMENT torke-raierelv (nimetus?)>
* '''ObservableCollection<User> GetAllUsers()''' - tagastab kõik kasutajad ''ObservableCollection''-ina
* '''ObservableCollection<ViewStatistic> GetAllViewStatistics()''' - tagastab kogu statistika ''ObservableCollection''-ina
* '''bool AddStat(Gun gun, User user)''' - lisab ViewStatistic tabelisse kasutaja ja user objekti, tagastab ''true/false'' vastavalt õnnestumisele
 
==Klientrakendus==
 
Klientrakendus on nii tavakasutajale kui ka administraatorile mõeldud rakendus, millega on võimalik andmebaasist lugeda andmeid erinevate relvade kohta. Tavakasutajal on võimalik end registreerida kasutajaks ja vaadata andmeid. Kasutajamugavuse mõttes on relvad jaotatud kategooriatesse.
 
Administraatoril on võimalik andmeid vaadata ning neid ka muuta ja lisada. Administraatoril on mugavaks halduseks oma liides, mis erineb tavakasutaja omast märkimisväärselt. Kasutaja vaatamised salvestatakse ning administraatoril on võimalik vaadata ka statistikat selle kohta, mida mingi kasutaja on vaadanud ning kui mitu korda.


<!ELEMENT väärtus (#PCDATA)>
==Allalaadimine==
<!ELEMENT ühik (#PCDATA)>
Valminud töö algkoodi/solutioni saab allalaadida lingilt: http://www.upload.ee/download/3368769/2d310056c999a3a1c47/XMLprojekt.zip
<!ELEMENT tüüp (#PCDATA)>


<!ATTLIST püstol Id CDATA #REQUIRED>
==Logi==
<!ATTLIST püstol laskmisrežiimid CDATA #IMPLIED>
<!ATTLIST püstol päästikutüüp CDATA #IMPLIED>
<!ATTLIST püstol rauatüüp CDATA #IMPLIED>


<!ATTLIST revolver Id CDATA #REQUIRED>
===21.03.2013===
<!ATTLIST revolver laskmisrežiimid CDATA #IMPLIED>
* Lõime WIKI lehe
<!ATTLIST revolver päästikutüüp CDATA #IMPLIED>
* Esitasime ära XML, DTD, Schemad, XSL-id (3 erinevat)
<!ATTLIST revolver rauatüüp CDATA #IMPLIED>
* Lisasime kommentaarid
* Kirjutasime worktaske


<!ATTLIST automaat Id CDATA #REQUIRED>
=== 22.03.2013 ===
<!ATTLIST automaat laskmisrežiimid CDATA #IMPLIED>
* XML parsemisega tegelemine klientrakenduse poolel
<!ATTLIST automaat päästikutüüp CDATA #IMPLIED>
* kolmas XSL
<!ATTLIST automaat rauatüüp CDATA #IMPLIED>
* XSL-ide parandamine


<!ATTLIST püstolkuulipilduja Id CDATA #REQUIRED>
=== 30.03.2013===
<!ATTLIST püstolkuulipilduja laskmisrežiimid CDATA #IMPLIED>
* Kirutasime retsensiooni meeskonna [[Talk:CSharpArt]] XML, XSLT ja XSD kohta.
<!ATTLIST püstolkuulipilduja päästikutüüp CDATA #IMPLIED>
<!ATTLIST püstolkuulipilduja rauatüüp CDATA #IMPLIED>


<!ATTLIST pumppüss Id CDATA #REQUIRED>
=== 12.04.2013 ===
<!ATTLIST pumppüss laskmisrežiimid CDATA #IMPLIED>
* Esialgse WCF teenuse lisamine ning testimine
<!ATTLIST pumppüss päästikutüüp CDATA #IMPLIED>
<!ATTLIST pumppüss rauatüüp CDATA #IMPLIED>


<!ATTLIST kuulipilduja Id CDATA #REQUIRED>
=== 26.04.2103 ===
<!ATTLIST kuulipilduja laskmisrežiimid CDATA #IMPLIED>
* Andmebaasimudelite lisamine
<!ATTLIST kuulipilduja päästikutüüp CDATA #IMPLIED>
* Teenuse testimine
<!ATTLIST kuulipilduja rauatüüp CDATA #IMPLIED>
* Kõikide ''repository''-de ja nende ''interface''-de lisamine


<!ATTLIST täpsuspüss Id CDATA #REQUIRED>
=== 29.04.2013 ===
<!ATTLIST täpsuspüss laskmisrežiimid CDATA #IMPLIED>
* Andmebaasimudelite parandamine
<!ATTLIST täpsuspüss päästikutüüp CDATA #IMPLIED>
<!ATTLIST täpsuspüss rauatüüp CDATA #IMPLIED>


<!ATTLIST löögirelv Id CDATA #REQUIRED>
=== 30.04.2013 ===
<!ATTLIST torkerelv Id CDATA #REQUIRED>
* Andmebaasimudelite annotatsioonide lisamine
<!ATTLIST torke-lõikerelv Id CDATA #REQUIRED>
<!ATTLIST torke-raierelv Id CDATA #REQUIRED>
</pre>


===XML Skeemifail (DTD põhjal)===
=== 02.05.2013 ===
<pre><?xml version="1.0" encoding="utf-8"?>
* ''Data access Layer''-i lisamine ja muutmine
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="relvad">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="käsitulirelvad" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="külmrelvad" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="käsitulirelvad">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="püstolid" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="revolvrid" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="automaadid" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="püstolkuulipildujad" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="pumppüssid" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="kuulipildujad" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="täpsuspüssid" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="püstolid">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="püstol" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="püstol">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="mudel" />
        <xs:element minOccurs="0" maxOccurs="1" ref="päritolu-maad" />
        <xs:element minOccurs="0" maxOccurs="1" ref="tootjad" />
        <xs:element minOccurs="0" maxOccurs="1" ref="kaliibrid" />
        <xs:element minOccurs="0" maxOccurs="1" ref="pikkused" />
        <xs:element minOccurs="0" maxOccurs="1" ref="kaalud" />
        <xs:element minOccurs="0" maxOccurs="1" ref="salved" />
      </xs:sequence>
      <xs:attribute name="Id" type="xs:string" use="required" />
      <xs:attribute name="laskmisrežiimid" type="xs:string" />
      <xs:attribute name="päästikutüüp" type="xs:string" />
      <xs:attribute name="rauatüüp" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="mudel" type="xs:string" />
  <xs:element name="päritolu-maad">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="päritolu-maa" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="päritolu-maa" type="xs:string" />
  <xs:element name="tootjad">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="tootja" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="kaliibrid">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="kaliiber" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="kaliiber">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="väärtus" />
        <xs:element minOccurs="0" maxOccurs="1" ref="ühik" />
        <xs:element minOccurs="0" maxOccurs="1" ref="tüüp" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="pikkused">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="täispikkus" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="rauapikkus" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="täispikkus">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="vintrauatüüp" />
        <xs:element minOccurs="0" maxOccurs="1" ref="tüüp" />
        <xs:element minOccurs="0" maxOccurs="1" ref="väärtus" />
        <xs:element minOccurs="0" maxOccurs="1" ref="ühik" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="rauapikkus">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="tüüp" />
        <xs:element minOccurs="0" maxOccurs="1" ref="väärtus" />
        <xs:element minOccurs="0" maxOccurs="1" ref="ühik" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="kaalud">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="tühikaal" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="täiskaal" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="tühikaal">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="tüüp" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="kaliibritüüp" />
        <xs:element minOccurs="0" maxOccurs="1" ref="vintrauatüüp" />
        <xs:element minOccurs="0" maxOccurs="1" ref="väärtus" />
        <xs:element minOccurs="0" maxOccurs="1" ref="ühik" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="täiskaal">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="tüüp" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="kaliibritüüp" />
        <xs:element minOccurs="0" maxOccurs="1" ref="vintrauatüüp" />
        <xs:element minOccurs="0" maxOccurs="1" ref="väärtus" />
        <xs:element minOccurs="0" maxOccurs="1" ref="ühik" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="salved">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="salv" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="salv">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="kaliibritüüp" />
        <xs:element minOccurs="0" maxOccurs="1" ref="mahutavus" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="kaliibritüüp">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="väärtus" />
        <xs:element minOccurs="0" maxOccurs="1" ref="ühik" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="mahutavus">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="kaliiber" />
        <xs:element minOccurs="0" maxOccurs="1" ref="väärtus" />
        <xs:element minOccurs="0" maxOccurs="1" ref="ühik" />
        <xs:element minOccurs="0" maxOccurs="1" ref="tühikaal" />
        <xs:element minOccurs="0" maxOccurs="1" ref="täiskaal" />
        <xs:element minOccurs="0" maxOccurs="1" ref="tüüp" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="lasketihedused">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="lasketihedus" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="lasketihedus">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="väärtus" />
        <xs:element minOccurs="0" maxOccurs="1" ref="ühik" />
        <xs:element minOccurs="0" maxOccurs="1" ref="tüüp" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="laskekaugused">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="laskekaugus" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="laskekaugus">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="väärtus" />
        <xs:element minOccurs="0" maxOccurs="1" ref="ühik" />
        <xs:element minOccurs="0" maxOccurs="1" ref="tüüp" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="vintrauatüüp">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="väärtus" />
        <xs:element ref="ühik" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="revolvrid">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="revolver" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="revolver">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="mudel" />
        <xs:element minOccurs="0" maxOccurs="1" ref="päritolu-maad" />
        <xs:element minOccurs="0" maxOccurs="1" ref="tootjad" />
        <xs:element minOccurs="0" maxOccurs="1" ref="kaliibrid" />
        <xs:element minOccurs="0" maxOccurs="1" ref="pikkused" />
        <xs:element minOccurs="0" maxOccurs="1" ref="kaalud" />
        <xs:element minOccurs="0" maxOccurs="1" ref="salved" />
      </xs:sequence>
      <xs:attribute name="Id" type="xs:string" use="required" />
      <xs:attribute name="laskmisrežiimid" type="xs:string" />
      <xs:attribute name="päästikutüüp" type="xs:string" />
      <xs:attribute name="rauatüüp" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="automaadid">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="automaat" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="automaat">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="mudel" />
        <xs:element minOccurs="0" maxOccurs="1" ref="päritolu-maad" />
        <xs:element minOccurs="0" maxOccurs="1" ref="tootjad" />
        <xs:element minOccurs="0" maxOccurs="1" ref="kaliibrid" />
        <xs:element minOccurs="0" maxOccurs="1" ref="pikkused" />
        <xs:element minOccurs="0" maxOccurs="1" ref="kaalud" />
        <xs:element minOccurs="0" maxOccurs="1" ref="salved" />
        <xs:element minOccurs="0" maxOccurs="1" ref="lasketihedused" />
        <xs:element minOccurs="0" maxOccurs="1" ref="laskekaugused" />
      </xs:sequence>
      <xs:attribute name="Id" type="xs:string" use="required" />
      <xs:attribute name="laskmisrežiimid" type="xs:string" />
      <xs:attribute name="päästikutüüp" type="xs:string" />
      <xs:attribute name="rauatüüp" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="püstolkuulipildujad">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="püstolkuulipilduja" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="püstolkuulipilduja">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="mudel" />
        <xs:element minOccurs="0" maxOccurs="1" ref="päritolu-maad" />
        <xs:element minOccurs="0" maxOccurs="1" ref="tootjad" />
        <xs:element minOccurs="0" maxOccurs="1" ref="kaliibrid" />
        <xs:element minOccurs="0" maxOccurs="1" ref="pikkused" />
        <xs:element minOccurs="0" maxOccurs="1" ref="kaalud" />
        <xs:element minOccurs="0" maxOccurs="1" ref="salved" />
      </xs:sequence>
      <xs:attribute name="Id" type="xs:string" use="required" />
      <xs:attribute name="laskmisrežiimid" type="xs:string" />
      <xs:attribute name="päästikutüüp" type="xs:string" />
      <xs:attribute name="rauatüüp" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="pumppüssid">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="pumppüss" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="pumppüss">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="mudel" />
        <xs:element minOccurs="0" maxOccurs="1" ref="päritolu-maad" />
        <xs:element minOccurs="0" maxOccurs="1" ref="tootjad" />
        <xs:element minOccurs="0" maxOccurs="1" ref="kaliibrid" />
        <xs:element minOccurs="0" maxOccurs="1" ref="pikkused" />
        <xs:element minOccurs="0" maxOccurs="1" ref="kaalud" />
        <xs:element minOccurs="0" maxOccurs="1" ref="salved" />
      </xs:sequence>
      <xs:attribute name="Id" type="xs:string" use="required" />
      <xs:attribute name="laskmisrežiimid" type="xs:string" />
      <xs:attribute name="päästikutüüp" type="xs:string" />
      <xs:attribute name="rauatüüp" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="kuulipildujad">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="kuulipilduja" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="kuulipilduja">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="mudel" />
        <xs:element minOccurs="0" maxOccurs="1" ref="päritolu-maad" />
        <xs:element minOccurs="0" maxOccurs="1" ref="tootjad" />
        <xs:element minOccurs="0" maxOccurs="1" ref="kaliibrid" />
        <xs:element minOccurs="0" maxOccurs="1" ref="pikkused" />
        <xs:element minOccurs="0" maxOccurs="1" ref="kaalud" />
        <xs:element minOccurs="0" maxOccurs="1" ref="salved" />
        <xs:element minOccurs="0" maxOccurs="1" ref="lasketihedused" />
        <xs:element minOccurs="0" maxOccurs="1" ref="laskekaugused" />
      </xs:sequence>
      <xs:attribute name="Id" type="xs:string" use="required" />
      <xs:attribute name="laskmisrežiimid" type="xs:string" />
      <xs:attribute name="päästikutüüp" type="xs:string" />
      <xs:attribute name="rauatüüp" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="täpsuspüssid">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="täpsuspüss" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="täpsuspüss">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="mudel" />
        <xs:element minOccurs="0" maxOccurs="1" ref="päritolu-maad" />
        <xs:element minOccurs="0" maxOccurs="1" ref="tootjad" />
        <xs:element minOccurs="0" maxOccurs="1" ref="kaliibrid" />
        <xs:element minOccurs="0" maxOccurs="1" ref="pikkused" />
        <xs:element minOccurs="0" maxOccurs="1" ref="kaalud" />
        <xs:element minOccurs="0" maxOccurs="1" ref="salved" />
      </xs:sequence>
      <xs:attribute name="Id" type="xs:string" use="required" />
      <xs:attribute name="laskmisrežiimid" type="xs:string" />
      <xs:attribute name="päästikutüüp" type="xs:string" />
      <xs:attribute name="rauatüüp" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="külmrelvad">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="löögirelvad" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="torkerelvad" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="torke-lõikerelvad" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="torke-raierelvad" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="löögirelvad">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="löögirelv" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="löögirelv">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="nimetus" />
        <xs:element minOccurs="0" maxOccurs="1" ref="tootja" />
      </xs:sequence>
      <xs:attribute name="Id" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
  <xs:element name="nimetus" type="xs:string" />
  <xs:element name="tootja" type="xs:string" />
  <xs:element name="torkerelvad">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="torkerelv" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="torkerelv">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="nimetus" />
      </xs:sequence>
      <xs:attribute name="Id" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
  <xs:element name="torke-lõikerelvad">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="torke-lõikerelv" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="torke-lõikerelv">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="nimetus" />
      </xs:sequence>
      <xs:attribute name="Id" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
  <xs:element name="torke-raierelvad">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="torke-raierelv" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="torke-raierelv">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="nimetus" />
      </xs:sequence>
      <xs:attribute name="Id" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
  <xs:element name="väärtus" type="xs:string" />
  <xs:element name="ühik" type="xs:string" />
  <xs:element name="tüüp" type="xs:string" />
</xs:schema>
</pre>


===XML automaatgenereeritud skeemifail===
=== 07.05.2013 ===
<pre>
* Andmebaasimudelite muutmine
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="relvad">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="käsitulirelvad">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="püstolid">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="püstol">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="mudel" type="xs:string" />
                          <xs:element name="päritolu-maad">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="päritolu-maa" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="tootjad">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="tootja" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="kaliibrid">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="kaliiber">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:string" />
                                      <xs:element name="tüüp" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="pikkused">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="täispikkus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:unsignedByte" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element maxOccurs="unbounded" name="rauapikkus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element minOccurs="0" name="tüüp" type="xs:string" />
                                      <xs:element name="väärtus" type="xs:unsignedByte" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="kaalud">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="tühikaal">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element minOccurs="0" name="tüüp" type="xs:string" />
                                      <xs:element minOccurs="0" maxOccurs="unbounded" name="kaliibritüüp">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="väärtus" type="xs:decimal" />
                                            <xs:element minOccurs="0" name="ühik" type="xs:string" />
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="väärtus" type="xs:unsignedShort" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element minOccurs="0" name="täiskaal">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:unsignedShort" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="salved">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="salv">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element minOccurs="0" name="kaliibritüüp">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="väärtus" type="xs:decimal" />
                                            <xs:element name="ühik" type="xs:string" />
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="mahutavus">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="väärtus" type="xs:unsignedByte" />
                                            <xs:element name="ühik" type="xs:string" />
                                            <xs:element minOccurs="0" name="tüüp" type="xs:string" />
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="Id" type="xs:unsignedByte" use="required" />
                        <xs:attribute name="laskmisrežiimid" type="xs:string" use="required" />
                        <xs:attribute name="päästikutüüp" type="xs:string" use="required" />
                        <xs:attribute name="rauatüüp" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="revolvrid">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="revolver">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="mudel" type="xs:string" />
                          <xs:element name="päritolu-maad">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="päritolu-maa" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="tootjad">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="tootja" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="kaliibrid">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="kaliiber">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:decimal" />
                                      <xs:element name="tüüp" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="pikkused">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="täispikkus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element minOccurs="0" name="vintrauatüüp">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="väärtus" type="xs:unsignedByte" />
                                            <xs:element name="ühik" type="xs:string" />
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="väärtus" type="xs:unsignedByte" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element maxOccurs="unbounded" name="rauapikkus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:unsignedByte" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="kaalud">
                            <xs:complexType mixed="true">
                              <xs:sequence minOccurs="0">
                                <xs:element name="tühikaal">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element minOccurs="0" name="vintrauatüüp">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="väärtus" type="xs:unsignedByte" />
                                            <xs:element name="ühik" type="xs:string" />
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="väärtus" type="xs:unsignedShort" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="salved">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="salv">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="mahutavus">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="väärtus" type="xs:unsignedByte" />
                                            <xs:element name="ühik" type="xs:string" />
                                            <xs:element minOccurs="0" name="tüüp" type="xs:string" />
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="Id" type="xs:unsignedByte" use="required" />
                        <xs:attribute name="laskmisrežiimid" type="xs:string" use="required" />
                        <xs:attribute name="päästikutüüp" type="xs:string" use="required" />
                        <xs:attribute name="rauatüüp" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="automaadid">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="automaat">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="mudel" type="xs:string" />
                          <xs:element name="päritolu-maad">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="päritolu-maa" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="tootjad">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="tootja" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="kaliibrid">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="kaliiber">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:string" />
                                      <xs:element name="tüüp" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="pikkused">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="täispikkus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element minOccurs="0" name="tüüp" type="xs:string" />
                                      <xs:element name="väärtus" type="xs:unsignedShort" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element name="rauapikkus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:unsignedShort" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="kaalud">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="tühikaal">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:decimal" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element minOccurs="0" name="täiskaal">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:decimal" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="salved">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="salv">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="mahutavus">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="väärtus" type="xs:unsignedByte" />
                                            <xs:element name="ühik" type="xs:string" />
                                            <xs:element minOccurs="0" name="tühikaal">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element name="väärtus" type="xs:unsignedShort" />
                                                  <xs:element name="ühik" type="xs:string" />
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                            <xs:element minOccurs="0" name="täiskaal">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element name="väärtus" type="xs:unsignedShort" />
                                                  <xs:element name="ühik" type="xs:string" />
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                            <xs:element minOccurs="0" name="tüüp" type="xs:string" />
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="lasketihedused">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="lasketihedus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:string" />
                                      <xs:element name="ühik" type="xs:string" />
                                      <xs:element name="tüüp" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="laskekaugused">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="laskekaugus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:string" />
                                      <xs:element name="ühik" type="xs:string" />
                                      <xs:element minOccurs="0" name="tüüp" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="Id" type="xs:unsignedByte" use="required" />
                        <xs:attribute name="laskmisrežiimid" type="xs:string" use="required" />
                        <xs:attribute name="päästikutüüp" type="xs:string" use="required" />
                        <xs:attribute name="rauatüüp" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="püstolkuulipildujad">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="püstolkuulipilduja">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="mudel" type="xs:string" />
                          <xs:element name="päritolu-maad">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="päritolu-maa" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="tootjad">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="tootja" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="kaliibrid">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="kaliiber">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:string" />
                                      <xs:element name="tüüp" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="pikkused">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="täispikkus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element minOccurs="0" name="tüüp" type="xs:string" />
                                      <xs:element name="väärtus" type="xs:unsignedShort" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element name="rauapikkus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:unsignedShort" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="kaalud">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="tühikaal">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element minOccurs="0" name="tüüp" type="xs:string" />
                                      <xs:element name="väärtus" type="xs:decimal" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element minOccurs="0" name="salved">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="salv">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="mahutavus">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element minOccurs="0" name="kaliiber">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element name="väärtus" type="xs:decimal" />
                                                  <xs:element minOccurs="0" name="ühik" type="xs:string" />
                                                  <xs:element minOccurs="0" name="tüüp" type="xs:string" />
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                            <xs:element name="väärtus" type="xs:unsignedByte" />
                                            <xs:element name="ühik" type="xs:string" />
                                            <xs:element minOccurs="0" name="tühikaal">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element name="väärtus" type="xs:decimal" />
                                                  <xs:element name="ühik" type="xs:string" />
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                            <xs:element name="tüüp" type="xs:string" />
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="Id" type="xs:unsignedByte" use="required" />
                        <xs:attribute name="laskmisrežiimid" type="xs:string" use="required" />
                        <xs:attribute name="päästikutüüp" type="xs:string" use="required" />
                        <xs:attribute name="rauatüüp" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="pumppüssid">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="pumppüss">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="mudel" type="xs:string" />
                          <xs:element name="päritolu-maad">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="päritolu-maa" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="tootjad">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="tootja" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="kaliibrid">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="kaliiber">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:unsignedByte" />
                                      <xs:element name="tüüp" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="pikkused">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="täispikkus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element minOccurs="0" name="tüüp" type="xs:string" />
                                      <xs:element name="väärtus" type="xs:string" />
                                      <xs:element minOccurs="0" name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element maxOccurs="unbounded" name="rauapikkus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:unsignedShort" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="kaalud">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="tühikaal">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:string" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="salved">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="salv">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="mahutavus">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="väärtus" type="xs:string" />
                                            <xs:element name="ühik" type="xs:string" />
                                            <xs:element name="tüüp" type="xs:string" />
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="Id" type="xs:unsignedByte" use="required" />
                        <xs:attribute name="laskmisrežiimid" type="xs:string" use="required" />
                        <xs:attribute name="päästikutüüp" type="xs:string" use="required" />
                        <xs:attribute name="rauatüüp" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="kuulipildujad">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="kuulipilduja">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="mudel" type="xs:string" />
                          <xs:element name="päritolu-maad">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="päritolu-maa" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="tootjad">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="tootja" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="kaliibrid">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="kaliiber">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:string" />
                                      <xs:element name="tüüp" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="pikkused">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="täispikkus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:unsignedShort" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element name="rauapikkus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:unsignedShort" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="kaalud">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="tühikaal">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:decimal" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element minOccurs="0" name="täiskaal">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:unsignedByte" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="salved">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="salv">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="mahutavus">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="väärtus" type="xs:string" />
                                            <xs:element minOccurs="0" name="ühik" type="xs:string" />
                                            <xs:element minOccurs="0" name="tühikaal">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element name="väärtus" type="xs:unsignedShort" />
                                                  <xs:element name="ühik" type="xs:string" />
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                            <xs:element minOccurs="0" name="täiskaal">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element name="väärtus" type="xs:unsignedShort" />
                                                  <xs:element name="ühik" type="xs:string" />
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                            <xs:element name="tüüp" type="xs:string" />
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="lasketihedused">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="lasketihedus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:unsignedShort" />
                                      <xs:element name="ühik" type="xs:string" />
                                      <xs:element name="tüüp" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="laskekaugused">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="laskekaugus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:string" />
                                      <xs:element name="ühik" type="xs:string" />
                                      <xs:element name="tüüp" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="Id" type="xs:unsignedByte" use="required" />
                        <xs:attribute name="laskmisrežiimid" type="xs:string" use="required" />
                        <xs:attribute name="päästikutüüp" type="xs:string" use="required" />
                        <xs:attribute name="rauatüüp" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="täpsuspüssid">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="täpsuspüss">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="mudel" type="xs:string" />
                          <xs:element name="päritolu-maad">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="päritolu-maa" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="tootjad">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="tootja" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="kaliibrid">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="kaliiber">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:string" />
                                      <xs:element name="tüüp" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="pikkused">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="täispikkus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element minOccurs="0" name="tüüp" type="xs:string" />
                                      <xs:element name="väärtus" type="xs:unsignedShort" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element name="rauapikkus">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:unsignedShort" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="kaalud">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element minOccurs="0" name="täiskaal">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="tüüp" type="xs:string" />
                                      <xs:element name="väärtus" type="xs:decimal" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element minOccurs="0" name="tühikaal">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="väärtus" type="xs:decimal" />
                                      <xs:element name="ühik" type="xs:string" />
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="salved">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="salv">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element name="mahutavus">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="väärtus" type="xs:unsignedByte" />
                                            <xs:element name="ühik" type="xs:string" />
                                            <xs:element name="tüüp" type="xs:string" />
                                          </xs:sequence>
                                        </xs:complexType>
                                      </xs:element>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="Id" type="xs:unsignedByte" use="required" />
                        <xs:attribute name="laskmisrežiimid" type="xs:string" use="required" />
                        <xs:attribute name="päästikutüüp" type="xs:string" use="required" />
                        <xs:attribute name="rauatüüp" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="külmrelvad">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="löögirelvad">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="löögirelv">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="nimetus" type="xs:string" />
                          <xs:element minOccurs="0" name="tootja" type="xs:string" />
                        </xs:sequence>
                        <xs:attribute name="Id" type="xs:unsignedByte" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="torkerelvad">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="torkerelv">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="nimetus" type="xs:string" />
                        </xs:sequence>
                        <xs:attribute name="Id" type="xs:unsignedByte" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="torke-lõikerelvad">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="torke-lõikerelv">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="nimetus" type="xs:string" />
                        </xs:sequence>
                        <xs:attribute name="Id" type="xs:unsignedByte" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="torke-raierelvad">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="torke-raierelv">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="nimetus" type="xs:string" />
                        </xs:sequence>
                        <xs:attribute name="Id" type="xs:unsignedByte" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
</pre>


===XML Transformatsiooni failid:===
=== 08.05.2013 ===
* Andmebaasimudelite parandus


====Esimene====
=== 11.05.2013 ===
<pre>
* MVC ja Ninject-iga tegelemine
<?xml version="1.0" encoding="utf-8"?>
* Registreerimise akna loomine
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
* Registreerimise funktsiooni arendamine
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
* Login akna ja funktsionaalsuse loomine
>
  <xsl:output method="html" indent="yes"/>
  <xsl:template match="/">
    <!--http://stackoverflow.com/questions/825831/check-if-a-string-is-null-or-empty-in-xslt-->
    <html>
      <head>
        <title>
          RELVAKATALOOG 2013 VR2
        </title>
      </head>
      <body>
        <h1>Relvakataloog 2013</h1>
        <ol>
          <xsl:for-each select="relvad/käsitulirelvad">
            <h2>
              Selles nimekirjas on <xsl:value-of select="name()"/><xsl:text>:</xsl:text>
            </h2>
            <xsl:for-each select="*">
              <xsl:sort select="name()" order="ascending"/> <!--see siin sorteerib relvagrupid tähestikulisse järjekorda-->
              <h3>
                Järgnevad relvad on <xsl:value-of select="name()"/><xsl:text>:</xsl:text>
              </h3>
              <xsl:for-each select="*">
                <li>
                  <h3>
                    <xsl:value-of select="name()"/>
                    <xsl:text> </xsl:text>
                    <xsl:value-of select="mudel"/>
                  </h3>
                </li>
                <xsl:if test="@laskmisrežiimid">
                  <b>Laskmisrežiimid: </b>
                  <xsl:value-of select="@laskmisrežiimid"/>
                  <br></br>
                </xsl:if>
                <xsl:if test="@päästikutüüp">
                  <b>Päästikutüüp: </b>
                  <xsl:value-of select="@päästikutüüp"/>
                  <br></br>
                </xsl:if>
                <xsl:if test="@rauatüüp">
                  <b>Rauatüüp: </b>
                  <xsl:value-of select="@rauatüüp"/>
                  <br></br>
                </xsl:if>
                <xsl:if test="tootjad/*">
                  <b>Tootjad: </b>
                  <br></br>
                  <ul>
                    <xsl:for-each select="tootjad/*">
                      <li>
                        <xsl:value-of select="."/>
                      </li>
                    </xsl:for-each>
                    <br></br>
                  </ul>
                </xsl:if>
                <xsl:if test="päritolu-maad/*">
                  <b>Päritolu-maad: </b>
                  <br></br>
                  <ul>
                    <xsl:for-each select="päritolu-maad/*">
                      <li>
                        <xsl:value-of select="."/>
                      </li>
                    </xsl:for-each>
                    <br></br>
                  </ul>
                </xsl:if>
                <xsl:if test="kaliibrid/*">
                  <b>Kaliibrid: </b>
                  <br></br>
                  <ul>
                    <xsl:for-each select="kaliibrid/*">
                      <li>
                        <xsl:value-of select="."/>
                      </li>
                    </xsl:for-each>
                    <br></br>
                  </ul>
                </xsl:if>
                <xsl:if test="pikkused/*">
                  <b>Pikkused: </b>
                  <br></br>
                  <ul>
                    <xsl:for-each select="pikkused">
                      <xsl:if test="täispikkus or rauapikkus">
                        <xsl:for-each select="*">
                          <li>
                            <b>
                              <xsl:value-of select="name()"/>
                              <xsl:text> (</xsl:text>
                              <xsl:if test="tüüp">
                                <xsl:for-each select="tüüp">
                                  <xsl:if test=".">
                                    <xsl:value-of select="."/>
                                  </xsl:if>
                                </xsl:for-each>
                              </xsl:if>
                              <xsl:if test="not(tüüp)">
                                <xsl:text>standardkonfiguratsioonis</xsl:text>
                              </xsl:if>
                              <xsl:text>):</xsl:text>
                            </b>
                          </li>
                          <xsl:for-each select="*">
                            <!--(tüüp?, kaliibritüüp*, vintrauatüüp?, väärtus?, ühik?)-->
                            <ul>
                              <xsl:if test="name() != 'tüüp'">
                                <li>
                                  <b>
                                    <xsl:value-of select="name()"/>
                                    <xsl:text>: </xsl:text>
                                  </b>
                                  <xsl:value-of select="."/>
                                </li>
                              </xsl:if>
                            </ul>
                          </xsl:for-each>
                        </xsl:for-each>
                      </xsl:if>
                    </xsl:for-each>
                  </ul>
                </xsl:if>
                <xsl:if test="kaalud/*">
                  <b>Kaalud: </b>
                  <br></br>
                  <ul>
                    <xsl:for-each select="kaalud">
                      <xsl:if test="tühikaal or täiskaal">
                        <xsl:for-each select="*">
                          <li>
                            <xsl:text>Kaalutüüp - </xsl:text>
                            <b>
                              <xsl:value-of select="name()"/>
                            </b>
                          </li>
                          <xsl:for-each select="*">
                            <!--(tüüp?, kaliibritüüp*, vintrauatüüp?, väärtus?, ühik?)-->
                            <ul>
                              <xsl:if test=".">
                                <li>
                                  <b>
                                    <xsl:value-of select="name()"/>
                                    <xsl:text>: </xsl:text>
                                  </b>
                                  <xsl:value-of select="."/>
                                </li>
                              </xsl:if>
                            </ul>
                          </xsl:for-each>
                        </xsl:for-each>
                      </xsl:if>
                    </xsl:for-each>
                  </ul>
                </xsl:if>
                <xsl:if test="salved/*">
                  <b>Salved: </b>
                  <br></br>
                  <ul>
                    <xsl:for-each select="salved/*">
                      <li>
                        <xsl:text>Salv, kuhu mahub </xsl:text>
                        <xsl:if test="mahutavus">
                          <xsl:value-of select="mahutavus/väärtus"/>
                          <xsl:text> </xsl:text>
                          <xsl:value-of select="mahutavus/ühik"/>
                          <xsl:if test="mahutavus/tüüp">
                            <xsl:text> (</xsl:text>
                            <xsl:value-of select="mahutavus/tüüp"/>
                            <xsl:text>) </xsl:text>
                          </xsl:if>
                        </xsl:if>
                        <xsl:if test="not(mahutavus)">
                          <xsl:text>teadmata arv</xsl:text>
                        </xsl:if>
                        <xsl:if test="kaliibritüüp">
                          <xsl:text> kaliibriga </xsl:text>
                          <xsl:value-of select="kaliibritüüp"/>
                          <xsl:text>.</xsl:text>
                        </xsl:if>
                        <xsl:if test="not(kaliibritüüp)">
                          <xsl:text> relva standardkaliibriga.</xsl:text>
                        </xsl:if>
                      </li>
                    </xsl:for-each>
                    <br></br>
                  </ul>
                </xsl:if>
                <br></br>
              </xsl:for-each>
            </xsl:for-each>
          </xsl:for-each>
        </ol>
        <br></br>
        <br></br>
        <ol>
          <xsl:for-each select="relvad/külmrelvad">
            <h2>
              Selles nimekirjas on <xsl:value-of select="name()"/><xsl:text>:</xsl:text>
            </h2>
            <xsl:for-each select="*">
              <h3>
                <u>
                  Järgnevad relvad on <xsl:value-of select="name()"/>
                  <xsl:text>: </xsl:text>
                </u>
              </h3>
              <xsl:for-each select="*">
                <li>
                  <xsl:if test="nimetus">
                    <font size="4.5">
                      <b>
                        <xsl:value-of select="nimetus"/>
                      </b>
                    </font>
                    <br></br>
                  </xsl:if>
                  <xsl:if test="tootja">
                    <b>Tootja: </b>
                    <xsl:value-of select="tootja"/>
                    <br></br>
                  </xsl:if>
                </li>
                <br></br>
              </xsl:for-each>
            </xsl:for-each>
          </xsl:for-each>
        </ol>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>
</pre>


====Teine====
=== 13.05.2013 ===
* Relva kategooriate järgi navigeerimine kasutaja põhivaates
* WPF poolne turvalisus


====Kolmas====
=== 17.05.2013 ===
* ''Unit of Work'' klass


==Teenus==
=== 18.05.2013 ===
...
* Uus kujundus
* Relva lisamise akna loomine
* Parandatud AddUser ja AddGun toimimist, ''unit of work'' kasutusele võetud
* Asünkroonne logimine ja registreerimine


Valminud teenuse meetodid:
=== 20.05.2013 ===
* '''...''' - ...
* Relva lisamise funktsiooni parandamine, peaaegu töötab
* Spagettkoodi eemaldamine


Valminud töö saab kätte lingilt: ...
=== 22.05.2013 ===
* Lisasime Admin paneeli nupud
* Parandasime disaini
* UserList akna lisamine


==Klientrakendus==
=== 23.05.2013 ===
Valminud klientrakenduse saab allalaadida lingilt: ...
* XAMLiga tegelemine - parandasime klientrakenduse välimust


Klientrakendus on ...
=== 25.05.2013===
* Lisasime statistika kuvamise
* Parandasime koodi välimust
* Suurendasime koodi efektiivsust, spagettkoodi vähendamine


==Logi==
=== 26.05.2013===
===22.03.2013===
* Andsime enda klientrakendusele viimast lihvi
* ...
* Parandasime toimivaks relvade lisamise loogika
=== 23.03.2013===
* Parandasime statistika kuvamist
* ...
=== 24.03.2013===
* ...
=== 25.03.2013===
* ...
=== 26.03.2013===
* ...
=== 27.03.2013===
* ...
=== 28.03.2013===
* ...

Latest revision as of 21:17, 8 June 2013

LIIKMED

  • Karl Kadalipp
  • Robert Pärn

Kodutöö XML osa

Teemaks valisime relvakataloogi/e-poe, kus hoitakse informatsiooni erinevate käsituli- ja külmrelvade kohta.

XML

Kirjeldus:

Meie .xml faili juurelemendiks on <relvad>, mis jagunevad omakorda kaheks: <käsitulirelvad> ja <külmrelvad>. Seda selleks, et oleks selgem eristada. <käsitulirelvad> jagunevad: element püstolid, automaadid, pumppüssid jne. Vastavalt on nende sees juba individuaalsed relvamudelid, näiteks element püstol, mille sees on antud relva tehnilised spetsifikatsioonid ning eripärad. Ka külmrelvad jagunevad alamliikidesse nagu <löögirelvad>, <torkerelvad> jne ning sisaldavad mõningaid andmeid. Atribuudid on tulirelvade alamliikide elementidel mõningad andmed, mis on ühised kõikidel tulirelvadel.

Link:

XML DTD

Kirjeldus:

DTD eesmärk on aidata .xml failis leida üles vigu ning üldstruktuuri parandada/defineerida.

Link:

XML Skeemifail (DTD põhjal)

XML Automaatgenereeritud skeemifail

XML Transformatsiooni failid:

Esimene

See transformatsioonifail väljastab tulemuse html kujul .htm faililaiendiga failina ja on mõeldud selleks, et XML failist välja sorteerida ja kuvada kõik XML-i kirjutatud andmed võimalikult loetaval ja viisakal kujul.

Teine

See transformatsioonifail väljastab tulemuse html kujul .htm faililaiendiga failina ja on mõeldud selleks, et XML failist välja sorteerida ja kuvada esimeses nimekirjas kõik käsitulirelvad (tulirelva tüübi tekst on värvitud punaseks) ning teises nimekirjas külmrelvad (külmrelva tüübi tekst on värvitud siniseks).

Kolmas

See transformatsioonifail väljastab tulemuse html kujul .htm faililaiendiga failina ja on mõeldud selleks, et XML failist välja sorteerida ja kuvada esimeses alamsektsioonis USA-s toodetavad käsitulirelvad ning teises alamsektsioonis 9mm kaliibriga käsitulirelvad.

Teenus

Valminud teenuse meetodid:

  • User GetCurrentUser() - tagastab teenuse välja kutsunud kasutaja User objektina
  • bool RegisterUser(User user) - registreerib etteantud kasutaja, tagastab registreerimise õnnestumise true/false
  • bool LoginUser(string username, string password) - logib kasutaja sisse. Kontrollib, kas antud kasutajanimi ja parool ühtivad andmebaasi andmetega, tagastab tõeväärtuse
  • string GetUserRole(string username) - tagastab kasutaja rolli string-ina. Kasutaja võib olla kas admin või user tüüpi
  • bool AddGun(Gun gun) - lisab Gun andmetüübi andmebaasiolemisse Gun. Tagastab lisamise õnnestumise
  • string GetMd5Hash(string password) - muudab etteantud parooli räsiks, tagastab string-i
  • bool VerifyMd5Hash(string input, string hash) - kontrollib räsi
  • ObservableCollection<string> GetAllCategories() - tagastab kõik kategooriad tabelist Gun ObservableCollection-ina.
  • ObservableCollection<string> GetAllGategoryWeapons(string category) - tagastab ObservableCollection-ina kõik relvad, mis kuuluvad etteantud kategooriasse
  • ObservableCollection<string> PopulateSpecs(string selectedGun) - tagastab kõik etteantud relva spetsifikatsioonid ObservableCollection-ina
  • ObservableCollection<AddOn> GetAllAddOns() - tagastab kõik relvalisad ObservableCollection-ina
  • ObservableCollection<Caliber> GetAllCalibers() - tagastab kõik kaliibrid ObservableCollection-ina
  • ObservableCollection<Cartridge> GetAllCartridges() - tagastab kõik padrunid ObservableCollection-ina
  • ObservableCollection<Gun> GetAllGuns() - tagastab kõik relvad ObservableCollection-ina
  • ObservableCollection<GunBarrel> GetAllGunBarrels() - tagastab kõik relvatorud ObservableCollection-ina
  • ObservableCollection<GunSize> GetAllGunSizes() - tagastab kõik relvasuurused ObservableCollection-ina
  • ObservableCollection<GunWeight> GetAllGunWeights() - tagastab kõik relvakaalud ObservableCollection-ina
  • ObservableCollection<ItemSize> GetAllItemSizes() - tagastab kõik ühikusuurused ObservableCollection-ina
  • ObservableCollection<Magazine> GetAllMagazines() - tagastab kõik salved ObservableCollection-ina
  • ObservableCollection<Manufacturer> GetAllManufacturers() - tagastab kõik relvatootjad ObservableCollection-ina
  • ObservableCollection<MeasurementUnit> GetAllMeasurementUnits() - tagastab kõik mõõteühikud ObservableCollection-ina
  • ObservableCollection<OtherWeapon> GetAllOtherWeapons() - tagastab kõik muud tüüpi relvad (mitte Gun) ObservableCollection-ina
  • ObservableCollection<Rof> GetAllRofs() - tagastab kõik lasketihedused ObservableCollection-ina
  • ObservableCollection<User> GetAllUsers() - tagastab kõik kasutajad ObservableCollection-ina
  • ObservableCollection<ViewStatistic> GetAllViewStatistics() - tagastab kogu statistika ObservableCollection-ina
  • bool AddStat(Gun gun, User user) - lisab ViewStatistic tabelisse kasutaja ja user objekti, tagastab true/false vastavalt õnnestumisele

Klientrakendus

Klientrakendus on nii tavakasutajale kui ka administraatorile mõeldud rakendus, millega on võimalik andmebaasist lugeda andmeid erinevate relvade kohta. Tavakasutajal on võimalik end registreerida kasutajaks ja vaadata andmeid. Kasutajamugavuse mõttes on relvad jaotatud kategooriatesse.

Administraatoril on võimalik andmeid vaadata ning neid ka muuta ja lisada. Administraatoril on mugavaks halduseks oma liides, mis erineb tavakasutaja omast märkimisväärselt. Kasutaja vaatamised salvestatakse ning administraatoril on võimalik vaadata ka statistikat selle kohta, mida mingi kasutaja on vaadanud ning kui mitu korda.

Allalaadimine

Valminud töö algkoodi/solutioni saab allalaadida lingilt: http://www.upload.ee/download/3368769/2d310056c999a3a1c47/XMLprojekt.zip

Logi

21.03.2013

  • Lõime WIKI lehe
  • Esitasime ära XML, DTD, Schemad, XSL-id (3 erinevat)
  • Lisasime kommentaarid
  • Kirjutasime worktaske

22.03.2013

  • XML parsemisega tegelemine klientrakenduse poolel
  • kolmas XSL
  • XSL-ide parandamine

30.03.2013

  • Kirutasime retsensiooni meeskonna Talk:CSharpArt XML, XSLT ja XSD kohta.

12.04.2013

  • Esialgse WCF teenuse lisamine ning testimine

26.04.2103

  • Andmebaasimudelite lisamine
  • Teenuse testimine
  • Kõikide repository-de ja nende interface-de lisamine

29.04.2013

  • Andmebaasimudelite parandamine

30.04.2013

  • Andmebaasimudelite annotatsioonide lisamine

02.05.2013

  • Data access Layer-i lisamine ja muutmine

07.05.2013

  • Andmebaasimudelite muutmine

08.05.2013

  • Andmebaasimudelite parandus

11.05.2013

  • MVC ja Ninject-iga tegelemine
  • Registreerimise akna loomine
  • Registreerimise funktsiooni arendamine
  • Login akna ja funktsionaalsuse loomine

13.05.2013

  • Relva kategooriate järgi navigeerimine kasutaja põhivaates
  • WPF poolne turvalisus

17.05.2013

  • Unit of Work klass

18.05.2013

  • Uus kujundus
  • Relva lisamise akna loomine
  • Parandatud AddUser ja AddGun toimimist, unit of work kasutusele võetud
  • Asünkroonne logimine ja registreerimine

20.05.2013

  • Relva lisamise funktsiooni parandamine, peaaegu töötab
  • Spagettkoodi eemaldamine

22.05.2013

  • Lisasime Admin paneeli nupud
  • Parandasime disaini
  • UserList akna lisamine

23.05.2013

  • XAMLiga tegelemine - parandasime klientrakenduse välimust

25.05.2013

  • Lisasime statistika kuvamise
  • Parandasime koodi välimust
  • Suurendasime koodi efektiivsust, spagettkoodi vähendamine

26.05.2013

  • Andsime enda klientrakendusele viimast lihvi
  • Parandasime toimivaks relvade lisamise loogika
  • Parandasime statistika kuvamist