XML-XSLT-ASP.NET

Mis on XML?

  • XML (Extensible Markup Language) on andmete kirjeldamise keel, mis kasutab silte (tage).
  • Annab võimaluse salvestada ja edastada andmeid struktureeritud kujul.
  • Ei määra, kuidas andmeid kuvatakse, vaid ainult nende sisu ja struktuuri.
  • Näide:
<inimesed>
  <inimene synniaasta="1980" elukoht="Tallinn">
    <nimi>Jaan</nimi>
  </inimene>
  <inimene synniaasta="1990" elukoht="Tartu">
    <nimi>Anna</nimi>
  </inimene>
</inimesed>

Mis on XSLT?

  • XSLT (Extensible Stylesheet Language Transformations) on keel, millega teisendatakse XML-andmeid teiseks vorminguks (nt HTML, teine XML, tekst).
  • Töötleb XML-i reeglite (mallide) abil.
  • Kasutatakse sageli XML-i muutmiseks veebilehitsejas loetavaks HTML-iks.
  • Näide:
<xsl:output method="html" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">

	<h2>Sugupuu</h2>
	<table border="1" cellpadding="5" cellspacing="0" style="border-collapse: collapse;">
		<tr bgcolor="#ccc">
			<th>Vanema nimi</th>
			<th>Vanema sünniaasta</th>
			<th>Vanema elukoht</th>
			<th>Laste nimi</th>
			<th>Laste sünniaast</th>
			<th>Laste elukoht</th>
			<th>Laste arv</th>
		</tr>

		<xsl:apply-templates select="//inimene">
			<xsl:sort select="@synniaasta" data-type="number" order="ascending"/>
		</xsl:apply-templates>
	</table>


</xsl:template>
<xsl:template match="inimene">
	<xsl:variable name="lasteArv" select="count(lapsed/inimene)"/>

Mis on XML-skeem (XSD)?

  • XML Schema Definition (XSD) on spetsifikatsioon, mis määrab:
    • Millised elemendid ja atribuudid võivad XML-is olla.
    • Milline on nende andmetüüp (string, number, kuupäev jne).
    • Millises järjestuses elemendid esinevad.
    • Millised elemendid on kohustuslikud või valikulised.
  • Kasutatakse XML-i valideerimiseks (kontrollimiseks, kas XML vastab reeglitele).
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <!-- Корневой элемент -->
  <xs:element name="inimesed">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="inimene" maxOccurs="unbounded">
          <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:sequence>
    </xs:complexType>
  </xs:element>

</xs:schema>

Kuidas luua XML-skeemi (XSD)?

  1. Planeeri andmete struktuur – otsusta, millised elemendid ja andmetüübid on vajalikud.
  2. Loo XSD fail:
    • määra juurelement <xs:schema>;
    • lisa vajalikud elemendid <xs:element>;
    • vajadusel kasuta <xs:complexType> ja <xs:sequence> elementide hierarhia kirjeldamiseks.
  3. Seo XML fail skeemiga, lisades XML-i algusesse viite XSD-le.
  4. Kontrolli XML-i vastavust skeemile – seda toetavad paljud editorid ja tööriistad.