Download - Les 8 : XSLT modulariteit
![Page 1: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/1.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Les 8 : XSLTmodulariteit
![Page 2: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/2.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
vandaag
Waar zijn we eigenlijk mee bezig studiedossier
Korte herhaling van het voorafgaande XSLT templates versie 1.0
Modulariteit XSLT templates versie 2.0
![Page 3: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/3.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
StudieDossier
Inhoud coderen in XML ( StudiedossierStandaard ) Vormgeving coderen in XSLT stylesheets
Rationale Scheiding van inhoud en presentatie
Presentatie gemakkelijk aan te passen Meerdere presentatievormen/selecties mogelijk
Portfolio, flash, PDF
Inhoud gemakkelijk te onderhouden Scripts voor indexeren van data in het archief
![Page 4: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/4.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
XML codering van het studiedossier: een bouwwerk van standaarden
Betekenis:
Structuur:
Tekst:
Digitaal:
Unicode
XML
IAM StudieDossier
Bits & Bytes
![Page 5: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/5.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
IAM studiedossier
De standaard voor de inhoud bestaat uit:
Directorystructuur waarin de inhouddocumenten geplaatst worden
Documentschema’s voor verschillende type inhouddocumenten Persoongegevens CV Projectinformatie Etc…..
Een kwestie van invullen volgens de xml schema’s.
![Page 6: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/6.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Studiedossier: Filestructuur Studiedossier
_stylesheets _schemas Profiel
Persoongegevens Cv Competenties Kennis_en_vaardigheden leerdoelen
Projecten voorIAM
Project1 project2
IAM-prop IAM-V1 IAM-V2 IAM-afstuderen
index.xmlsettings.xml
![Page 7: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/7.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Studiedossier: documentschema’s
Schema verwijzing in XML Validatie door editor Gebruik van XHTML / namespaces
Documentatie groepen xs:anyType enumeraties optioneel/verplicht/aantal
![Page 8: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/8.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
XML schema
Eenmaal een goede structuur voor je document gevonden, kan je die vastleggen in een XML schema.
Verschillende mogelijkheden: DTD, XSD, e.a.
Waarom je dat zou doen? Input validatie: XMLparsers kunnen automatisch controleren of
een bepaald document goed is gesctructureerd. Editorbesturing: de editor krijgt alleen toegestane optie te zien. Documentatie: zodat iedereen kan zien wat de bedoeling is.
Valide XML: xml document dat voldoet aan een bepaald schema.
![Page 9: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/9.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Presentatie van studiedossier met XSLT
XSLT templates voor hoe de inhoud moet worden weergegeven In webpagina. ( XHTML ) In MS Word document ( OOXML ) In OpenOfice document ( ODF ) In PDF ( FO )
XSLT ‘transformeert’ studiedossier XML naar ander XML formaat ( XHTML, OOXML, ODF, FO )
![Page 10: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/10.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
XSLT style sheets
Het presenteren van XML data in een XHTML pagina
XSLT/processor
Stylesheet.xsl
Data.xml Presentatie.htm
![Page 11: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/11.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
StudieDossier + XSLT templatesXSLT templates versie 1Les 6
Uitleg XML schema voor studiedossier Start eenvoudige XSLT voor enkelvoudige pagina
Les 7 ‘Regels toepassen’ vs ‘gaten vullen’
-----------------------------------------------------------Kerstvakantie-----------------------------------------------------------
XSLT templates versie 2Les 8
Hergebruik van templates’in meerdere pagina’s Document() functie , tbv navigatie en indexpagina Complexere Xpath
Les 9 Afmaken, problemen oplossen
Les 10 inleveren
![Page 12: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/12.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Studiedossier: te doen
XSLT templates versie 1.0 Begin met één profielpagina te vullen Daarna een projectpagina
Versie1:
Ga met eenvoudige stylesheets aan de gang
Dwz:
voor iedere type contentbestand, één XSLT stylesheet
![Page 13: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/13.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
XSLT style sheets
Het presenteren van XML data in een XHTML pagina
XSLT/processor
Stylesheet.xsl
Data.xml Presentatie.htm
![Page 14: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/14.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Basis XSLT: gaten vullen<xsl:stylesheet … … … … >
top element van een xsl stylesheet(overnemen uit voorbeeld)
<xsl:output … … … … />enkele specificaties met betrekking tot het output formaat(overnemen uit voorbeeld)
<xsl:template match=“/” >het hoofdtemplate
<xsl:value-of select=“een_xpath_expressie” />het selecteren van een waarde uit de xml-bron
<xsl:for-each select=“een_xpath_expressie” >het loopen door een lijst uit de xml-bron
![Page 15: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/15.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Basic XPathHet selecteren van een element:
/sd:student-info/sd:statement/sd:student-info/sd:person-name/sd:full-name
Relatieve paden (bijvoorbeeld in een for-each loop): ten opzichte van /sd:student-info/sd:contact/sd:adress
sd:streetsd:codesd:city
Lees ook intranet:XPathVoorBeginners.pdf
![Page 16: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/16.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
XSLT voor beginners
www.w3schools.com
![Page 17: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/17.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Huiswerk ( templates versie 1 )
1. Maak eenvoudige vormgeving voor je studiedossier in XHTM/CSS.
2. Vul één of meer profiel bestanden met echte gegevens.
3. Maak eenvoudige XSLT template voor profielbestanden naar de gekozen vormgeving.
TIP: begin met ‘persoonsinformatiepagina’
![Page 18: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/18.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
XSLT: regels toepassen
Een andere manier om naar XSLT te kijken
‘gaten vullen’ en ‘regels toepassen’ worden in combinatie toegepast.
![Page 19: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/19.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Gaten vullen vs regels toepassenGaten vullen: Template = een brok outputcode ( XHTML ) met ‘gaten’ die gevuld
worden uit de XML bron.
<xsl: value-of select=‘xpath’/>
Regels toepassen: Match-patronen ( selectors ) bepalen welk template wordt
toegepast op delen van de XML bron.
<xsl:apply-templates/>
<xsl:template match=‘xpath’> ...
</xsl:template>
![Page 20: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/20.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
voorbeeld
Een voorbeeld ter illustratie van de werking van regelgestuurde methode
Download voorbeeld En bestudeer de logica
![Page 21: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/21.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Match patronen
Speciaal geval:
<xsl:template match=‘/‘ >
Dit is altijd het eerste template dat wordt toegepast
![Page 22: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/22.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Conflict resolutieHet is mogelijk dat meerder templates van toepassing zouden kunnen
zijn. De XSLT engine kiest op basis van ‘prioriteit’
Laagste prioriteit: wild character *match = ‘*’ match = ‘ht:*’
Normale prioriteit: elementnaam of attribuutnaammatch = ‘sd:project’match = ‘@rating’
Hoogste prioriteit: element of attribuut met predicaatmatch = ‘sd:project-info [ sd:metadata/sd:type = ‘groepsopdracht’]’
![Page 23: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/23.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Ingebouwde default templates
<xsl:template match="*"><xsl:apply-templates/>
</xsl:template>Zorgt ervoor dat het gehele brondocument automatisch afgelopen wordt
<xsl:template match="text()"><xsl:value-of select="."/>
</xsl:template>Zorgt ervoor dat tekst binnen elementen wordt weergegeven
![Page 24: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/24.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Voordelen regel gestuurd
Zeer flexibel Gemakkelijk
( als je eenmaal door hebt hoe het werkt)
“Declaratief programmeren”
Lees de reader !
![Page 25: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/25.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Modulariteit in XSLT
Modulariteit = herbruikbare onderdelen
Gemeenschappelijk templates Navigatiestructuur op iedere pagina
xslt stylesheets versie 2.0
![Page 26: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/26.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Gemeenschappelijke templates
<xsl:include href="general.xsl"/>
Zet gemeenschappelijk templates in één bestand ( general.xsl )
‘include’ dit bestand in iedere xslt
Zie voorbeelden
![Page 27: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/27.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Navigatie op iedere paginaProbleem: De navigatie in de XSLT opnemen in tegen het principe van scheiding van
vorm en inhoud. De informatie die nodig is, staat niet in de xml bron maar in index.xml.
Oplossing: De index.xml ‘inladen’ in een ‘variabele’ Vervolgens templates maken voor deze informatie.
<xsl:variable name="index" select="document('../site-index.xml')" />
<xsl:apply-templates select="$index/sd:study-archive-index/sd:profile" />
Zie voorbeelden
![Page 28: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/28.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
En verder
Er valt nog veel meer te leren met XSLT
moeilijkheid
mogelijkheden
Studiedossier 1.0
Studiedossier 2.0
![Page 29: Les 8 : XSLT modulariteit](https://reader036.vdocuments.mx/reader036/viewer/2022081503/5681592f550346895dc66195/html5/thumbnails/29.jpg)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
Volgende week
Iedereen laat zijn werk zien
Problemen zijn er om op te lossen