XML, XSLT ja XML-skeem

Mis on XML?

  • XML (Extensible Markup Language) on andmete kirjeldamise ja struktureerimise keel.
  • Kasutatakse andmete vahetamiseks, salvestamiseks ja edastamiseks.
  • Erinevalt HTML-ist ei kirjelda XML andmete väljanägemist, vaid nende sisu ja struktuuri.
  • Näide:
<?xml version="1.0" encoding="utf-8" ?>
<!-- Семейное древо -->
<sugupuu>
	<inimene saasta="1944" elukoht="Paldiski">
		<nimi>Tamara</nimi>
		<perekonnanimi>Zelenina</perekonnanimi>
		<lapsed>
			<inimene saasta="1966" elukoht="Tallinn">
				<nimi>Elena</nimi>
				<perekonnanimi>Sergeeva</perekonnanimi>
				<lapsed>
					<inimene saasta="1986" elukoht="Tallinn">
						<nimi>Natalia</nimi>
						<perekonnanimi>Volkova</perekonnanimi>
					</inimene>
				</lapsed>
			</inimene>
		</lapsed>
	</inimene>
</sugupuu>

🔹 Mis on XSLT?

  • XSLT (Extensible Stylesheet Language Transformations) on keel, mida kasutatakse XML-dokumentide teisendamiseks.
  • Võimaldab muuta XML-i näiteks:
    • HTML-leheks (veebis kuvamiseks)
    • Teiseks XML-struktuuriks
    • Tekstifailiks või muuks väljundiks
  • Kasutab XSL stiililehte, mis määrab, kuidas XML-elemente tuleb töödelda.

Näide: XML teisendamine HTML-i

<?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="xml" indent="yes"/>

	<xsl:key name="elukohtKey" match="inimene" use="@elukoht"/>
	
    <xsl:template match="/">
		<h2>Inimeste andmed</h2>
		<table border="1">
			<tr>
				<th>Nimi</th>
				<th>Perekonnanimi</th>
				<th>SünniAasta</th>
				<th>Vanus</th>
				<th>Elukoht</th>
				<th>Laste arv</th>
				<th>Lapsed</th>
			</tr>
			<xsl:for-each select="//inimene">
				<xsl:variable name="nimi" select="nimi"/>
				<xsl:variable name="lasteArv" select="count(lapsed/inimene)"/>
				<tr>
					<td><xsl:value-of select="$nimi"/></td>
					<td><xsl:value-of select="perekonnanimi"/></td>
					<td><xsl:value-of select="@saasta"/></td>
					<td><xsl:value-of select="2025 - number(@saasta)"/></td>
					<td><xsl:value-of select="@elukoht"/></td>
					<td><xsl:value-of select="$lasteArv"/></td>
					<td>
						<xsl:for-each select="lapsed/inimene">
							<xsl:value-of select="nimi"/>
							<xsl:if test="position()!=last()">, </xsl:if>
						</xsl:for-each>
					</td>
				</tr>
			</xsl:for-each>
		</table>
	</xsl:template>
</xsl:stylesheet>

🔹 Mis on XML-skeem (XSD)?

  • XML-skeem (XSD – XML Schema Definition) määrab, milline peab XML dokumendi struktuur olema.
  • Kirjeldab:
    • Millised elemendid ja atribuudid on lubatud
    • Millised andmetüübid on (nt number, kuupäev, tekst)
    • Millised elemendid peavad esinema ja millised on valikulised
  • Tagab XML-andmete korrektsuse ja valideeritavuse.
<sugupuu xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="sugupuu.xsd">
  <inimene saasta="1944" elukoht="Paldiski">
    <nimi>Tamara</nimi>
    <perekonnanimi>Zelenina</perekonnanimi>
  </inimene>
</sugupuu>

🔹 Kuidas XML-skeemi luua?

  1. Määratle XML struktuur (millised elemendid ja atribuudid vaja).
  2. Kirjuta XSD-fail, kus kirjeldad elemendid, nende tüübid ja järjekorra.
  3. Valideeri XML skeemi vastu spetsiaalse tööriista või tarkvaraga.

Sugupuu

  1. Tõsta punasega esile nimi, mis sisaldab tähte “A”
  2. Tee tabel, kus on näidatud vanaemad ja nende lapselapsed.
  3. Lisa tabel kellelon auto ja autode nimi.

image

image