Difference between revisions of "Undress Gaver"
From ICO wiki
(→Kasutatav .NET tehnoloogia) |
(→Lisatud XML, XSD ja XSLT failid) |
||
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
Contents
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>