Undress Gaver: Difference between revisions
From ICO wiki
Jump to navigationJump to search
| Line 37: | Line 37: | ||
=== XML Fail === | === XML Fail === | ||
<pre> | |||
<?xml version="1.0" encoding="utf-8" ?> | |||
<?xml-stylesheet type="text/xsl" href="Arved.xslt" ?> | |||
<arved> | |||
<arve number="1337420" kuupäev="20.03.2016"> | |||
<koostaja eesnimi="Kaspar" perenimi="Tilk"> | |||
<kontaktandmed> | |||
<kontakt väärtus="kaspar.tilk" tüüp="Skype"/> | |||
<kontakt väärtus="53542343" tüüp="telefon"/> | |||
</kontaktandmed> | |||
</koostaja> | |||
<tellija eesnimi="Mait" perenimi="Poska"/> | |||
<tarneviis nimetus="kuller"> | |||
<tarnija nimi="DPD"/> | |||
</tarneviis> | |||
<tellitudTooted> | |||
<toode nimi="banaan" kogus="2" ühik="kg" kategooria="puuvili" aktiivne="true"> | |||
<tavahind väärtus="2" valuuta="€"/> | |||
<soodushind väärtus="1.50" valuuta="€"/> | |||
<kirjeldus><![CDATA[toores banaan]]></kirjeldus> | |||
</toode> | |||
<toode nimi="õun" kogus="3" ühik="kg" kategooria="puuvili" aktiivne="true"> | |||
<tavahind väärtus="1" valuuta="€"/> | |||
<soodushind väärtus="0.50" valuuta="€"/> | |||
<kirjeldus><![CDATA[hapu õun]]></kirjeldus> | |||
</toode> | |||
</tellitudTooted> | |||
<käibemaksumäär väärtus="0%"/> | |||
<summad> | |||
<käibemaksuta väärtus="3" valuuta="€"/> | |||
<käibemaksuga väärtus="3" valuuta="€"/> | |||
</summad> | |||
<juriidilineInfo ettevõtteNimi="OÜ Puuvili" registrikood="420666" aadress="Keki tn, Keila"> | |||
<pangakontod> | |||
<pangakonto pangaNimi="Swedbank" kontonr="EE12345678"/> | |||
<pangakonto pangaNimi="SEB" kontonr="EE87654321"/> | |||
</pangakontod> | |||
<kontaktandmed> | |||
<kontakt väärtus="puu@vili.ee" tüüp="E-mail"/> | |||
<kontakt väärtus="531337" tüüp="Telefon"/> | |||
</kontaktandmed> | |||
</juriidilineInfo> | |||
<lisainfo><![CDATA[Täname tellimuse eest!]]></lisainfo> | |||
<tähtaeg kuupäev="21.03.2016"/> | |||
</arve> | |||
<arve number="1337420" kuupäev="20.03.2016"> | |||
<koostaja eesnimi="Kaspar" perenimi="Tilk"> | |||
<kontaktandmed> | |||
<kontakt väärtus="kaspar.tilk" tüüp="Skype"/> | |||
<kontakt väärtus="53542343" tüüp="Telefon"/> | |||
</kontaktandmed> | |||
</koostaja> | |||
<tellija eesnimi="Andres" perenimi="Käver"/> | |||
<tarneviis nimetus="kuller"> | |||
<tarnija nimi="DPD"/> | |||
</tarneviis> | |||
<tellitudTooted> | |||
<toode nimi="banaan" kogus="2" ühik="kg" kategooria="puuvili" aktiivne="true"> | |||
<tavahind väärtus="2" valuuta="€"/> | |||
<soodushind väärtus="1.50" valuuta="€"/> | |||
<kirjeldus><![CDATA[toores banaan]]></kirjeldus> | |||
</toode> | |||
<toode nimi="õun" kogus="3" ühik="kg" kategooria="puuvili" aktiivne="true"> | |||
<tavahind väärtus="1" valuuta="€"/> | |||
<soodushind väärtus="0.50" valuuta="€"/> | |||
<kirjeldus><![CDATA[hapu õun]]></kirjeldus> | |||
</toode> | |||
</tellitudTooted> | |||
<käibemaksumäär väärtus="0%"/> | |||
<summad> | |||
<käibemaksuta väärtus="3" valuuta="€"/> | |||
<käibemaksuga väärtus="3" valuuta="€"/> | |||
</summad> | |||
<juriidilineInfo ettevõtteNimi="OÜ Puuvili" registrikood="420666" aadress="Keki tn, Keila"> | |||
<pangakontod> | |||
<pangakonto pangaNimi="Swedbank" kontonr="EE12345678"/> | |||
<pangakonto pangaNimi="SEB" kontonr="EE87654321"/> | |||
</pangakontod> | |||
<kontaktandmed> | |||
<kontakt väärtus="puu@vili.ee" tüüp="E-mail"/> | |||
<kontakt väärtus="531337" tüüp="telefon"/> | |||
</kontaktandmed> | |||
</juriidilineInfo> | |||
<lisainfo><![CDATA[Täname tellimuse eest!]]></lisainfo> | |||
<tähtaeg kuupäev="21.03.2016"/> | |||
</arve> | |||
</arved> | |||
</pre> | |||
=== XML Skeemifail === | === XML Skeemifail === | ||
<pre> | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> | |||
<xs:element name="arved"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element maxOccurs="128" name="arve"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element name="koostaja"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element name="kontaktandmed"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element maxOccurs="16" name="kontakt"> | |||
<xs:complexType> | |||
<xs:attribute name="väärtus" type="xs:string" use="required" /> | |||
<xs:attribute name="tüüp" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
<xs:attribute name="eesnimi" type="xs:string" use="required" /> | |||
<xs:attribute name="perenimi" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="tellija"> | |||
<xs:complexType> | |||
<xs:attribute name="eesnimi" type="xs:string" use="required" /> | |||
<xs:attribute name="perenimi" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="tarneviis"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element name="tarnija"> | |||
<xs:complexType> | |||
<xs:attribute name="nimi" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
<xs:attribute name="nimetus" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="tellitudTooted"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element maxOccurs="128" name="toode"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element name="tavahind"> | |||
<xs:complexType> | |||
<xs:attribute name="väärtus" type="xs:decimal" use="required" /> | |||
<xs:attribute name="valuuta" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="soodushind"> | |||
<xs:complexType> | |||
<xs:attribute name="väärtus" type="xs:decimal" /> | |||
<xs:attribute name="valuuta" type="xs:string" /> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="kirjeldus" type="xs:string" /> | |||
</xs:sequence> | |||
<xs:attribute name="nimi" type="xs:string" use="required" /> | |||
<xs:attribute name="kogus" type="xs:unsignedByte" use="required" /> | |||
<xs:attribute name="ühik" type="xs:string" use="required" /> | |||
<xs:attribute name="kategooria" type="xs:string" /> | |||
<xs:attribute name="aktiivne" type="xs:boolean" /> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="käibemaksumäär"> | |||
<xs:complexType> | |||
<xs:attribute name="väärtus" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="summad"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element name="käibemaksuta"> | |||
<xs:complexType> | |||
<xs:attribute name="väärtus" type="xs:decimal" use="required" /> | |||
<xs:attribute name="valuuta" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="käibemaksuga"> | |||
<xs:complexType> | |||
<xs:attribute name="väärtus" type="xs:decimal" use="required" /> | |||
<xs:attribute name="valuuta" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="juriidilineInfo"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element name="pangakontod"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element maxOccurs="32" name="pangakonto"> | |||
<xs:complexType> | |||
<xs:attribute name="pangaNimi" type="xs:string" use="required" /> | |||
<xs:attribute name="kontonr" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="kontaktandmed"> | |||
<xs:complexType> | |||
<xs:sequence> | |||
<xs:element maxOccurs="32" name="kontakt"> | |||
<xs:complexType> | |||
<xs:attribute name="väärtus" type="xs:string" use="required" /> | |||
<xs:attribute name="tüüp" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
<xs:attribute name="ettevõtteNimi" type="xs:string" use="required" /> | |||
<xs:attribute name="registrikood" type="xs:unsignedInt" use="required" /> | |||
<xs:attribute name="aadress" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
<xs:element name="lisainfo" type="xs:string" /> | |||
<xs:element name="tähtaeg"> | |||
<xs:complexType> | |||
<xs:attribute name="kuupäev" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
<xs:attribute name="number" type="xs:unsignedInt" use="required" /> | |||
<xs:attribute name="kuupäev" type="xs:string" use="required" /> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:sequence> | |||
</xs:complexType> | |||
</xs:element> | |||
</xs:schema> | |||
</pre> | |||
=== XSLT === | |||
<pre> | |||
<?xml version="1.0" encoding="utf-8"?> | |||
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" | |||
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"> | |||
<xsl:output method="html" indent="yes"/> | |||
=== | <xsl:template match="/"> | ||
<html> | |||
<head> | |||
<title>Arved</title> | |||
</head> | |||
<body> | |||
<xsl:for-each select="/arved/arve"> | |||
<div> | |||
<p> | |||
<b>Arve nr <xsl:value-of select="@number"/></b> Koostatud <xsl:value-of select="@kuupäev"/> | |||
</p> | |||
<p> | |||
Koostaja: <xsl:value-of select="koostaja/@eesnimi"/><xsl:value-of select="koostaja/@perenimi"/> | |||
<ul> | |||
<xsl:for-each select="./koostaja/kontaktandmed/kontakt"> | |||
<li> | |||
<xsl:value-of select="@tüüp"/>: <xsl:value-of select="@väärtus"/> | |||
</li> | |||
</xsl:for-each> | |||
</ul> | |||
</p> | |||
<p> | |||
Tellija: <xsl:value-of select="./tellija/@eesnimi"/> <xsl:value-of select="./tellija/@perenimi"/> | |||
</p> | |||
<table border="1" cellpadding="4" cellspacing="0"> | |||
<tr> | |||
<th>Toote nimetus</th> | |||
<th>Kogus</th> | |||
<th>Ühik</th> | |||
<th>Hind</th> | |||
</tr> | |||
<xsl:for-each select="./tellitudTooted/toode"> | |||
<tr align="center"> | |||
<td> | |||
<xsl:value-of select="@nimi"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="@kogus"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="@ühik"/> | |||
</td> | |||
<td> | |||
<xsl:value-of select="./tavahind/@väärtus"/><xsl:value-of select="./tavahind/@valuuta"/> | |||
</td> | |||
</tr> | |||
</xsl:for-each> | |||
<tr> | |||
<td colspan="3" align="right"> | |||
Summa käibemaksuta: | |||
</td> | |||
<td colspan="1" align="center"> | |||
<xsl:value-of select="./summad/käibemaksuta/@väärtus"/><xsl:value-of select="./summad/käibemaksuta/@valuuta"/> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td colspan="3" align="right"> | |||
Käibemaksumäär: | |||
</td> | |||
<td colspan="1" align="center"> | |||
<xsl:value-of select="./käibemaksumäär/@väärtus"/> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td colspan="3" align="right"> | |||
<b>Summa käibemaksuga:</b> | |||
</td> | |||
<td colspan="1" align="center"> | |||
<b><xsl:value-of select="./summad/käibemaksuga/@väärtus"/><xsl:value-of select="./summad/käibemaksuga/@valuuta"/></b> | |||
</td> | |||
</tr> | |||
</table> | |||
<p> | |||
<b>Juriidiline info</b> | |||
<xsl:variable name="info" select="./juriidilineInfo"/> | |||
<br/> | |||
Ettevõte: <xsl:value-of select="$info/@ettevõtteNimi"/> | |||
<br/> | |||
Aadress: <xsl:value-of select="$info/@aadress"/> | |||
<br/> | |||
Registrikood: <xsl:value-of select="$info/@registrikood"/> | |||
<br/> | |||
<xsl:for-each select="$info/pangakontod/pangakonto"> | |||
<xsl:value-of select="@pangaNimi"/>: <xsl:value-of select="@kontonr"/> | |||
<br/> | |||
</xsl:for-each> | |||
<xsl:for-each select="$info/kontaktandmed/kontakt"> | |||
<xsl:value-of select="@tüüp"/>: <xsl:value-of select="@väärtus"/> | |||
<br/> | |||
</xsl:for-each> | |||
</p> | |||
<p> | |||
Maksetähtaeg: <b> | |||
<xsl:value-of select="./tähtaeg/@kuupäev"/> | |||
</b> | |||
<br/> | |||
<xsl:value-of select="./lisainfo"/> | |||
</p> | |||
</div> | |||
</xsl:for-each> | |||
</body> | |||
</html> | |||
</xsl:template> | |||
</xsl:stylesheet> | |||
</pre> | |||
Revision as of 21:01, 20 March 2016
Meeskond ja rollid
- Marko Koiduste - Projektijuht
- Jaanus Türnpuu
- Sergei Fatejev
- Kaspar Tilk
Idee
Kasutatav .NET tehnoloogia
C#, Entity Framework, Web-API, AngularJS klientrakenduse loomiseks
Analüüs
Rakenduse sisu
Rakenduses on olemas järgmised võimalused (Must have):
- 1.
- 2.
- 3.
Rakenduses võiksid olla lisavõimalused (Should have):
- 1.
- 2.
- 3.
Andmebaasiskeem
XML osa
XML Fail
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="Arved.xslt" ?>
<arved>
<arve number="1337420" kuupäev="20.03.2016">
<koostaja eesnimi="Kaspar" perenimi="Tilk">
<kontaktandmed>
<kontakt väärtus="kaspar.tilk" tüüp="Skype"/>
<kontakt väärtus="53542343" tüüp="telefon"/>
</kontaktandmed>
</koostaja>
<tellija eesnimi="Mait" perenimi="Poska"/>
<tarneviis nimetus="kuller">
<tarnija nimi="DPD"/>
</tarneviis>
<tellitudTooted>
<toode nimi="banaan" kogus="2" ühik="kg" kategooria="puuvili" aktiivne="true">
<tavahind väärtus="2" valuuta="€"/>
<soodushind väärtus="1.50" valuuta="€"/>
<kirjeldus><![CDATA[toores banaan]]></kirjeldus>
</toode>
<toode nimi="õun" kogus="3" ühik="kg" kategooria="puuvili" aktiivne="true">
<tavahind väärtus="1" valuuta="€"/>
<soodushind väärtus="0.50" valuuta="€"/>
<kirjeldus><![CDATA[hapu õun]]></kirjeldus>
</toode>
</tellitudTooted>
<käibemaksumäär väärtus="0%"/>
<summad>
<käibemaksuta väärtus="3" valuuta="€"/>
<käibemaksuga väärtus="3" valuuta="€"/>
</summad>
<juriidilineInfo ettevõtteNimi="OÜ Puuvili" registrikood="420666" aadress="Keki tn, Keila">
<pangakontod>
<pangakonto pangaNimi="Swedbank" kontonr="EE12345678"/>
<pangakonto pangaNimi="SEB" kontonr="EE87654321"/>
</pangakontod>
<kontaktandmed>
<kontakt väärtus="puu@vili.ee" tüüp="E-mail"/>
<kontakt väärtus="531337" tüüp="Telefon"/>
</kontaktandmed>
</juriidilineInfo>
<lisainfo><![CDATA[Täname tellimuse eest!]]></lisainfo>
<tähtaeg kuupäev="21.03.2016"/>
</arve>
<arve number="1337420" kuupäev="20.03.2016">
<koostaja eesnimi="Kaspar" perenimi="Tilk">
<kontaktandmed>
<kontakt väärtus="kaspar.tilk" tüüp="Skype"/>
<kontakt väärtus="53542343" tüüp="Telefon"/>
</kontaktandmed>
</koostaja>
<tellija eesnimi="Andres" perenimi="Käver"/>
<tarneviis nimetus="kuller">
<tarnija nimi="DPD"/>
</tarneviis>
<tellitudTooted>
<toode nimi="banaan" kogus="2" ühik="kg" kategooria="puuvili" aktiivne="true">
<tavahind väärtus="2" valuuta="€"/>
<soodushind väärtus="1.50" valuuta="€"/>
<kirjeldus><![CDATA[toores banaan]]></kirjeldus>
</toode>
<toode nimi="õun" kogus="3" ühik="kg" kategooria="puuvili" aktiivne="true">
<tavahind väärtus="1" valuuta="€"/>
<soodushind väärtus="0.50" valuuta="€"/>
<kirjeldus><![CDATA[hapu õun]]></kirjeldus>
</toode>
</tellitudTooted>
<käibemaksumäär väärtus="0%"/>
<summad>
<käibemaksuta väärtus="3" valuuta="€"/>
<käibemaksuga väärtus="3" valuuta="€"/>
</summad>
<juriidilineInfo ettevõtteNimi="OÜ Puuvili" registrikood="420666" aadress="Keki tn, Keila">
<pangakontod>
<pangakonto pangaNimi="Swedbank" kontonr="EE12345678"/>
<pangakonto pangaNimi="SEB" kontonr="EE87654321"/>
</pangakontod>
<kontaktandmed>
<kontakt väärtus="puu@vili.ee" tüüp="E-mail"/>
<kontakt väärtus="531337" tüüp="telefon"/>
</kontaktandmed>
</juriidilineInfo>
<lisainfo><![CDATA[Täname tellimuse eest!]]></lisainfo>
<tähtaeg kuupäev="21.03.2016"/>
</arve>
</arved>
XML Skeemifail
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="arved">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="128" name="arve">
<xs:complexType>
<xs:sequence>
<xs:element name="koostaja">
<xs:complexType>
<xs:sequence>
<xs:element name="kontaktandmed">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="16" name="kontakt">
<xs:complexType>
<xs:attribute name="väärtus" type="xs:string" use="required" />
<xs:attribute name="tüüp" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="eesnimi" type="xs:string" use="required" />
<xs:attribute name="perenimi" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="tellija">
<xs:complexType>
<xs:attribute name="eesnimi" type="xs:string" use="required" />
<xs:attribute name="perenimi" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="tarneviis">
<xs:complexType>
<xs:sequence>
<xs:element name="tarnija">
<xs:complexType>
<xs:attribute name="nimi" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="nimetus" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="tellitudTooted">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="128" name="toode">
<xs:complexType>
<xs:sequence>
<xs:element name="tavahind">
<xs:complexType>
<xs:attribute name="väärtus" type="xs:decimal" use="required" />
<xs:attribute name="valuuta" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="soodushind">
<xs:complexType>
<xs:attribute name="väärtus" type="xs:decimal" />
<xs:attribute name="valuuta" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:element name="kirjeldus" type="xs:string" />
</xs:sequence>
<xs:attribute name="nimi" type="xs:string" use="required" />
<xs:attribute name="kogus" type="xs:unsignedByte" use="required" />
<xs:attribute name="ühik" type="xs:string" use="required" />
<xs:attribute name="kategooria" type="xs:string" />
<xs:attribute name="aktiivne" type="xs:boolean" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="käibemaksumäär">
<xs:complexType>
<xs:attribute name="väärtus" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="summad">
<xs:complexType>
<xs:sequence>
<xs:element name="käibemaksuta">
<xs:complexType>
<xs:attribute name="väärtus" type="xs:decimal" use="required" />
<xs:attribute name="valuuta" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="käibemaksuga">
<xs:complexType>
<xs:attribute name="väärtus" type="xs:decimal" use="required" />
<xs:attribute name="valuuta" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="juriidilineInfo">
<xs:complexType>
<xs:sequence>
<xs:element name="pangakontod">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="32" name="pangakonto">
<xs:complexType>
<xs:attribute name="pangaNimi" type="xs:string" use="required" />
<xs:attribute name="kontonr" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="kontaktandmed">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="32" name="kontakt">
<xs:complexType>
<xs:attribute name="väärtus" type="xs:string" use="required" />
<xs:attribute name="tüüp" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="ettevõtteNimi" type="xs:string" use="required" />
<xs:attribute name="registrikood" type="xs:unsignedInt" use="required" />
<xs:attribute name="aadress" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="lisainfo" type="xs:string" />
<xs:element name="tähtaeg">
<xs:complexType>
<xs:attribute name="kuupäev" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="number" type="xs:unsignedInt" use="required" />
<xs:attribute name="kuupäev" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XSLT
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<html>
<head>
<title>Arved</title>
</head>
<body>
<xsl:for-each select="/arved/arve">
<div>
<p>
<b>Arve nr <xsl:value-of select="@number"/></b> Koostatud <xsl:value-of select="@kuupäev"/>
</p>
<p>
Koostaja: <xsl:value-of select="koostaja/@eesnimi"/><xsl:value-of select="koostaja/@perenimi"/>
<ul>
<xsl:for-each select="./koostaja/kontaktandmed/kontakt">
<li>
<xsl:value-of select="@tüüp"/>: <xsl:value-of select="@väärtus"/>
</li>
</xsl:for-each>
</ul>
</p>
<p>
Tellija: <xsl:value-of select="./tellija/@eesnimi"/> <xsl:value-of select="./tellija/@perenimi"/>
</p>
<table border="1" cellpadding="4" cellspacing="0">
<tr>
<th>Toote nimetus</th>
<th>Kogus</th>
<th>Ühik</th>
<th>Hind</th>
</tr>
<xsl:for-each select="./tellitudTooted/toode">
<tr align="center">
<td>
<xsl:value-of select="@nimi"/>
</td>
<td>
<xsl:value-of select="@kogus"/>
</td>
<td>
<xsl:value-of select="@ühik"/>
</td>
<td>
<xsl:value-of select="./tavahind/@väärtus"/><xsl:value-of select="./tavahind/@valuuta"/>
</td>
</tr>
</xsl:for-each>
<tr>
<td colspan="3" align="right">
Summa käibemaksuta:
</td>
<td colspan="1" align="center">
<xsl:value-of select="./summad/käibemaksuta/@väärtus"/><xsl:value-of select="./summad/käibemaksuta/@valuuta"/>
</td>
</tr>
<tr>
<td colspan="3" align="right">
Käibemaksumäär:
</td>
<td colspan="1" align="center">
<xsl:value-of select="./käibemaksumäär/@väärtus"/>
</td>
</tr>
<tr>
<td colspan="3" align="right">
<b>Summa käibemaksuga:</b>
</td>
<td colspan="1" align="center">
<b><xsl:value-of select="./summad/käibemaksuga/@väärtus"/><xsl:value-of select="./summad/käibemaksuga/@valuuta"/></b>
</td>
</tr>
</table>
<p>
<b>Juriidiline info</b>
<xsl:variable name="info" select="./juriidilineInfo"/>
<br/>
Ettevõte: <xsl:value-of select="$info/@ettevõtteNimi"/>
<br/>
Aadress: <xsl:value-of select="$info/@aadress"/>
<br/>
Registrikood: <xsl:value-of select="$info/@registrikood"/>
<br/>
<xsl:for-each select="$info/pangakontod/pangakonto">
<xsl:value-of select="@pangaNimi"/>: <xsl:value-of select="@kontonr"/>
<br/>
</xsl:for-each>
<xsl:for-each select="$info/kontaktandmed/kontakt">
<xsl:value-of select="@tüüp"/>: <xsl:value-of select="@väärtus"/>
<br/>
</xsl:for-each>
</p>
<p>
Maksetähtaeg: <b>
<xsl:value-of select="./tähtaeg/@kuupäev"/>
</b>
<br/>
<xsl:value-of select="./lisainfo"/>
</p>
</div>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>