XML-XSLT-ASP.NET

Mis on XML?

  • XML (Extensible Markup Language) – see on keel, mis aitab esitada andmeid struktureeritud kujul.
  • Seda kasutatakse paljudes valdkondades: alates veebiteenuste ja süsteemide vahelisest andmevahetusest kuni tarkvara seadistusfailideni.
  • Oluline on, et XML ei tegele andmete kujunduse või visuaalse esitusega – ta määratleb ainult andmete tähenduse ja ülesehituse.
  • Näide:
<inimene saasta="1950">
	<nimi>Zoja Gribanova</nimi>
	<elukoht>Tallinn</elukoht>
	<lapsed>
</inimene>

Mis on XSLT?

XSLT (Extensible Stylesheet Language Transformations) on spetsiaalne keel, millega saab XML-andmeid töödelda ja teisendada.

Selle abil on võimalik XML-i sisu muuta erinevatesse vormingutesse – näiteks HTML-lehtedeks, teiseks XML-struktuuriks või lihtsaks tekstiks.

Näide: kui XML-failis on toodete loetelu e-poe jaoks, siis XSLT võib need andmed kuvada kasutajasõbraliku HTML-tabelina veebilehel.

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

<xsl:output method="html" encoding="utf-8"/>

<xsl:template match="/">

<h2>Meie sugupuu</h2>

<table border="1" cellpadding="4" cellspacing="0">
<tr>
<th>Nimi</th>
<th>Sünniaasta</th>
<th>Vanus 2025</th>
<th>Lapsed</th>
<th>Elukoht</th>
</tr>

<xsl:for-each select="//inimene">
<tr>
<td>
  <xsl:choose>
    <xsl:when test="(contains(nimi,'a') or contains(nimi,'A')) and count(lapsed/inimene)>=2">
      <span style="color:red;background:yellow"><xsl:value-of select="nimi"/></span>
    </xsl:when>
    <xsl:when test="contains(nimi,'a') or contains(nimi,'A')">
      <span style="color:red"><xsl:value-of select="nimi"/></span>
    </xsl:when>
    <xsl:when test="count(lapsed/inimene)>=2">
      <span style="background:yellow"><xsl:value-of select="nimi"/></span>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="nimi"/>
    </xsl:otherwise>
  </xsl:choose>
</td>

Mis on XML-skeem (XSD)?

  • XML-skeem (XSD – XML Schema Definition) määrab reeglid, mille järgi XML-dokumendid peavad olema koostatud.
  • Skeem täpsustab:
  • milliseid elemente on lubatud kasutada;
  • milliseid andmetüüpe võib neis esineda (nt tekst, arv, kuupäev);
  • kuidas peavad elemendid omavahel seostuma ja milline on dokumentide ülesehitus.
  • Näide: XSD-fail võib ette kirjutada, et e-poe XML-is peab igal tootel olema nimi (string), hind (number) ja lisamise kuupäev (date). määrab ära:
    • millised elemendid on lubatud;
    • millised andmetüübid (nt string, number, kuupäev);
    • milline struktuur peab olema.

      Näide XSD failist:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="inimene">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="nimi" type="xs:string"/>
        <xs:element name="vanus" type="xs:integer"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Kuidas luua XML-skeemi?

  1. XSD (XML Schema Definition) kasutatakse selleks, et panna paika, milline XML peab välja nägema.
  2. Sammud skeemi loomiseks:
  3. Mõtle läbi struktuur – millised elemendid, millised andmetüübid (nt string, int, date).
  4. Kirjuta XSD-fail:
    • kasuta juurelemendina <xs:schema>;
    • kirjuta elemendid <xs:element>;
    • keerukamate juhtude jaoks kasuta <xs:complexType> ja <xs:sequence>.
  5. Seo XML skeemiga – lisa XML-faili alguses viide loodud XSD-le.
  6. Valideeri – ava fail editoris või tööriistas, mis kontrollib XML-i vastavust skeemile.
  7. Sellisel viisil tagad, et XML-dokumendid on ühtlase struktuuriga ja vigadeta.

Minu Github töö: https://github.com/Waterdud/xmlRakendus