XML/XSLT teooria

XML - Extensible Markup Language

  • XML-fail algab deklaratsiooniga: <?xml version="1.0" encoding="utf-8"?>
  • XML-failil on täpselt üks juurelement.
  • API-d kasutavad andmevahetuseks XML-faile.
  • RSS-uudised hoitakse XML-ina.
  • KML-kaardid põhinevad XML-il.
  • XML-i kasutatakse süsteemidevahelisel andmevahetusel.

XSLT - Extensible Stylesheet Language Transformations

  • XML -> XSLT -> HTML
  • XML -> XSLT -> tekst
  • XML -> XSLT -> teine XML
  • XSLT kasutab andmete valimiseks XPathi.
  • Brauser oskab XSLT-d ise rakendada (<?xml-stylesheet type="text/xsl" href="..."?>).
  • Serveris teeb teisenduse C# klass XslCompiledTransform.

XSLT elemendid

Element Kirjeldus Näide
xsl:template Mall, mis kirjeldab, mida teha sobiva elemendiga <xsl:template match="/">
xsl:apply-templates Rakendab malle valitud elementidele <xsl:apply-templates select="lapsed/inimene"/>
xsl:value-of Väljastab elemendi või avaldise väärtuse <xsl:value-of select="nimi"/>
xsl:for-each Tsükkel üle valitud elementide <xsl:for-each select="//inimene">
xsl:if Tingimuslause (ilma else-osata) <xsl:if test="@synd &gt; 1980">
xsl:choose / xsl:when / xsl:otherwise Mitme haruga tingimuslause (if / else if / else) <xsl:when test="@synd">
xsl:sort Sorteerib for-each või apply-templates tulemuse <xsl:sort select="@synd" order="descending"/>
xsl:param Parameeter, mille väärtuse saab anda väljastpoolt (nt C# koodist) <xsl:param name="otsing">ll</xsl:param>
xsl:variable Muutuja (väärtust muuta ei saa) <xsl:variable name="pikkus" select="string-length($otsing)"/>
xsl:attribute Lisab väljundelemendile atribuudi <xsl:attribute name="class">punane</xsl:attribute>

XSLT funktsioonid

Funktsioon Kirjeldus Näide Tulemus
count() Loeb elementide arvu count(lapsed/inimene) laste arv
sum() Liidab elementide väärtused sum(//toode/hind) kõikide hindade summa
substring() Võtab stringist osa (algus, pikkus) substring('Charles', 1, 1)
substring('Charles', 1, 3)
C
Cha
string-length() Tagastab stringi pikkuse string-length('William') 7
concat() Liidab stringid kokku concat('Anne', ' : ', 4) Anne : 4
starts-with() true, kui string algab antud väärtusega starts-with('Charles', 'C') true
contains() true, kui string sisaldab antud väärtust contains('William', 'll') true
position() Tagastab elemendi järjekorranumbri //inimene[position() = 1] esimene inimene
last() Tagastab viimase elemendi positsiooni //inimene[last()] viimane inimene
not() Pöörab tõeväärtuse ümber not(true()) false
true(), false() Tagastavad tõeväärtuse true või false true() true
normalize-space() Eemaldab tühikud algusest ja lõpust ning asendab mitu tühikut üheks normalize-space(' prints Harry ') prints Harry
translate() Asendab stringis tähed: translate(tekst, algsümbolid, asendussümbolid) translate('kass', 'ss', 'tt') katt