Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Les 3 : documentontwerp een XML schema voor specifieke doeleinden
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Wat is XML? een standaard manier om markup-talen te definieren. OPEN STANDAARDEN Enkele voorbeelden van open standaarden die gebaseerd zijn op XML (X)HTML MathML SOAP IMS QTI OpenDocument
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Wat is XML: een bouwwerk van standaarden Betekenis: Structuur: Tekst: Digitaal: Unicode XML HTMLRSSVUMLQTI Bits & Bytes
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XSLT Het presenteren van XML data in een XHTML pagina
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Basic XSLT het hoofdtemplate het selecteren van een waarde uit de xml-bron het loopen door een lijst uit de xml-bron het selecteren van een waarde uit de xml-bron en daar vervolgens templates bij zoeken en toepassen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Basic XPath Het selecteren van een element: /uitslagen/uitslag/thuisteam /uitslagen/uitslag/uitteam Attributen selecteren : Relatieve paden: ten opzichte van /uitslagen/uitslag thuisteam uitteam verslag/p
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Wat is XPath? Meer voorbeelden de titel van een artikel artikel/titel het bron-attribuut van een artikel alle elementen in de tekst van een artikel artikel/tekst/* alle plaatjes in het document //plaatje de eerste alinea van de tekst van een artikel artikel/tekst/alinea[position()=1] de alinea’s waarin jochem wordt geciteerd
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XSLT Het XSLT proces kan zowel clientside ( processing-instruction meegeven ) als serverside ( serverside-script uitvoeren, bijv PHP ) uitgevoerd worden
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese
Vandaag: valide XML ( de betekenis laag van een document ) Betekenis: Structuur: Tekst: Digitaal: Unicode XML HTMLRSSVUMLQTI Bits & Bytes
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese de basics van “wellformed XML” Bouwstenen: Element Attribuut Tekst ( karakters, witruimte, entiteiten ) XMLdata vormt een boomstructuur Parser analyseert de tekst volgens de XML grammatica Well-formed XML voldoet aan strenge regels van W3C
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Valide XML Een XML bestand dat voldoet aan een specifiek ‘xml schema’ XML schema: definieert een specifieke taal die gebruik maakt van XML formaat XHTML RSS VUML OOXML/ODF
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese documentontwerp Scheiding van inhoud en presentatie XML document bevat gestructureerde inhoud zonder presentatie Vgl: semantische (X)HMTL XML gaat nog een stap verder: i.p.v. html-elementen een class-attribuut te geven, bedenken we element-namen met meer betekenis XML kan worden gepresenteerd met een stylesheet ( CSS of XSLT )
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese oefeningen Oefening 1: Ontwerp een XML schema voor bankafschrift Rekeninginformatie, mutaties Oefening 2: Ontwerp zelf een XML schema voor de boekrecensies van het parool. Oefening 3: Ontwerp een XML schema voor een kookrecept. Titel, aantal personen, bereidingstijd, Ingrediënten, benodigdheden, bereiding, …
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Schema ontwerp Analyseer de hierachische structuur Geef namen aan element/attributen Maak een voorbeeld met inhoud Check je ontwerp (goede_en_foute_ontwerppatronen.pdf)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese ‘Goede’ XML wat is ‘goed’ XML documentontwerp. Formeel: Well-formed XML Inhoudelijk: bevat het alle relevante informatie Stijl : ‘fouten’ en ‘keuzen’
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Goede XML, algemene stijl ‘fouten’ Wel wellformed XML, maar toch niet effectief: Non-xml Structuur in tekstelementen Nummers in elementnamen Te veel ‘inhoud’ in element- of attribuutnaam Niet groeperen van elementen Bestudeer document ‘goed en foute ontwerppatronen’
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese DATA-Format vs DOCUMENT-Format DataFormat Door machine te verwerken Uitwisselen van data tussen applicaties ( interoperabiliteit ) Datatabellen Bijv.: bankafschrift, adressenbestand DocumentFormat Door mensen te lezen Scheiding van vorm en inhoud Teksten Bijv.: filmrecensie, webpagina Mengvormen Bijv.: kookrecept
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Goede XML bevat en markeert alle benodigde informatie Is sterk afhankelijk van het doel waarvoor je de documenten wilt gebruiken: Moet het leesbaar zijn voor mensen Moet het in een geautomatiseerd proces Tot welk detailsniveau moeten alle informatieblokjes expliciet gemarkeerd worden? 3 kilo aardappelen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Goede XML stijl Er zijn vele gelijkwaardige mogelijkheden om dezelfde informatie in een XML bestand te zetten. Attributen of elementen Hoe elementen te groeperen Abstractie niveau’s Belangrijk is: Consistentie Volledigheid Eenvoud ‘beschrijvende’ namen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Goede XML: stijl ‘keuze’ Attributen of elementen Groeperen Abstractieniveau Stijlkeuze afhankelijk van het soort XML Data Format ( automatische verwerking ) Document Format (door mensen te lezen )
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Goede XML: stijl ‘keuze’ DATA Format Elementen: Groeperen van elementen Element of Attribuut Wees consequent: Altijd elementen of altijd attributen Voordelen van attributen: Weinig ruimte, makkelijk typen Voordelen van elementen: Gemakkelijke uitbreidbaar Voorkeur van Fons Elementen Attributen voor ID en IDREF
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Goede XML: stijl ‘keuze’ Document Format Elementen Groeperen van elementen Elementen: Tekst die de lezer moet lezen om het document te begrijpen. Attributen: Alles wat niet ‘noodzakelijk’ is om het document te begrijpen Opmaakattributen ( align, color, … ) Stuurattributen ( href, onClick, … ) Metadata ( auteur, datum, … ) Id/idref ( id, idref, … )
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XML documentontwerp-stijl Vervelend nadeel van XML: Er zijn vele verschillende manieren om hetzelfde te doen. Het is niet eenvoudig om de ‘juiste’ manier te vinden.
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 Een goede xml-editor NotePad++ ( met XML-tools plugin ) XML SPY ( niet gratis ) Dreamweaver Eigenschappen goede editor: Kleurcodering Tags sluiten Check well-formedness Automatisch inspringen Validatie
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese ‘well-formed’ versus ‘valide’ Twee belangrijke begrippen die je moet kennen. Well-formed XML: voldoet aan de algemene regels van XML Valide XML: voldoet aan specifieke regels voor een bepaalde documenttype, die zijn vastgelegd in een xml schema
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Literatuur: Goed bestuderen: Schema Uses and Development Lezen: XML as Document Format XML as Data Format
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Volgende week: toets Kernbegrippen XML Interoperabiliteit, datauitwiseling, webservice, standaard, parser, validatie, etc Welformed XML De fundamenten van XML Fouten eruit halen Documentontwerp Dataformat, documentformat Ontwerpfouten XML schema ( de functie, je hoeft het niet te maken) Programming models, XSLT Vergelijk verschillende manier om XML te verwerken Simpel xslt, xpath