Upload
others
View
7
Download
0
Embed Size (px)
XSLT
XML XMLXSLT
Waarom? Gegevens in formaat brengen dat toepassing nodig heeft
BestandenXSL bestand
XML invoerbestand
XML uitvoerbestand
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
In client-server
SERVER
XML
XSL
CLIENT
HTML
• Server kant: een script op de server verwerkt een XML-en een XSL-bestand tot een HTML-bestand en stuurt dit door naar de client.
SERVER
XML
XSL
HTML
CLIENT
HTML
1.6 Toepassingen van XML
XML kent vele toepassingsgebieden, aangezien het een zeer breed inzetbare technologie is. Bin-nen de XML-wereld zijn er traditioneel twee onderverdelingen: de data-wereld en de document-wereld.
• Bij de eerste invalshoek wordt XML gebruikt om gegevens op te slaan of uit te wisselen dievroeger uitsluitend in databanken terug te vinden waren, zoals financiele gegevens, klanten-records en stockinformatie. Dit zijn typisch gegevens die zeer sterk kunnen gestructureerdworden en die in kleine stukjes kunnen worden opgekapt.
• De document-wereld gebruikt XML om tekst-georienteerde informatie op te slaan of uit tewisselen, zoals boeken of krantenartikels. Deze informatie is ook goed te structureren, maarzal doorgaans in veel grotere stukken verdeeld worden (hoofdstukken, paragrafen, alinea’s,...).
Het volgende schema geeft een aantal belangrijke toepassingsgebieden van XML aan:
XML maken
XML modelleringDTD - SchemaparsingXML editorstransformatie
Content managementVersiebeheerKnowledge management
Data stockeren
Data stockeren
XML en databankenXML Query
Uitwisselen
e-commerceweb-servicessecurityapplicatie-integratie
SOAP
Zoeken
Navigeren
Filteren
Adressering: XPATHLinking: XLINKMeta-data /Ontologien: RDF
Topix Maps: XTMSemantic Web
Publiceren
transformatie: XSLTWeb: XHTML, XFORMSWAP: WMLPrint: XSL:FOMultimedia: SMIL,
SVG, MathML
12
SERVER
XML
XSL
CLIENT
HTML
• Server kant: een script op de server verwerkt een XML-en een XSL-bestand tot een HTML-bestand en stuurt dit door naar de client.
SERVER
XML
XSL
HTML
CLIENT
HTML
1.6 Toepassingen van XML
XML kent vele toepassingsgebieden, aangezien het een zeer breed inzetbare technologie is. Bin-nen de XML-wereld zijn er traditioneel twee onderverdelingen: de data-wereld en de document-wereld.
• Bij de eerste invalshoek wordt XML gebruikt om gegevens op te slaan of uit te wisselen dievroeger uitsluitend in databanken terug te vinden waren, zoals financiele gegevens, klanten-records en stockinformatie. Dit zijn typisch gegevens die zeer sterk kunnen gestructureerdworden en die in kleine stukjes kunnen worden opgekapt.
• De document-wereld gebruikt XML om tekst-georienteerde informatie op te slaan of uit tewisselen, zoals boeken of krantenartikels. Deze informatie is ook goed te structureren, maarzal doorgaans in veel grotere stukken verdeeld worden (hoofdstukken, paragrafen, alinea’s,...).
Het volgende schema geeft een aantal belangrijke toepassingsgebieden van XML aan:
XML maken
XML modelleringDTD - SchemaparsingXML editorstransformatie
Content managementVersiebeheerKnowledge management
Data stockeren
Data stockeren
XML en databankenXML Query
Uitwisselen
e-commerceweb-servicessecurityapplicatie-integratie
SOAP
Zoeken
Navigeren
Filteren
Adressering: XPATHLinking: XLINKMeta-data /Ontologien: RDF
Topix Maps: XTMSemantic Web
Publiceren
transformatie: XSLTWeb: XHTML, XFORMSWAP: WMLPrint: XSL:FOMultimedia: SMIL,
SVG, MathML
12
http://www.w3.org/1999/XSL/Transform
<?xml-stylesheet type="text/xsl" href="stylesheet.xsl"?>
Bouwstenen
Template (patroon)
Structuur met daarin plaatshouders
Plaatshouders worden vervangen door geschikte elementen
Bijvoorbeeld
Templates in XSL
Stukje XML code
met daarin plaatshouders
voor geschikte data uit XML invoer-document
Bijvoorbeeld
<klantenbestand><klant>
<naam> Joost Vennekens </naam><adres> ... </adres> ...
</klant></klantenbestand>
<brief><aanspreking> Beste xxx, </aanspreking><inhoud> Wij zijn een toffe bank! </inhoud>
</brief>
Hoe?
Voorbeelden
klanten.xml
brief1.xsl
…
brief6.xsl
Oplossing: XPath
<xsl:template match="/klantenbestand/klant"><brief>
<aanspreking> Beste <xsl:value-of select=“naam”/>, </aanspreking><inhoud> Wij zijn een toffe bank! </inhoud>
</brief></xsl:template>
resultaat
Iteratie
<xsl:template match=“/klantenbestand"> <brieven><xsl:for-each select=“klant”>
<brief><aanspreking> Beste <xsl:value-of select=“naam”/>, </aanspreking><inhoud> Wij zijn een toffe bank! </inhoud>
</brief></xsl:for-each></brieven>
</xsl:template>resultaat
Sorteren<xsl:template match="/klantenbestand">
<xsl:for-each select=“klant”/><brief>
<xsl:sort select=“naam”/> <aanspreking> Beste <xsl:value-of select=“naam”/>, </aanspreking><inhoud> Wij zijn een toffe bank! </inhoud>
</brief></xsl:for-each>
</xsl:template>
<xsl:template match="/klantenbestand"><xsl:for-each select=“klant”/><brief>
<aanspreking> Beste <xsl:value-of select=“naam”/>, </aanspreking><inhoud> Wij zijn een toffe bank! <xsl:if test=“adres/text()=‘De Nayer’”/> Maar u heeft waarschijnlijk toch geen geld...</xsl:if></inhoud></brief>
</xsl:for-each></xsl:template>
Testen
resultaat
Testen (2)
<xsl:choose><xsl:when test=“adres/text()='De Nayer'”/>Maar u heeft waarschijnlijk toch geen geld...</xsl:when><xsl:when test=“adres/text()='EU'”/>U bent heel welkom!</xsl:when><xsl:otherwise>Hoeveel verdient u zoal?</xsl:otherwise>
</xsl:choose>
Templates Oproepren<xsl:template match="/klantenbestand/klant"><brief>
<aanspreking> Beste <xsl:apply-templates select="naam"/>, </aanspreking><inhoud> Wij zijn een toffe bank! </inhoud>
</brief></xsl:template><xsl:template match="naam"> <b> <xsl:value-of select="."/> </b></xsl:template>
resultaat
Voorbeelden
liedjes.xls/Users/joost/Sites/xsl/xsl-vbn
Enquete /Users/joost/Box/DeNayer/Enquete/http://telescript.denayer.wenk.be/~jve/enquete/enquete-it.html
Terminal /Users/joost/EXperT/