Meeskond "Vennaskond": Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
Line 119: Line 119:


===XSLT (esimene)===
===XSLT (esimene)===
Esimene xslt fail kuvab xml sisu html-is. Iga maakonna all kuvatakse omavalitsused eraldi valdade ja linnade kaupa. Valdade all kuvatakse asustusüksused sorteerituna külade, alevike ja alevite kaupa. Kui külal leidub rööpnimi, kuvatakse ka see.
Esimene xslt fail kuvab xml sisu html-is.
XSLT output on [https://ehak.codeplex.com/SourceControl/changeset/view/16725#261893 siin] ja source on siin:
 


<source lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
Line 128: Line 127:
>
>
   <xsl:output method="html" indent="yes"/>
   <xsl:output method="html" indent="yes"/>
   <xsl:template match="/">
   <xsl:template match="/">
     <html>
     <html>
       <head>
       <head>
         <title>Superkena haldus- ja asustusüksuste kuvamise leht!</title>
         <title>Autoralli tulemused</title>
       </head>
       </head>
       <body>
       <body>
         <h2>
         <h1>
           Maakonnad, omavalitsused ja asustusüksused
           Autoralli etappide tulemused
         </h2>
         </h1>
         <table border="0">
         <ul>
           <xsl:for-each select="/ehak/maakond">
           <xsl:for-each select="Autoralli/Võistlussari">
            <tr valign="top">
          <h2>
              <th>
            <xsl:value-of select="sarjaNimi"/>
                <br/>
             <xsl:text>, </xsl:text>
                <h2>
            <xsl:value-of select="@aasta"/>
                  <xsl:value-of select="@nimi"/>
          </h2>
                </h2>
            <xsl:for-each select="etapp">
              </th>
              <h2>    
            </tr>
                <xsl:value-of select="etapiNr"/>
            <tr valign="top">
                <xsl:text> etapp, </xsl:text>
              <th>
                <xsl:value-of select="etapiNimi"/>
                <br/>
              </h2>
                <i>
              <h3>
                  <b>
                <xsl:value-of select="loppKuupaev"/>
                    <font size="5">Vallad</font>
                <xsl:text>, </xsl:text>
                  </b>
                 <xsl:value-of select="etapiRiik"/>
                </i>
              </h3>
              </th>
              <xsl:for-each select="tulemusRida">
            </tr>
                <li>
            <!-- omavalitsuste puhul on kaks tsüklit - esimene kuvab vallad ja teine linnad-->
                  <xsl:value-of select="@koht"/>
             <xsl:for-each select="omavalitsus">
                  <xsl:text> </xsl:text>
              <xsl:if test="@tüübinimi='vald'">
                   <xsl:value-of select="juht/eesnimi"/>
                <tr valign="top">
                  <xsl:text> </xsl:text>
                  <th>
                  <xsl:value-of select="juht/perenimi"/>
                    <br/>
                  <xsl:text> (</xsl:text>
                    <xsl:value-of select="@nimi"/>
                  <xsl:value-of select="juht/riigikood"/>
                    <xsl:text> </xsl:text>
                  <xsl:text>) </xsl:text>
                    <xsl:value-of select="@tüübinimi"/>
                   <xsl:value-of select="auto"/>
                  </th>
                   <xsl:text>, </xsl:text>
                </tr>
                   <xsl:value-of select="punktid"/>
                <tr valign="top">
                  <xsl:text> p.</xsl:text>
                  <th>
                </li>
                    <i>Külad, alevikud, alevid</i>
              </xsl:for-each>
                  </th>
                </tr>
                <!-- asustusüksuste kuvamiseks on kolm tsüklit, sest need kuvatakse sorteeritult
                - esmalt külad, siis alevikud ja lõpuks alevid -->
                <xsl:for-each select="asustusüksus">
                  <xsl:if test="@tüübinimi='küla'">
                    <tr valign="top">
                      <td>
                        <!-- kirjutame nime koos tüübinimega-->
                        <xsl:value-of select="@nimi"/>
                        <xsl:text> </xsl:text>
                        <xsl:value-of select="@tüübinimi"/>
                        <!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse-->
                        <xsl:if test="@rööpnimi">
                          <xsl:text> (</xsl:text>
                          <xsl:value-of select="@rööpnimi"/>
                          <xsl:text>)</xsl:text>
                        </xsl:if>
                      </td>
                    </tr>
                  </xsl:if>
                 </xsl:for-each>
                <xsl:for-each select="asustusüksus">
                  <xsl:if test="@tüübinimi='alevik'">
                    <tr valign="top">
                      <td>
                        <!-- kirjutame nime koos tüübinimega-->
                        <xsl:value-of select="@nimi"/>
                        <xsl:text> </xsl:text>
                        <u>
                          <xsl:value-of select="@tüübinimi"/>
                        </u>
                        <!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse-->
                        <xsl:if test="@rööpnimi">
                          <xsl:text> (</xsl:text>
                          <xsl:value-of select="@rööpnimi"/>
                          <xsl:text>)</xsl:text>
                        </xsl:if>
                      </td>
                    </tr>
                  </xsl:if>
                </xsl:for-each>
                <xsl:for-each select="asustusüksus">
                   <xsl:if test="@tüübinimi='alev'">
                    <tr valign="top">
                      <td>
                        <!-- kirjutame nime koos tüübinimega-->
                        <xsl:value-of select="@nimi"/>
                        <xsl:text> </xsl:text>
                        <u>
                          <xsl:value-of select="@tüübinimi"/>
                        </u>
                        <!-- kui leidub rööpnimesid, siis pane need nime järgi, sulgudesse-->
                        <xsl:if test="@rööpnimi">
                          <xsl:text> (</xsl:text>
                          <xsl:value-of select="@rööpnimi"/>
                          <xsl:text>)</xsl:text>
                        </xsl:if>
                      </td>
                    </tr>
                   </xsl:if>
                </xsl:for-each>
              </xsl:if>
            </xsl:for-each>
            <tr valign="top">
              <th>
                <br/>
                <i>
                  <b>
                    <font size="5">Linnad</font>
                  </b>
                </i>
              </th>
            </tr>
            <xsl:for-each select="omavalitsus">
              <xsl:if test="@tüübinimi='linn'">
                <tr valign="top">
                  <th>
                    <br/>
                    <xsl:value-of select="@nimi"/>
                   </th>
                </tr>
                <tr valign="top">
                  <th>
                    <i>Linnaosad</i>
                  </th>
                </tr>
                <!-- kuna linnas saavad ainsaks asustusüksuseks olla linnaosad,
                siis on ainult üks tsükkel ja tüübinime ei kontrollita-->
                <xsl:for-each select="asustusüksus">
                   <tr valign="top">
                    <td>
                      <xsl:value-of select="@nimi"/>
                      <xsl:text> </xsl:text>
                      <xsl:value-of select="@tüübinimi"/>
                    </td>
                  </tr>
                </xsl:for-each>
              </xsl:if>
             </xsl:for-each>
             </xsl:for-each>
           </xsl:for-each>
           </xsl:for-each>
         </table>
         </ul>
       </body>
       </body>
     </html>
     </html>
   </xsl:template>
   </xsl:template>
</xsl:stylesheet>
</xsl:stylesheet>
</source>


===XSLT (teine)===
===XSLT (teine)===

Revision as of 23:58, 6 May 2012

Meeskond

  • Kairi Jaano
  • Mart Mägi
  • Riho Kukk

XML

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 on enamat, kui lihtsalt ID.

XML

XML fail sisaldab andmeid Link codeplexis olevale xml-ile (see on liiga suur siia panekuks).


<?xml version="1.0" encoding="utf-8"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

 <xs:element name="Autoralli">
   <xs:complexType>
     <xs:sequence>
       <xs:element maxOccurs="unbounded" name="Võistlussari">
         <xs:complexType>
           <xs:sequence>
             <xs:element name="kood" type="xs:string" />
             <xs:element name="sarjaNimi" type="xs:string" />
             <xs:element name="etappideArv" type="xs:unsignedByte" />
             <xs:element maxOccurs="unbounded" name="etapp">
               <xs:complexType>
                 <xs:sequence>
                   <xs:element name="etapiNr" type="xs:decimal" />
                   <xs:element name="etapiNimi" type="xs:string" />
                   <xs:element name="etapiRiik" type="xs:string" />
                   <xs:element name="algKuupaev" type="xs:string" />
                   <xs:element name="loppKuupaev" type="xs:string" />
                   <xs:element maxOccurs="unbounded" name="tulemusRida">
                     <xs:complexType>
                       <xs:sequence>
                         <xs:element name="juht">
                           <xs:complexType>
                             <xs:sequence>
                               <xs:element name="perenimi" type="xs:string" />
                               <xs:element name="eesnimi" type="xs:string" />
                               <xs:element name="riigikood" type="xs:string" />
                             </xs:sequence>
                           </xs:complexType>
                         </xs:element>
                         <xs:element name="auto" type="xs:string" />
                         <xs:element name="punktid" type="xs:string" />
                       </xs:sequence>
                       <xs:attribute name="koht" type="xs:decimal" use="required" />
                     </xs:complexType>
                   </xs:element>
                 </xs:sequence>
                 <xs:attribute name="id" type="xs:string" use="required" />
               </xs:complexType>
             </xs:element>
           </xs:sequence>
           <xs:attribute name="id" type="xs:string" use="required" />
           <xs:attribute name="aasta" type="xs:unsignedShort" use="required" />
         </xs:complexType>
       </xs:element>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

</xs:schema>

XML schema (XSD)

<?xml version="1.0" encoding="utf-8"?> <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

 <xs:element name="Autoralli">
   <xs:complexType>
     <xs:sequence>
       <xs:element maxOccurs="unbounded" name="Võistlussari">
         <xs:complexType>
           <xs:sequence>
             <xs:element name="kood" type="xs:string" />
             <xs:element name="sarjaNimi" type="xs:string" />
             <xs:element name="etappideArv" type="xs:unsignedByte" />
             <xs:element maxOccurs="unbounded" name="etapp">
               <xs:complexType>
                 <xs:sequence>
                   <xs:element name="etapiNr" type="xs:decimal" />
                   <xs:element name="etapiNimi" type="xs:string" />
                   <xs:element name="etapiRiik" type="xs:string" />
                   <xs:element name="algKuupaev" type="xs:string" />
                   <xs:element name="loppKuupaev" type="xs:string" />
                   <xs:element maxOccurs="unbounded" name="tulemusRida">
                     <xs:complexType>
                       <xs:sequence>
                         <xs:element name="juht">
                           <xs:complexType>
                             <xs:sequence>
                               <xs:element name="perenimi" type="xs:string" />
                               <xs:element name="eesnimi" type="xs:string" />
                               <xs:element name="riigikood" type="xs:string" />
                             </xs:sequence>
                           </xs:complexType>
                         </xs:element>
                         <xs:element name="auto" type="xs:string" />
                         <xs:element name="punktid" type="xs:string" />
                       </xs:sequence>
                       <xs:attribute name="koht" type="xs:decimal" use="required" />
                     </xs:complexType>
                   </xs:element>
                 </xs:sequence>
                 <xs:attribute name="id" type="xs:string" use="required" />
               </xs:complexType>
             </xs:element>
           </xs:sequence>
           <xs:attribute name="id" type="xs:string" use="required" />
           <xs:attribute name="aasta" type="xs:unsignedShort" use="required" />
         </xs:complexType>
       </xs:element>
     </xs:sequence>
   </xs:complexType>
 </xs:element>

</xs:schema>

XSLT (esimene)

Esimene xslt fail kuvab xml sisu html-is.


<?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>Autoralli tulemused</title>
     </head>
     <body>

Autoralli etappide tulemused

    <xsl:for-each select="Autoralli/Võistlussari">

    <xsl:value-of select="sarjaNimi"/> <xsl:text>, </xsl:text> <xsl:value-of select="@aasta"/>

               <xsl:for-each select="etapp">
    

    <xsl:value-of select="etapiNr"/> <xsl:text> etapp, </xsl:text> <xsl:value-of select="etapiNimi"/>

    <xsl:value-of select="loppKuupaev"/> <xsl:text>, </xsl:text> <xsl:value-of select="etapiRiik"/>

                 <xsl:for-each select="tulemusRida">
    
  • <xsl:value-of select="@koht"/> <xsl:text> </xsl:text> <xsl:value-of select="juht/eesnimi"/> <xsl:text> </xsl:text> <xsl:value-of select="juht/perenimi"/> <xsl:text> (</xsl:text> <xsl:value-of select="juht/riigikood"/> <xsl:text>) </xsl:text> <xsl:value-of select="auto"/> <xsl:text>, </xsl:text> <xsl:value-of select="punktid"/> <xsl:text> p.</xsl:text>
  • </xsl:for-each> </xsl:for-each> </xsl:for-each>
     </body>
   </html>
 </xsl:template>

</xsl:stylesheet>

XSLT (teine)

XSLT (kolmas)

<?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>Rööpnimedega asustusüksuste loetelu</title>
      </head>
      <body>
       <h3>
          Rööpnimedega asustusüksuste nimekiri koos tüübiga
       </h3>
        
        <table border="1">
          <tr>
            <th>
              <td>
                <h4>Asustusüksuse nimi</h4>
              </td>
              <td>
                <h4>Asustusüksuse rööpnimi</h4>
              </td>
              <td>
                <h4>Asustusüksuse tüüp</h4>
              </td>
            </th>
          </tr>
          <!-- Valin kõik asustusüksused, millel esineb parameeter "rööpnimi"-->
          <xsl:for-each select="/ehak/maakond/omavalitsus/asustusüksus">
            <xsl:if test="@rööpnimi">
            <tr valign="top">
              <th>
               <!-- Lisan tabelisse soovitud informatsiooni kolmest parameetrist --> 
                <td>
                  <xsl:value-of select="@nimi"/>
                </td>
                <td>
                  <xsl:value-of select="@rööpnimi"/>
                </td>
                <td>
                  <xsl:value-of select="@tüübinimi"/>
                </td>
              </th>
            </tr>
            </xsl:if>
          </xsl:for-each>
        </table>
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>

Veebiteenus

Klientrakendus

Log

5. mai 2012 - laupäev

Mart tegi xml faili ja xsd faili.

6. mai 2012 - pühapäev

Mart lõi meeskonna wiki lehe ja tõstis sinna seni tehtud materjalid