Föderaalreserv
From ICO wiki
Meeskond
- Rene Ott
Retsensioonid
- XML
- Veebirakendus
- Klientrakendus
Veebi-ja klientrakendus
Analüüs
XML, XSD ning XSL
XML
<?xml version="1.0" encoding="UTF-8"?>
<Asjad xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Asi onKohtuasi="false" id="1">
<AsjaNr>166366</AsjaNr>
<Liik>Väärteoasi</Liik>
<Menetlused kogus="1">
<Menetlus id="11">
<MenetluseNr>1666366</MenetluseNr>
<Liik>Kohtuväline menetlus</Liik>
<Osalised kogus="2">
<Osaline id="111" onMenetleja="true">
<Liik>Kohtuväline menetleja</Liik>
<Isik id="1000">
<Nimi>Inspektor Kukeke</Nimi>
</Isik>
</Osaline>
<Osaline id="112" onMenetleja="false">
<Liik>Menetlusalune isik</Liik>
<Isik id="1001">
<Nimi>Andrus ElBling</Nimi>
</Isik>
</Osaline>
<Osaline id="113" onMenetleja="false">
<Liik>Tunnistaja</Liik>
<Isik id="1002">
<Nimi>Paks Peeter</Nimi>
</Isik>
</Osaline>
</Osalised>
<Toimingud kogus="2">
<Toiming id="114">
<Liik>Kiirmenetluse otsus</Liik>
<ToiminguOsalised>
<ToiminguOsaline osaliseId="111" />
<ToiminguOsaline osaliseId="112" />
</ToiminguOsalised>
</Toiming>
<Toiming id="115">
<Liik>Ülekuulamisprotokoll</Liik>
<ToiminguOsalised>
<ToiminguOsaline osaliseId="111" />
<ToiminguOsaline osaliseId="113" />
</ToiminguOsalised>
</Toiming>
</Toimingud>
</Menetlus>
</Menetlused>
<SeotudAsjad>
<Asi id="2" />
</SeotudAsjad>
</Asi>
<Asi onKohtuasi="true" id="2">
<AsjaNr>1-3-455</AsjaNr>
<Liik>Väärteoasi</Liik>
<Menetlused kogus="1">
<Menetlus id="21">
<MenetluseNr>1-3-455(1)</MenetluseNr>
<Liik>Kohtu I Astme menetlus</Liik>
<Osalised>
<Osaline id="211" onMenetleja="true">
<Liik>Kohtunik</Liik>
<Isik id="1003">
<Nimi>Kohtu Mõistja</Nimi>
</Isik>
</Osaline>
<Osaline id="212" onMenetleja="false">
<Liik>Menetlusalune isik</Liik>
<Isik id="1001">
<Nimi>Andrus ElBling</Nimi>
</Isik>
</Osaline>
</Osalised>
<Toimingud kogus="2">
<Toiming>
<Liik>Kaebus kohtuvälise menetleja otsuse peale</Liik>
<ToiminguOsalised>
<ToiminguOsaline osaliseId="211" />
</ToiminguOsalised>
</Toiming>
<Toiming>
<Liik>Kohtuotsus</Liik>
<ToiminguOsalised>
<ToiminguOsaline osaliseId="211" />
<ToiminguOsaline osaliseId="212" />
</ToiminguOsalised>
</Toiming>
</Toimingud>
</Menetlus>
</Menetlused>
<SeotudAsjad>
<Asi id="1" />
</SeotudAsjad>
</Asi>
<Asi onKohtuasi="false" id="3">
<AsjaNr>180000</AsjaNr>
<Liik>Kriminaalasi</Liik>
<Menetlused kogus="1">
<Menetlus id="31">
<MenetluseNr>17554354</MenetluseNr>
<Liik>Kohtueelne menetlus</Liik>
<Osalised kogus="2">
<Osaline id="311" onMenetleja="true">
<Liik>Uurija</Liik>
<Isik id="1005">
<Nimi>Elmar Vaher</Nimi>
</Isik>
</Osaline>
<Osaline id="312" onMenetleja="true">
<Liik>Prokuror</Liik>
<Isik id="1006">
<Nimi>Lavly Perling</Nimi>
</Isik>
</Osaline>
</Osalised>
<Toimingud xsi:nil="true" />
</Menetlus>
</Menetlused>
<SeotudAsjad xsi:nil="true" />
</Asi>
<Asi onKohtuasi="false" id="4">
<AsjaNr>170000</AsjaNr>
<Liik>Kriminaalasi</Liik>
<Menetlused kogus="1">
<Menetlus id="41">
<MenetluseNr>17554355</MenetluseNr>
<Liik>Kohtueelne menetlus</Liik>
<Osalised kogus="2">
<Osaline id="411" onMenetleja="false">
<Liik>Uurija</Liik>
<Isik id="1005">
<Nimi>Elmar Vaher</Nimi>
</Isik>
</Osaline>
<Osaline id="412" onMenetleja="false">
<Liik>Prokuror</Liik>
<Isik id="1006">
<Nimi>Lavly Perling</Nimi>
</Isik>
</Osaline>
</Osalised>
<Toimingud kogus="1">
<Toiming>
<Liik>Kriminaalmenetluse lõpetamise määrus</Liik>
<ToiminguOsalised>
<ToiminguOsaline osaliseId="412" />
</ToiminguOsalised>
</Toiming>
</Toimingud>
</Menetlus>
</Menetlused>
<SeotudAsjad xsi:nil="true" />
</Asi>
</Asjad>
XSD
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Asjad">
<xs:complexType>
<xs:sequence>
<xs:element name="Asi" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="AsjaNr" type="xs:string"/>
<xs:element name="Liik" type="xs:string"/>
<xs:element name="Menetlused">
<xs:complexType>
<xs:sequence>
<xs:element name="Menetlus" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="MenetluseNr" type="xs:string"/>
<xs:element name="Liik" type="xs:string"/>
<xs:element name="Osalised" maxOccurs="1" nillable="true">
<xs:complexType>
<xs:sequence>
<xs:element name="Osaline" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Liik" type="xs:string"/>
<xs:element name="Isik">
<xs:complexType>
<xs:sequence>
<xs:element name="Nimi" type="xs:string"/>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedInt"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedInt"/>
<xs:attribute name="onMenetleja" type="xs:boolean"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="kogus" type="xs:int"/>
</xs:complexType>
</xs:element>
<xs:element name="Toimingud" maxOccurs="1" nillable="true">
<xs:complexType>
<xs:sequence>
<xs:element name="Toiming" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Liik" type="xs:string"/>
<xs:element name="ToiminguOsalised" maxOccurs="1" nillable="true">
<xs:complexType>
<xs:sequence>
<xs:element name="ToiminguOsaline" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="osaliseId" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedInt"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="kogus" type="xs:unsignedInt"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedInt"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="kogus" type="xs:unsignedInt"/>
</xs:complexType>
</xs:element>
<xs:element name="SeotudAsjad" maxOccurs="1" nillable="true">
<xs:complexType>
<xs:sequence>
<xs:element name="Asi" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedInt"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedInt"/>
<xs:attribute name="onKohtuasi" type="xs:boolean"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XSLT 1
Kuvab isikute menetlusi, milles nad on osalised üle asjade.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" encoding="UTF-8" />
<xsl:template match="/">
<html>
<head>
<title>Kuvab kõik isikud ning nendega seotud menetlused.</title>
</head>
<body>
<table border="1">
<thead>
<th>Isik</th>
<th>Menetlus</th>
</thead>
<tbody>
<xsl:apply-templates select="//Isik"/>
</tbody>
</table>
</body>
</html>
</xsl:template>
<!--Eraldab kõik erinevad nimed välja -->
<!-- Kasutame for loopi asemel eraldi template'i -->
<xsl:template match="//Isik">
<xsl:if test="Nimi[not(.=preceding::*)]">
<xsl:variable name="isikuId" select="./@id"/>
<tr>
<td>
<ul>
<li><xsl:value-of select="Nimi"/> [<xsl:value-of select="$isikuId"/>]</li>
</ul>
</td>
<td>
<xsl:call-template name="IsikuMenetlused">
<xsl:with-param name="isikuId" select="$isikuId"/>
</xsl:call-template>
</td>
</tr>
</xsl:if>
</xsl:template>
<!-- Eraldame kõikide isikute menetlused, kasutame alamtemplate'i -->
<xsl:template name="IsikuMenetlused">
<xsl:param name="isikuId"/>
<ul>
<xsl:for-each select="//Menetlus">
<xsl:if test="./Osalised/Osaline/Isik/@id=$isikuId">
<li>
<xsl:value-of select="./MenetluseNr"/> - <xsl:value-of select="./Liik"/>
</li>
</xsl:if>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>
XSLT 2
Kuvab asjadega seotud infot toimingute täpsuseni.
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes" encoding="UTF-8" />
<xsl:template match="/">
<html>
<head>
<title>Kuvab kõikide asjadega seotud info</title>
<!--
<link rel="stylesheet" type="text/css" href="asjad.css"/>
-->
<style>
.table {
border-collapse:collapse;
}
.inner-table{
width: 100%;
padding: 200px;
}
tr.equal-width td,
tr.equal-width th {
width: 25%;
}
</style>
</head>
<body>
<h1>
Kõik menetluses olevad asjad (<xsl:value-of select="count(Asjad/Asi)"/>)
</h1>
<table border="1" style="border-collapse:collapse">
<thead>
<th>Asi</th>
<th>Menetlused</th>
<th>Seotud asjade number</th>
</thead>
<tbody>
<xsl:apply-templates select="Asjad/Asi"/>
</tbody>
</table>
</body>
</html>
</xsl:template>
<!-- Koik menetletavad asjad -->
<xsl:template match="Asjad/Asi">
<tr>
<td>
<xsl:value-of select="./Liik"/>
<br/>
<xsl:value-of select="./AsjaNr"/>
</td>
<td>
<table border="1" class="table inner-table">
<thead>
<tr class="equal-width">
<th>Menetluse liik</th>
<th>Menetluse number</th>
<th>Kohtumenetlus</th>
<th>Toimingud</th>
</tr>
</thead>
<tbody>
<xsl:apply-templates select="Menetlused"/>
</tbody>
</table>
</td>
<td><xsl:apply-templates select="SeotudAsjad/Asi"/> </td>
</tr>
</xsl:template>
<!-- Asjas olevad menetlused -->
<xsl:template match="Menetlused">
<xsl:for-each select="./Menetlus">
<tr class="equal-width">
<td><xsl:value-of select="./Liik"/></td>
<td><xsl:value-of select="./MenetluseNr"/></td>
<td>
<xsl:choose >
<xsl:when test="../../@onKohtuasi='true'">Jah</xsl:when>
<xsl:otherwise>Ei</xsl:otherwise>
</xsl:choose>
</td>
<td>
<xsl:apply-templates select="./Toimingud"/>
</td>
</tr>
</xsl:for-each>
</xsl:template>
<!-- Menetluses olevad toimingud -->
<xsl:template match="Toimingud">
<xsl:variable name="toiminguidMenetluses" select="./Toiming"/>
<xsl:choose>
<xsl:when test="count($toiminguidMenetluses) != 0">
<ul>
<xsl:for-each select="./Toiming">
<li><xsl:value-of select="./Liik"/></li>
</xsl:for-each>
</ul>
</xsl:when>
<xsl:otherwise>
<em>Puuduvad</em>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Asjaga seotud teised asjad -->
<xsl:template match="SeotudAsjad/Asi">
<xsl:variable name="seotudAsjaId" select="./@id"/>
<ul>
<xsl:for-each select="/Asjad/Asi">
<xsl:if test="./@id=$seotudAsjaId">
<li><xsl:value-of select="./AsjaNr"/></li>
</xsl:if>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>