Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Les 8 : XSLT modulariteit
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese vandaag Waar zijn we eigenlijk mee bezig studiedossier Korte herhaling van het voorafgaande XSLT templates versie 1.0 Modulariteit XSLT templates versie 2.0
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XML codering van het studiedossier: een bouwwerk van standaarden Betekenis: Structuur: Tekst: Digitaal: Unicode XML IAM StudieDossier Bits & Bytes
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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.xml settings.xml
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Studiedossier: documentschema’s Schema verwijzing in XML Validatie door editor Gebruik van XHTML / namespaces Documentatie groepen xs:anyType enumeraties optioneel/verplicht/aantal
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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 )
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XSLT style sheets Het presenteren van XML data in een XHTML pagina
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese StudieDossier + XSLT templates XSLT templates versie 1 Les 6 Uitleg XML schema voor studiedossier Start eenvoudige XSLT voor enkelvoudige pagina Les 7 ‘Regels toepassen’ vs ‘gaten vullen’ Kerstvakantie XSLT templates versie 2 Les 8 Hergebruik van templates’in meerdere pagina’s Document() functie, tbv navigatie en indexpagina Complexere Xpath Les 9 Afmaken, problemen oplossen Les 10 inleveren
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XSLT style sheets Het presenteren van XML data in een XHTML pagina
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Basis XSLT: gaten vullen top element van een xsl stylesheet (overnemen uit voorbeeld) enkele specificaties met betrekking tot het output formaat (overnemen uit voorbeeld) het hoofdtemplate het selecteren van een waarde uit de xml-bron het loopen door een lijst uit de xml-bron
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Basic XPath Het 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:street sd:code sd:city Lees ook intranet:XPathVoorBeginners.pdf
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XSLT voor beginners
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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’
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XSLT: regels toepassen Een andere manier om naar XSLT te kijken ‘gaten vullen’ en ‘regels toepassen’ worden in combinatie toegepast.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Gaten vullen vs regels toepassen Gaten vullen: Template = een brok outputcode ( XHTML ) met ‘gaten’ die gevuld worden uit de XML bron. Regels toepassen: Match-patronen ( selectors ) bepalen welk template wordt toegepast op delen van de XML bron....
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese voorbeeld Een voorbeeld ter illustratie van de werking van regelgestuurde methode Download voorbeeld En bestudeer de logica
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Match patronen Speciaal geval: Dit is altijd het eerste template dat wordt toegepast
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Conflict resolutie Het 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 attribuutnaam match = ‘sd:project’ match = Hoogste prioriteit: element of attribuut met predicaat match = ‘sd:project-info [ sd:metadata/sd:type = ‘groepsopdracht’]’
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Ingebouwde default templates Zorgt ervoor dat het gehele brondocument automatisch afgelopen wordt Zorgt ervoor dat tekst binnen elementen wordt weergegeven
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Voordelen regel gestuurd Zeer flexibel Gemakkelijk ( als je eenmaal door hebt hoe het werkt) “Declaratief programmeren” Lees de reader !
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Modulariteit in XSLT Modulariteit = herbruikbare onderdelen Gemeenschappelijk templates Navigatiestructuur op iedere pagina xslt stylesheets versie 2.0
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Gemeenschappelijke templates Zet gemeenschappelijk templates in één bestand ( general.xsl ) ‘include’ dit bestand in iedere xslt Zie voorbeelden
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Navigatie op iedere pagina Probleem: 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. Zie voorbeelden
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese En verder Er valt nog veel meer te leren met XSLT
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Volgende week Iedereen laat zijn werk zien Problemen zijn er om op te lossen