Rootkit

From ICO wiki

Meeskonna liikmed

  • Jaanus Kääp

XML failid

XML andmefail

<?xml version="1.0" encoding="utf-8" ?>
<workout>
	<workoutInfo>
		<date>2015-05-22</date>
		<location>sparta</location>
		<info><![CDATA[Väga väsinud olemine oli, otsustasin teha ainult 2 harjutust]]></info>
	</workoutInfo>
	<exercises>
		<exercise>
			<exerciseInfo>
				<name exerciseId="1">squat</name>
				<info><![CDATA[Ilma vööta]]></info>
			</exerciseInfo>
			<sets>
				<set nr="1">
					<weight unit="kg">110</weight>
					<goal>5</goal>
					<reps>5</reps>
					<rpe>8</rpe>
					<info/>
				</set>
				<set nr="2">
					<weight unit="kg">110</weight>
					<goal>5</goal>
					<reps>5</reps>
					<rpe>9</rpe>
					<info/>
				</set>
				<set nr="3">
					<weight unit="kg">110</weight>
					<goal>5</goal>
					<reps>4</reps>
					<rpe>9.5</rpe>
					<info><![CDATA[Viimane oli väga aeglane]]></info>
				</set>
			</sets>
		</exercise>		
		<exercise>
			<exerciseInfo>
				<name exerciseId="2">bench press</name>
				<info><![CDATA[Pausiga]]></info>
			</exerciseInfo>
			<sets>
				<set nr="1">
					<weight unit="kg">90</weight>
					<goal>3</goal>
					<reps>3</reps>
					<rpe>8</rpe>
					<info/>
				</set>
				<set nr="2">
					<weight unit="kg">90</weight>
					<goal>3</goal>
					<reps>3</reps>
					<rpe>8</rpe>
					<info/>
				</set>
				<set nr="3">
					<weight unit="kg">90</weight>
					<goal>3</goal>
					<reps>3</reps>
					<rpe>9</rpe>
					<info/>
				</set>
				<set nr="4">
					<weight unit="kg">90</weight>
					<goal>3</goal>
					<reps>3</reps>
					<rpe>9</rpe>
					<info/>
				</set>
				<set nr="5">
					<weight unit="kg">90</weight>
					<goal>3</goal>
					<reps>2</reps>
					<rpe>9.5</rpe>
					<info><![CDATA[Ei riksinud viimast enam üritada]]></info>
				</set>
			</sets>
		</exercise>
	</exercises>
</workout>

XSD fail

<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="workout">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="workoutInfo">
          <xs:complexType>
            <xs:sequence>
              <xs:element type="xs:date" name="date"/>
              <xs:element type="xs:string" name="location"/>
              <xs:element type="xs:string" name="info"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="exercises">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="exercise" maxOccurs="unbounded" minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="exerciseInfo">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="name">
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:extension base="xs:string">
                                  <xs:attribute type="xs:unsignedInt" name="exerciseId" use="required"/>
                                </xs:extension>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element type="xs:string" name="info"/>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="sets">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="set" maxOccurs="unbounded" minOccurs="0">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="weight">
                                  <xs:complexType>
                                    <xs:simpleContent>
                                      <xs:extension base="xs:unsignedInt">
                                        <xs:attribute type="xs:string" name="unit" use="optional"/>
                                      </xs:extension>
                                    </xs:simpleContent>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element type="xs:unsignedInt" name="goal"/>
                                <xs:element type="xs:unsignedInt" name="reps"/>
                                <xs:element type="xs:float" name="rpe"/>
                                <xs:element type="xs:string" name="info"/>
                              </xs:sequence>
                              <xs:attribute type="xs:unsignedInt" name="nr" use="optional"/>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XSLT fail

<?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>Tehtud harjutused</Title>
			</head>
			<body>
				<table>
					<tr>
						<td><b>Harjutuse nimi</b></td>
						<td><b>Raskus</b></td>
						<td><b>Korduste arv</b></td>
					</tr>
					<xsl:for-each select="workout/exercises/exercise">
						<xsl:variable name="exerciseName" select="exerciseInfo/name"/>
						<xsl:for-each select="sets/set">
							<tr>
								<td>
									<xsl:value-of select="$exerciseName"/>
								</td>
								<td>
									<xsl:value-of select="weight"/>
								</td>
								<td>
									<xsl:value-of select="reps"/>
								</td>
							</tr>
						</xsl:for-each>
					</xsl:for-each>
				</table>
			</body>
		</html>
	</xsl:template>
</xsl:stylesheet>

XML retsensioonid

Backbone

XML

XML faili struktuur on loogilise üleehitusega, piisavalt sügav ning mugavalt loetav - erinevad väärtused annavad väga selge ettekujutuse mida mingi atribuut või element tähendab. Struktuur võimaldab ka lihtsalt analüüsi muude vahenditega.

XSD

XSD fail kirjeldab XML struktuuri hästi ning on samuti enam kui piisav. Ainukest küsimust tekitab rowNumber-i tüüp byte. Ei tundu nagu olevat mingit põhjust miks see ei võiks olla int, et katta väga äärmised olukorrad kus ridade arv on üle byte piiride (vähe usutav olukord, aga teoreetiliselt täiesti võimalik).

XSL

XSL fail näitab väga ilusti kuidas on olemasolevast XML struktuurist võimalik ilusti välja eraldada kindlad andmed.


IT

XML

Andmefail on piisavalt sügav ja väga selge ning loogilise ehitusega. Juba kiire pilguheit sellele ei tekita probleeme arusaamise või tõlgendamise osas - samuti tundub see olevat väga lihtne programmi abil analüüsida.

XSD

Skeemifaili kohta ei oskagi midagi muud kirjutada kui et see on täiesti piisav andmefaili struktuuri kirjledamiseks ning on väga selge lugeda.

XSL

XSL näited demonstreerivad väga hästi, kuidas antud andmestruktuuri puhul on väga mugav ja lihtne erinevas vormingus/grupeeringus andmeid väljastada.


Rakendused

Veebi API

Raamatupoe vägagi lihtsustatud lahendus.

Failid

Kliendi rakendus

Tegemist on tehtud Bing otsingu API peale ehitatud kliendiga. Kuna see on seotud tasuta MS poolt väljastatud võtmega, mis on piiratud 5K päringu peale, siis suure hulga päringute peale võib see lakata töötamast!

Failid