Cursus XML: deel 7
Had jij altijd al willen weten wat XML is? Of behoor je tot de mensen, waar ik me in het verleden ook onder schaarde, die dachten dat dit weer een commerciële truuk is, die nog in de kinderschoenen staat van de grote firma MicroSoft, om de markt een verbeterde standaard te brengen? Nu, dan is deze cursus precies wat jij nodig hebt.
In deze cursus van zeven delen, gaan we alleen de basis behandelen. We gaan kijken waar XML nu vandaan komt, wat SGML is, hoe je van HTML naar XML gaat en wat XML is. Dan gaan we XML pagina's maken en we gaan ook de koppeling zien van XML en CSS. Aan het eind van deze cursus kan je dan ook een echte webpagina maken met dynamische inhoud.
XML deel 7 eXtensible Style Language (XSL).
We gaan XSL bekijken, dit is namelijk de grote kracht van XML. We gaan data filteren en sorteren en in een HTML-structuur plaatsen.
Wat is XSL?
- XSL staat voor eXtensible Style Language.
- Met XSL kan je:
- Opmaak voorzien aan een XML document.
- XML naar HTML omzetten.
- Elementen sorteren, selecteren en filteren.
- Nieuwe elemente toevoegen.
- Elementen verbergen.
- XSL heeft meerdere mogelijkheden als CSS.
- XSL en CSS zijn twee verschillende gereedschappen om documenten weer te geven.
We geven hier alleen een inleiding op XSL om documenten te transformeren: XSLT. Het tweede type XSL is XSL-FO (FOrmat). Deze opmaaktaal is zeer uitgebreid, maar wordt helaas nog niet echt ondersteund door de browsers.
XSL toevoegen aan het XML document:
<?xml-stylesheet type="text/xsl" href="boekenkast.xsl"?>
XML omzetten naar HTML:
In een XSL document kan u gebruik maken van zowel HTML als XML-tags. Zo kan je bijvoorbeeld de gegevens in een tabel tonen. Door namespaces te gebruiken tussen de HTML-tags, kunnen we de elementen aanspreken.
- Server-side en cliënt-side script:
- Server-side <--> cliënt-side
Bij een groot aantal data in het XML-bestand, wordt het moeilijk voor de bezoeker om een bepaald boek te zoeken.
Dan is het mogelijk om via XSL te selecteren of te filteren.
Dit kan op twee manieren,
- server-side
- cliënt-side.
We bespreken hier enkel cliënt-side.
Namespaces:
XML-declaratie, is verplicht tot tegenstelling van DTD:
<?xml version="1.0" ?>
Begin van de stylesheet:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" >
Begin van het root-element:
<xsl:template match="/">
Openen van een template, die van het bestand komt:
<xsl:template select="boekenkast/boek" />
Het sluiten van de template tag:
</xsl:template>
Begin van de template:
<xsl:template match="boekenkast/boek">
Elk element dat wordt getoond:
<xsl:value-of select="ISBN" />
Einde van de stylesheet:
<xsl:stylesheet>
Zie voorbeelden: vb01.
Gegevens selecteren & sorteren:
Om te selecteren hebben we volgende selectiemethodes:
xsl:for-each
zorgt ervoor dat de gegevens in een loop worden doorlopen
xsl:if
zorgt voor een voorwaardelijke uitvoer
xsl:sort
zorgt voor sortering van de uitvoering
Gegevens sorteren:
Selecteren op een bepaald element, + geeft aan dat er oplopend wordt gesorteerd:
<xsl:for-each select="boekenkast/boek" order-by="+ titel">
Volgend voorbeeld werkt ook:
<xsl:apply-templates select="boekenkast/boek" order-by="+ titel">
Zie voorbeelden: vb02.
Selecteren op een bepaald attribuut, zonder opgave wordt er oplopend gesorteerd:
<xsl:apply-templates select="boekenkast/boek" order-by="auteur/@anaam" />
Zie voorbeelden: vb03 en vb04.
Aflopend selecteren:
<xsl:apply-templates select="boekenkast/boek" order-by="- auteur/@anaam" />
Zie voorbeelden: vb05.
We maken hier gebruik van een if-strutuur:
<xsl:template match="boekenkast/boek">
<xsl:if
match=".[auteur='Harry
Heijkoop']">
<tr>
<td><xsl:value-of select="isbn"
/></td>
<td><xsl:value-of select="titel"
/></td>
<td><xsl:value-of select="auteur"
/></td>
</tr>
</xsl:if>
</xsl:template>
Operatoren voor een if-structuur:
| Operator | Betekenis |
| = | is gelijk aan |
| != | is niet gelijk aan |
| <& | is kleiner dan |
| >& | is groter dan |


