XSL: XSLT & XSL-FO - KU Leuvenjoost.vennekens/DN/xml... · 2017. 5. 6. · In client-server SERVER...

15
XSL: XSLT & XSL-FO [email protected]

Transcript of XSL: XSLT & XSL-FO - KU Leuvenjoost.vennekens/DN/xml... · 2017. 5. 6. · In client-server SERVER...

Page 1: XSL: XSLT & XSL-FO - KU Leuvenjoost.vennekens/DN/xml... · 2017. 5. 6. · In client-server SERVER XML XSL CLIENT HTML • Server kant: een script op de server verwerkt een XML-en

XSL: XSLT & XSL-FO

[email protected]

Page 2: XSL: XSLT & XSL-FO - KU Leuvenjoost.vennekens/DN/xml... · 2017. 5. 6. · In client-server SERVER XML XSL CLIENT HTML • Server kant: een script op de server verwerkt een XML-en

XSLT

XML XMLXSLT

Waarom? Gegevens in formaat brengen dat toepassing nodig heeft

Page 3: XSL: XSLT & XSL-FO - KU Leuvenjoost.vennekens/DN/xml... · 2017. 5. 6. · In client-server SERVER XML XSL CLIENT HTML • Server kant: een script op de server verwerkt een XML-en

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"?>

Page 4: XSL: XSLT & XSL-FO - KU Leuvenjoost.vennekens/DN/xml... · 2017. 5. 6. · In client-server SERVER XML XSL CLIENT HTML • Server kant: een script op de server verwerkt een XML-en

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"?>

Page 5: XSL: XSLT & XSL-FO - KU Leuvenjoost.vennekens/DN/xml... · 2017. 5. 6. · In client-server SERVER XML XSL CLIENT HTML • Server kant: een script op de server verwerkt een XML-en

Bouwstenen

Template (patroon)

Structuur met daarin plaatshouders

Plaatshouders worden vervangen door geschikte elementen

Bijvoorbeeld

Page 6: XSL: XSLT & XSL-FO - KU Leuvenjoost.vennekens/DN/xml... · 2017. 5. 6. · In client-server SERVER XML XSL CLIENT HTML • Server kant: een script op de server verwerkt een XML-en

Templates in XSL

Stukje XML code

met daarin plaatshouders

voor geschikte data uit XML invoer-document

Page 7: XSL: XSLT & XSL-FO - KU Leuvenjoost.vennekens/DN/xml... · 2017. 5. 6. · In client-server SERVER XML XSL CLIENT HTML • Server kant: een script op de server verwerkt een XML-en

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?

Page 8: XSL: XSLT & XSL-FO - KU Leuvenjoost.vennekens/DN/xml... · 2017. 5. 6. · In client-server SERVER XML XSL CLIENT HTML • Server kant: een script op de server verwerkt een XML-en

Voorbeelden

klanten.xml

brief1.xsl

brief6.xsl

Page 9: XSL: XSLT & XSL-FO - KU Leuvenjoost.vennekens/DN/xml... · 2017. 5. 6. · In client-server SERVER XML XSL CLIENT HTML • Server kant: een script op de server verwerkt een XML-en

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

Page 10: XSL: XSLT & XSL-FO - KU Leuvenjoost.vennekens/DN/xml... · 2017. 5. 6. · In client-server SERVER XML XSL CLIENT HTML • Server kant: een script op de server verwerkt een XML-en

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

Page 11: XSL: XSLT & XSL-FO - KU Leuvenjoost.vennekens/DN/xml... · 2017. 5. 6. · In client-server SERVER XML XSL CLIENT HTML • Server kant: een script op de server verwerkt een XML-en

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>

Page 12: XSL: XSLT & XSL-FO - KU Leuvenjoost.vennekens/DN/xml... · 2017. 5. 6. · In client-server SERVER XML XSL CLIENT HTML • Server kant: een script op de server verwerkt een XML-en

<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

Page 13: XSL: XSLT & XSL-FO - KU Leuvenjoost.vennekens/DN/xml... · 2017. 5. 6. · In client-server SERVER XML XSL CLIENT HTML • Server kant: een script op de server verwerkt een XML-en

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>

Page 14: XSL: XSLT & XSL-FO - KU Leuvenjoost.vennekens/DN/xml... · 2017. 5. 6. · In client-server SERVER XML XSL CLIENT HTML • Server kant: een script op de server verwerkt een XML-en

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

Page 15: XSL: XSLT & XSL-FO - KU Leuvenjoost.vennekens/DN/xml... · 2017. 5. 6. · In client-server SERVER XML XSL CLIENT HTML • Server kant: een script op de server verwerkt een XML-en

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/