Meeskond:ArturJaSobrad

From ICO wiki
Revision as of 21:27, 6 March 2015 by Aklammer (talk | contribs) (→‎XSLT)
Jump to navigationJump to search

Meeskond

Liikmed:

  • Anni Klammer
  • Artur Tomba
  • Oliver Vahenõmm

XML

XML

<?xml version="1.0" encoding="utf-8"?>
<Phonebook>
  <Groups>
    <Group name="Family">
      <Person id="1">
        <Firstname><![CDATA[Anna]]></Firstname>
        <Lastname><![CDATA[Nuga]]></Lastname>
        <Contacts>
          <Contact type="Phone">55555555</Contact>
          <Contact type="Skype">anna.nuga@skype.com</Contact>
        </Contacts>
      </Person>
      <Person id="2">
        <Firstname><![CDATA[Anti]]></Firstname>
        <Lastname><![CDATA[Nuga]]></Lastname>
        <Contacts>
          <Contact type="Phone">09876543</Contact>
          <Contact type="Skype">anti.nuga@skype.com</Contact>
        </Contacts>
      </Person>
    </Group>
    <Group name="Work">
      <Person id="4">
        <Firstname><![CDATA[Peeter]]></Firstname>
        <Lastname><![CDATA[Termomeeter]]></Lastname>
        <Contacts>
          <Contact type="Phone">56666666</Contact>
          <Contact type="Skype">peetrike@skype.com</Contact>
        </Contacts>
      </Person>
    </Group>
    <Group name="Friends">
      <Person id="3">
        <Firstname><![CDATA[Minu]]></Firstname>
        <Lastname><![CDATA[Sõber]]></Lastname>
        <Contacts>
          <Contact type="Phone">123456789</Contact>
          <Contact type="Skype">minu.sober@skype.com</Contact>
        </Contacts>
      </Person>
      <Person id="5">
        <Firstname><![CDATA[Kati]]></Firstname>
        <Lastname><![CDATA[Karu]]></Lastname>
        <Contacts>
          <Contact type="Phone">545423154</Contact>
          <Contact type="Skype">olenkati@skype.com</Contact>
        </Contacts>
      </Person>
    </Group>
  </Groups>
</Phonebook>

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="Phonebook">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Groups">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="Group">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="Person">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="Firstname" type="xs:string" />
                          <xs:element name="Lastname" type="xs:string" />
                          <xs:element name="Contacts">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="Contact">
                                  <xs:complexType>
                                    <xs:simpleContent>
                                      <xs:extension base="xs:string">
                                        <xs:attribute name="type" type="xs:string" use="required" />
                                      </xs:extension>
                                    </xs:simpleContent>
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="id" type="xs:unsignedInt" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="name" type="xs:string" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XSLT

HTML nimede ja igaühe kontaktide kuvamiseks gruppide kaupa.

<?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>Phonebook</title>
        </head>
        <body>
          <xsl:for-each select="Phonebook/Groups/Group">
            <h3>
              <xsl:value-of select="@name"/>
            </h3>
            <table border="1" style="border:1px solid black;">
              <tr>
                <td>Firstname</td>
                <td>Lastname</td>
                <td>Phone</td>
                <td>Skype</td>
              </tr>
              <xsl:for-each select="Person">
                <tr>
                  <td>
                    <xsl:value-of select="Firstname"/>
                  </td>
                  <td>
                    <xsl:value-of select="Lastname"/>
                  </td>
                  <xsl:for-each select="Contacts/Contact">
                    <td>
                      <xsl:value-of select="."/>
                    </td>
                  </xsl:for-each>
                </tr>
              </xsl:for-each>
            </table>
            <br/>
          </xsl:for-each>
        </body>
      </html>
    </xsl:template>
</xsl:stylesheet>


HTML nimede kuvamiseks tähestiku järjekorras (perekonnanime alusel).

<?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>Phonebook</title></head>
        <body>
        <h3>People</h3>
        <table>
          <xsl:for-each select="Phonebook/Groups/Group/Person">
            <xsl:sort select="Lastname"/>
            <tr>
              <td>
                <xsl:value-of select="Firstname"/>
              </td>
              <td>
                <xsl:value-of select="Lastname"/>
              </td>
            </tr>
          </xsl:for-each>
        </table>
      </body>
      </html>
    </xsl:template>
</xsl:stylesheet>

Veebiteenus

Klientrakendused