Hello Kitty

From ICO wiki
Revision as of 00:59, 4 March 2012 by Hparn (talk | contribs) (Created page with '=== XML === <pre> <?xml version="1.0" encoding="UTF-8" standalone="no" ?> <matches xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="game_matc…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

XML

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

<matches xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="game_matches.xsd">  
  <match id="1" type="tdm" duration="00:40:33" created="2002-09-24-17:31">
		<teams>
			<team name="red" victorious="false" score="885">
				<players>
					<player id="1" name="Anissa" score="614" victorious="false" />
					<player id="2" name="Jesus" score="157" victorious="false" />
					<player id="3" name="Erick" score="17" victorious="false" />
					<player id="4" name="Verena" score="97" victorious="false" />
				</players>
			</team>
			<team name="blue" victorious="true" score="2682">
				<players>
					<player id="5" name="Fredric" score="729" victorious="true" />
					<player id="6" name="Lynda" score="573" victorious="true" />
					<player id="7" name="Ingrid" score="958" victorious="true" />
					<player id="8" name="Charmaine" score="422" victorious="true" />
				</players>
			</team>
		</teams>
	</match>
	<match id="2" type="dm" duration="00:31:10" created="2002-09-23-14:10">
		<players>
			<player id="9" name="Rosa" score="24" victorious="false" />
			<player id="10" name="Jolyn" score="85" victorious="true" />
			<player id="11" name="Kristyn" score="61" victorious="false" />
		</players>
	</match>
	<match id="3" type="dm" duration="00:25:50" created="2002-09-24-16:05">
		<players>
			<player id="2" name="Jesus" score="67" victorious="false" />
			<player id="1" name="Anissa" score="106" victorious="true" />
			<player id="6" name="Lynda" score="99" victorious="false" />
		</players>
	</match>
	<match id="4" type="tdm" duration="00:51:19" created="2002-09-25-23:31">
		<teams>
			<team name="red" victorious="true" score="1882">
				<players>
					<player id="1" name="Anissa" score="1005" victorious="true" />
					<player id="2" name="Jesus" score="794" victorious="true" />
					<player id="3" name="Erick" score="81" victorious="true" />
					<player id="4" name="Verena" score="2" victorious="true" />
				</players>
			</team>
			<team name="blue" victorious="false" score="1560">
				<players>
					<player id="5" name="Fredric" score="710" victorious="false" />
					<player id="6" name="Lynda" score="496" victorious="false" />
					<player id="7" name="Ingrid" score="194" victorious="false" />
					<player id="8" name="Charmaine" score="160" victorious="false" />
				</players>
			</team>
		</teams>
	</match>
</matches>

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="matches">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" name="match">
          <xs:complexType>
            <xs:sequence>
              <xs:element minOccurs="0" name="players">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element maxOccurs="unbounded" name="player">
                      <xs:complexType>
                        <xs:attribute name="id" type="xs:unsignedInt" use="required" />
                        <xs:attribute name="name" type="xs:string" use="required" />
                        <xs:attribute name="score" type="xs:unsignedInt" use="required" />
                        <xs:attribute name="victorious" type="xs:boolean" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element minOccurs="0" name="teams">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element minOccurs="2" maxOccurs="unbounded" name="team">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="players">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element maxOccurs="unbounded" name="player">
                                  <xs:complexType>
                                    <xs:attribute name="id" type="xs:unsignedInt" use="required" />
                                    <xs:attribute name="name" type="xs:string" use="required" />
                                    <xs:attribute name="score" type="xs:unsignedInt" use="required" />
                                    <xs:attribute name="victorious" type="xs:boolean" use="required" />
                                  </xs:complexType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="name" type="xs:string" use="required" />
                        <xs:attribute name="victorious" type="xs:boolean" use="required" />
                        <xs:attribute name="score" type="xs:unsignedInt" use="required" />
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:attribute name="id" type="xs:unsignedInt" use="required" />
            <xs:attribute name="type" type="xs:string" use="required" />
            <xs:attribute name="duration" type="xs:time" use="required" />
            <xs:attribute name="created" type="xs:date" use="required" />
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

XSLT

<?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" encoding="utf-8" />
  <xsl:template match="/">
    <xsl:text disable-output-escaping="yes">
      <!DOCTYPE html>
    </xsl:text>
    <html>
      <body>
        <h2>Game matches:</h2>        
          <xsl:for-each select="matches/match">
            <table border="1" style="margin: 10px; float: left;">
            <xsl:choose>
              <xsl:when test="@type = 'tdm'">                                
                  <tr style="background-color: #917A56;">
                    <th>Player</th>
                    <th>Team</th>
                    <th>Score</th>
                    <th>Victorious</th>
                  </tr>
                <xsl:for-each select="teams/team">
                  <xsl:for-each select="players/player">
                    <xsl:choose>
                      <xsl:when test="position() mod 2 = 0">
                        <xsl:text disable-output-escaping="yes">
                        <tr style="background-color: #FEFFC2;">
                      </xsl:text>
                      </xsl:when>
                      <xsl:otherwise>
                        <xsl:text disable-output-escaping="yes">
                        <tr style="background-color: #B4BA6C;">
                      </xsl:text>
                      </xsl:otherwise>
                    </xsl:choose>
                    <td>
                      <xsl:value-of select="@name" />
                    </td>
                    <td>
                      <xsl:value-of select="../../@name" />
                    </td>
                    <td>
                      <xsl:value-of select="@score" />
                    </td>
                    <td>
                      <xsl:value-of select="@victorious"/>
                    </td>
                    <xsl:text disable-output-escaping="yes">
                      </tr>
                    </xsl:text>
                  </xsl:for-each>                  
                </xsl:for-each>
              </xsl:when>
              <xsl:otherwise>
                <tr style="background-color: #917A56;">
                  <th>Player</th>
                  <th>Score</th>
                  <th>Victorious</th>
                </tr>
                <xsl:for-each select="players/player">
                  <xsl:choose>
                    <xsl:when test="position() mod 2 = 0">
                      <xsl:text disable-output-escaping="yes">
                        <tr style="background-color: #FEFFC2;">
                      </xsl:text>
                    </xsl:when>
                    <xsl:otherwise>
                      <xsl:text disable-output-escaping="yes">
                        <tr style="background-color: #B4BA6C;">
                      </xsl:text>
                    </xsl:otherwise>                    
                  </xsl:choose>
                  <td>
                    <xsl:value-of select="@name" />
                  </td>
                  <td>
                    <xsl:value-of select="@score" />
                  </td>
                  <td>
                    <xsl:value-of select="@victorious"/>
                  </td>
                  <xsl:text disable-output-escaping="yes">
                    </tr>
                  </xsl:text>
                </xsl:for-each>
              </xsl:otherwise>
            </xsl:choose>
            </table>
          </xsl:for-each>       
      </body>
    </html>
  </xsl:template>
</xsl:stylesheet>  
<?xml version="1.0" encoding="utf-8"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" encoding="utf-8" indent="yes" />
  <xsl:template match="/">
    <matches>
      <xsl:for-each select="matches/match">
        <xsl:choose>
          <xsl:when test="@type = 'tdm'">
            <match>
              <xsl:attribute name="id">
                <xsl:value-of select="@id" />
              </xsl:attribute>
              <xsl:attribute name="type">
                <xsl:value-of select="@type" />
              </xsl:attribute>
              <xsl:attribute name="duration">
                <xsl:value-of select="@duration" />
              </xsl:attribute>
              <xsl:attribute name="created">
                <xsl:value-of select="@created" />
              </xsl:attribute>
              <teams>
                <xsl:for-each select="teams/team">
                  <team>
                    <xsl:attribute name="name">
                      <xsl:value-of select="@name" />
                    </xsl:attribute>
                    <xsl:attribute name="victorious">
                      <xsl:value-of select="@victorious" />
                    </xsl:attribute>
                    <xsl:attribute name="score">
                      <xsl:value-of select="@score" />
                    </xsl:attribute>
                    <players>
                      <xsl:for-each select="players/player">
                        <player>
                          <xsl:attribute name="id">
                            <xsl:value-of select="@id" />
                          </xsl:attribute>
                          <xsl:attribute name="name">
                            <xsl:value-of select="@name" />
                          </xsl:attribute>
                          <xsl:attribute name="victorious">
                            <xsl:value-of select="@victorious" />
                          </xsl:attribute>
                          <xsl:attribute name="score">
                            <xsl:value-of select="@score" />
                          </xsl:attribute>
                        </player>
                      </xsl:for-each><!-- FOREACH PLAYER ENDS HERE -->
                    </players>
                  </team>
                </xsl:for-each><!-- FOREACH TEAM ENDS HERE -->
              </teams>                                  
            </match>
          </xsl:when>
        </xsl:choose>
      </xsl:for-each><!-- FOREACH MATCH ENDS HERE -->   
    </matches>
  </xsl:template>
</xsl:stylesheet>