CSharpArt

From ICO wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Meeskond

  • Kristo Roosileht (D22)
  • Mihkel Kadarik (D22)
  • Henri Kroosmann (D61)
  • Ats Rand (D22)

XML fail

<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="stiil.xslt" ?>

<phoneBook>
  <phoneBookItem type="person" id="1">
    <personName>
      <givenNames>
        <name default="1">Paul</name>
        <name>Peeter</name>
      </givenNames>
      <familyName>Puujalg</familyName>
    </personName>
    <birthday format="YYYY-MM-DD">1919-02-27</birthday>
    <addresses>
      <address id="1" default="1">
        <country>Estonia</country>
        <county>Harjumaa</county>
        <city>Tallinn</city>
        <street>Narva mnt.</street>
        <house>5</house>
        <apartment>13</apartment>
        <zipCode>12345</zipCode>
      </address>
      <address id="2">
        <country>Estonia</country>
        <county>Harjumaa</county>
        <city>Tallinn</city>
        <street>Pärnu mnt.</street>
        <house>25</house>
        <apartment/>
        <zipCode>12345</zipCode>
      </address>
    </addresses>
    <contactInfo>
      <phones>
        <phone type="home" areaCode="372">63440292</phone>
        <phone type="mobile" areaCode="372" default="1">55566334</phone>
        <phone type="work" areaCode="372">555234231</phone>
        <phone type="skype" areaCode="372">2340240</phone>
      </phones>
      <emails>
        <email type="personal" default="1">mail@mail.ee</email>
        <email type="work">mail@puujalg.ee</email>
      </emails>
      <other>
        <skype>paul.peeter.puujalg</skype>
        <twitter>paulpeeterpuujalg</twitter>
      </other>
    </contactInfo>
    <additionalInfo>
      <websites>
       <website type="facebook">http://www.facebook.com/paulpeeterpuujalg</website>
      </websites>
      <company id="4">
        <name>Puujalad &amp; Co.</name>
      </company>
      <notes>
        <note date="2013-02-10">Tegemist töökaaslasega minu eelmisest ettevõttest</note>
      </notes>
    </additionalInfo>
  </phoneBookItem>

  <phoneBookItem type="person" id="2">
    <personName>
      <givenNames>
        <name default="1">Karl</name>
        <name>Kristjan</name>
      </givenNames>
      <familyName>Konkskäsi</familyName>
    </personName>
    <birthday format="YYYY-MM-DD">1919-02-27</birthday>
    <addresses>
      <address id="1" default="1">
        <country>Estonia</country>
        <county>Harjumaa</county>
        <city>Tallinn</city>
        <street>Narva mnt.</street>
        <house>5</house>
        <apartment>13</apartment>
        <zipCode>12345</zipCode>
      </address>
      <address id="2">
        <country>Estonia</country>
        <county>Harjumaa</county>
        <city>Tallinn</city>
        <street>Pärnu mnt.</street>Š
        <house>25</house>
        <apartment/>
        <zipCode>12345</zipCode>
      </address>
    </addresses>
    <contactInfo>
      <phones>
        <phone type="home" areaCode="372">63440292</phone>
        <phone type="mobile" areaCode="372" default="1">55566334</phone>
        <phone type="work" areaCode="372">555234231</phone>
        <phone type="skype" areaCode="372">2340240</phone>
      </phones>
      <emails>
        <email type="personal" default="1">mail@mail.ee</email>
        <email type="work">mail@konksk2si.ee</email>
      </emails>
      <other>
        <skype>karl.kristjan.konksk2si</skype>
        <twitter>karlkristjankonksk2si</twitter>
      </other>
    </contactInfo>
    <additionalInfo>
      <websites>
        <website type="facebook">http://www.facebook.com/karlkristjankonksk2si</website>
      </websites>
      <company id="3">
        <name>Konkskäed &amp; Co.</name>
      </company>
      <notes>
        <note date="2013-02-10">Tegemist töökaaslasega minu järgmisest ettevõttest</note>
      </notes>
    </additionalInfo>
  </phoneBookItem>
  
  <phoneBookItem type="organization" id="3">
    <orgName>Konkskäed &amp; Co.</orgName>
    <addresses>
      <address id="45" default="1" type="office">
        <country>Estonia</country>
        <county>Harjumaa</county>
        <city>Tallinn</city>
        <street>Tartu mnt.</street>
        <house>45</house>
        <zipCode>12345</zipCode>
      </address>
      <address id="2" type="shop">
        <country>Estonia</country>
        <county>Harjumaa</county>
        <city>Tallinn</city>
        <street>Pärnu mnt.</street>
        <house>253b</house>
        <apartment/>
        <zipCode>12345</zipCode>
      </address>
    </addresses>
    <contactInfo>
      <phones>
        <phone areaCode="372" default="1">6310456</phone>
      </phones>
      <emails>
        <email default="1">kiri@konksk2si.ee</email>
      </emails>
      <other>
        <skype>konksk2si.klienditeenindus</skype>
        <test>testkontakt</test>
      </other>
    </contactInfo>
    <additionalInfo>
      <websites>
        <website type="homepage">http://www.konksk2si.ee</website>
        <website type="shop">http://pood.konksk2si.ee</website>
        <website type="facebook">http://www.facebook.com/konksk2si</website>
      </websites>
      <notes>
        <note date="2012-12-12">See on koht, kust saab väga häid konkse kätele</note>
      </notes>
      <contactPersons>
        <person id="2">Karl Kristjan Konkskäsi</person>
      </contactPersons>
    </additionalInfo>
  </phoneBookItem>

  <phoneBookItem type="organization" id="4">
    <orgName>Puujalad &amp; Co.</orgName>
    <addresses>
      <address id="45" default="1" type="office">
        <country>Estonia</country>
        <county>Harjumaa</county>
        <city>Tallinn</city>
        <street>Tartu mnt.</street>
        <house>45</house>
        <zipCode>12345</zipCode>
      </address>
      <address id="2" type="shop">
        <country>Estonia</country>
        <county>Harjumaa</county>
        <city>Tallinn</city>
        <street>Pärnu mnt.</street>
        <house>253b</house>
        <apartment/>
        <zipCode>12345</zipCode>
      </address>
    </addresses>
    <contactInfo>
      <phones>
        <phone areaCode="372" default="1">6310456</phone>
      </phones>
      <emails>
        <email default="1">kiri@puujalad.ee</email>
      </emails>
      <other>
        <skype>puujalad.klienditeenindus</skype>
        <twitter>puujalad</twitter>
      </other>
    </contactInfo>
    <additionalInfo>
      <websites>
        <website type="homepage">http://www.puujalad.ee</website>
        <website type="shop">http://pood.puujalad.ee</website>
      </websites>
      <notes>
        <note date="2012-12-12">See on koht, kust saab väga häid puujalgu</note>
      </notes>
      <contactPersons>
        <person id="1">Paul Peeter Puujalg</person>
      </contactPersons>
    </additionalInfo>
  </phoneBookItem>
</phoneBook>

Stiilifail1

Stiilifail, mis väljastab kõik isikud.

<?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:template match="/">
      <html>
        <body bgcolor="#eeeeee">
          <h2>Kontakt! Isikud</h2>
          <table border="1">
            <tr bgcolor="#9acd32">
                <th>Sünnipäev</th>
                <th>Eesnimi</th>
                <th>Perekonnanimi</th>
                <th>Aadress</th>
                <th>Telefon</th>
                <th>e-Mail</th>
                <th>Muu</th>
                <th>Veebilehed</th>
              </tr>
          <xsl:for-each select="phoneBook/phoneBookItem">
            <xsl:if test="@type = 'person'">
              <tr>
                <td>
                  <xsl:value-of select="birthday"/>
                </td>

                <td>
                    <xsl:for-each select="personName/givenNames/name"><xsl:value-of select="." /><xsl:text disable-output-escaping="yes"><![CDATA[&nbsp;]]></xsl:text></xsl:for-each>
                </td>

                <td>
                    <xsl:value-of select="personName/familyName" />
                </td>

                <td>
                    <table>
                    <xsl:for-each select="addresses/address">
                        <tr>
                            <td>
                                <xsl:value-of select="country" /><br />
                                <xsl:value-of select="county" /><br />
                                <xsl:value-of select="city" />,<xsl:text disable-output-escaping="yes"><![CDATA[&nbsp;]]></xsl:text><xsl:value-of select="zipCode" /><br />
                                <xsl:value-of select="street" /><xsl:text disable-output-escaping="yes"><![CDATA[&nbsp;]]></xsl:text><xsl:value-of select="house" />
                                <xsl:if test="./apartment/text()">
                                    <xsl:text disable-output-escaping="yes"><![CDATA[&dash;]]></xsl:text><xsl:value-of select="apartment" />
                                </xsl:if>
                            </td>
                        </tr>
                    </xsl:for-each>
                    </table>
                </td>

                <td>
                    <table>
                      <xsl:for-each select ="contactInfo/phones/phone">
                        <tr>
                            <td><xsl:value-of select="./@type"/>:<xsl:text disable-output-escaping="yes"><![CDATA[&nbsp;]]></xsl:text><xsl:value-of select ="."/></td>
                        </tr>
                      </xsl:for-each>
                    </table>
                </td>

                <td>
                    <table>
                        <xsl:for-each select="contactInfo/emails/email">
                            <tr>
                                <td><xsl:value-of select="./@type" />:<xsl:text disable-output-escaping="yes"><![CDATA[&nbsp;]]></xsl:text><xsl:value-of select="." /></td>
                            </tr>
                        </xsl:for-each>
                    </table>
                </td>

                <td>
                    <table>
                        <xsl:for-each select="contactInfo/other">
                            <tr>
                                <td>
                                    <table>
                                        <xsl:if test="skype">
                                            <tr>
                                                <td>Skype:<xsl:text disable-output-escaping="yes"><![CDATA[&nbsp;]]></xsl:text><xsl:value-of select="skype" /></td>
                                            </tr>
                                        </xsl:if>
                                        <xsl:if test="test">
                                            <tr>
                                                <td>Test:<xsl:text disable-output-escaping="yes"><![CDATA[&nbsp;]]></xsl:text><xsl:value-of select="test" /></td>
                                            </tr>
                                        </xsl:if>
                                    </table>
                                </td>
                            </tr>
                        </xsl:for-each>
                    </table>
                </td>

                <td>
                    <table>
                        <xsl:for-each select="additionalInfo/websites/website">
                            <tr>
                                <td><xsl:value-of select="./@type" />:<xsl:text disable-output-escaping="yes"><![CDATA[&nbsp;]]></xsl:text><br /><xsl:value-of select="." /></td>
                            </tr>
                        </xsl:for-each>
                    </table>
                </td>
              </tr>
            </xsl:if>
          </xsl:for-each>
          </table>
        </body>
      </html>
    </xsl:template>
</xsl:stylesheet>

Stiilifail2

Stiilifail, mis väljastab kõi ettevõtted.

<?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:template match="/">
        <html>
            <body bgcolor="#eeeeee">
              <h2>Kontakt! - Ettevõtted</h2>
              <table border="1">
                  <tr bgcolor="#9acd32">
                    <th>Nimi</th>
                    <th>Aadressid</th>
                    <th>Telefonid</th>
                    <th>e-Mailid</th>
                    <th>Muu kontaktinfo</th>
                    <th>Veebilehed</th>
                    <th>Kontaktisikud</th>
                  </tr>
                <xsl:for-each select="phoneBook/phoneBookItem">
                    <xsl:if test="@type = 'organization'">
                        <tr>
                            <td><xsl:value-of select="orgName"/></td>
                            <td>
                                <table>
                                <xsl:for-each select="addresses/address">
                                    <tr>
                                        <td>
                                            <xsl:value-of select="country" /><br />
                                            <xsl:value-of select="county" /><br />
                                            <xsl:value-of select="city" />, <xsl:value-of select="zipCode" /><br />
                                            <xsl:value-of select="street" /> <xsl:value-of select="house" /> <xsl:value-of select="apartment" />
                                        </td>
                                    </tr>
                                </xsl:for-each>
                                </table>
                            </td>
                            <td>
                                <table>
                                    <xsl:for-each select="contactInfo/phones/phone">
                                        <tr>
                                            <td>+<xsl:value-of select="./@areaCode" /><xsl:value-of select="." /></td>
                                        </tr>
                                    </xsl:for-each>
                                </table>
                            </td>
                            <td>
                                <table>
                                    <xsl:for-each select="contactInfo/emails/email">
                                        <tr>
                                            <td><xsl:value-of select="." /></td>
                                        </tr>
                                    </xsl:for-each>
                                </table>
                            </td>
                            <td>
                                <table>
                                    <xsl:for-each select="contactInfo/other">
                                        <tr>
                                            <td>
                                                <table>
                                                    <xsl:if test="skype">
                                                        <tr>
                                                            <td>Skype: <xsl:value-of select="skype" /></td>
                                                        </tr>
                                                    </xsl:if>
                                                    <xsl:if test="test">
                                                        <tr>
                                                            <td>Test: <xsl:value-of select="test" /></td>
                                                        </tr>
                                                    </xsl:if>
                                                </table>
                                            </td>
                                        </tr>
                                    </xsl:for-each>
                                </table>
                            </td>
                            <td>
                                <table>
                                    <xsl:for-each select="additionalInfo/websites/website">
                                        <tr>
                                            <td><xsl:value-of select="./@type" />: <br /><xsl:value-of select="." /></td>
                                        </tr>
                                    </xsl:for-each>
                                </table>
                            </td>
                            <td>
                                <table>
                                    <xsl:for-each select="additionalInfo/contactPersons/person">
                                        <tr>
                                            <td>(<xsl:value-of select="./@id" />) <xsl:value-of select="." /></td>
                                        </tr>
                                    </xsl:for-each>
                                </table>
                            </td>
                        </tr>
                    </xsl:if>
                </xsl:for-each>
              </table>
            </body>
        </html>
    </xsl:template>
</xsl:stylesheet>

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="phoneBook">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="phoneBookItem">
          <xs:complexType>
            <xs:sequence>
              <xs:element minOccurs="0" name="orgName" type="xs:string" />
              <xs:element minOccurs="0" name="personName">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="givenNames">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded" name="name">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:string">
                                  <xs:attribute name="default" type="xs:unsignedByte" use="optional" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="familyName" type="xs:string" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element minOccurs="0" name="birthday">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:date">
                      <xs:attribute name="format" type="xs:string" use="required" />
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="addresses">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="address">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element minOccurs="0" name="address">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="country" type="xs:string" />
                                <xs:element name="county" type="xs:string" />
                                <xs:element name="city" type="xs:string" />
                                <xs:element name="street" type="xs:string" />
                                <xs:element name="house" type="xs:string" />
                                <xs:element name="appartement" />
                                <xs:element name="zipCode" type="xs:unsignedShort" />
                              </xs:sequence>
                              <xs:attribute name="id" type="xs:unsignedByte" use="required" />
                            </xs:complexType>
                          </xs:element>
                          <xs:element minOccurs="0" name="country" type="xs:string" />
                          <xs:element minOccurs="0" name="county" type="xs:string" />
                          <xs:element minOccurs="0" name="city" type="xs:string" />
                          <xs:element minOccurs="0" name="street" type="xs:string" />
                          <xs:element minOccurs="0" name="house" type="xs:unsignedByte" />
                          <xs:element minOccurs="0" name="appartement" type="xs:unsignedByte" />
                          <xs:element minOccurs="0" name="zipCode" type="xs:unsignedShort" />
                        </xs:sequence>
                        <xs:attribute name="id" type="xs:unsignedByte" use="required" />
                        <xs:attribute name="default" type="xs:unsignedByte" use="optional" />
                        <xs:attribute name="type" type="xs:string" use="optional" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="contactInfo">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="phones">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded" name="phone">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:unsignedInt">
                                  <xs:attribute name="type" type="xs:string" use="optional" />
                                  <xs:attribute name="areaCode" type="xs:unsignedShort" use="required" />
                                  <xs:attribute name="default" type="xs:unsignedByte" use="optional" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="emails">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded" name="email">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:string">
                                  <xs:attribute name="type" type="xs:string" use="optional" />
                                  <xs:attribute name="default" type="xs:unsignedByte" use="optional" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="other">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="skype" type="xs:string" />
                          <xs:element minOccurs="0" name="twitter" type="xs:string" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="additionalInfo">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="websites">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded" name="website">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:string">
                                  <xs:attribute name="type" type="xs:string" use="optional" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element minOccurs="0" name="company">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="name" type="xs:string" />
                        </xs:sequence>
                        <xs:attribute name="id" type="xs:unsignedByte" use="required" />
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="notes">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="note">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:string">
                                  <xs:attribute name="date" type="xs:date" use="required" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element minOccurs="0" name="contactPersons">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="person">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:string">
                                  <xs:attribute name="id" type="xs:unsignedByte" use="required" />
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="type" type="xs:string" use="required" />
            <xs:attribute name="id" type="xs:unsignedByte" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Logi

19.03.2013 11:30 - Moodustasime Tiimi

19.03.2013 15:00 - Alustasime Wiki lehega

23.03.2013 23:58 - Esitatsime XML kodutöö

25.03.2013 10:39 - Viisime sisse väiksed parandused esitatud kodutööle

30.03.2013 17:43 - Esitasime XML ülesande retsensiooni meeskonna Trenniinfo kohta