Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Les 3 : documentontwerp ( i.p.v. geplande gastpresentatie QTI ) Maar ook: Enkele voorbeelden uit de praktijk
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 Waarvoor dient XML? Toepassingen: Scheiding van structuur en vorm Bijv artikel, recensie, recept, documentatie Uitwisselen van informatie tussen systemen Bijv nieuws, bestellingen Meer abstract: XML maakt het relatief eenvoudig om een nieuwe talen/formaten te definieren ! XML maakt het relatief eenvoudig om verschillende talen/formaten te combineren !
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Wat is XML (internationale) afspraken op afspraken. TEXT : unicode XML HTMLRSSMathML QTI
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Oplossing met XML eXtensible Markup Language Voor het ontrafelen van de tekst is standaard programmatuur beschikbaar in iedere ontwikkelomgeving! De XML-PARSER!
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Hoe werkt XML? De XML familie Verschillende technieken voor verschillende doeleinden
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese voorbeeld DOM en XPath in PHP. voorbeeldcode
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XPath SQL voor database XPath voor XML Een manier om data uit een XML bestand te seleceteren. Eigenlijk: met XPath beschrijf je een pad door een XML bestand naar de gewenstte data.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Wat is XPath? voorbeelden artikel/titel ( de titel van een artikel ) ( het bron-attribuut van een artikel ) artikel/tekst/* ( alle elementen in de tekst van een artikel ) //plaatje ( alle plaatjes in het document ) artikel/tekst/alinea[1] ( de eerste alinea van de tekst van een artikel ) /artikel/tekst/alinea[ ( de alinea’s aarin jochem wordt geciteerd ) w3schools.org
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese DOM + XPath extendedDOM is een uitbreiding van de standaard PHP DOM met Xpath functionaliteit ( php 5.2 of hoger ) $domnode->selectSingleNode( $xpath ) $domnode->selectNodes( $xpath ) Lijkt op de DOM zoals microsoft die aanbiedt Niet echt anders dan de standaard PHP DOM, wel een klein beetje gemakkelijker.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Voordelen van XML boven andere bestandsformaten Leesbaar voor mens en machiene Uitbreidbaar tbv van vele toepassingen Transporteerbaar als text bestand over HTTP Rijke structuur, hierarchie, attributen Standaard ! Dus ondersteuning met diverse gereedschappen op vele platforms
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Praktijk voorbeelden Oorspronkelijke presentatie Matthe Stet
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XML document ontwerp Gewoon doen en ervaren. Tegen vragen/problemen aanlopen.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Well formed XML Correct gevormde xml
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese
XML Bouwblokken Over elementen, attributen en tekst
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XML bouwblokken Belangrijkste bouwblokken Elementen Attributen Tekst
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese element Element Naam Attributen Kinderen: Elementen Tekst Opentag, sluittag met naam In de opentag staan attributen Tussen de open- en sluittage staat de inhoud
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Inhoud van een xml-element Een element kan bevatten: Leeg Tekst Elementen Combinatie tekst en elementen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese attribuut Attribuut Naam Waarde: tekst In de opentag Volgorde is niet van belang
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese tekst Tekst Karakterset ( unicode ) Witruimte Entiteiten : Speciale xml-karakters ( ) < & ' " >
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XML bouwblokken Element Naam Attributen Kinderen Elementen Tekst Attribuut Naam Waarde: tekst Tekst Karakters ( unicode ) Witruimte Speciale karakters: < & ' " >
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XML bouwblokken Elementen Attributen Tekst Is dit nieuw? Dit wist je het eigenlijk al van HTML?
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Geschiedenis: XML opvolger van SGML 1986: SGML Standard Generalized Markup Language 1998: XML eXtensible Markup Language XML is een vereenvoudiging van SGML
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese SGML vs XML = HTML vs XHTML 1986: SGML Standard Generalized Markup Language 1998: XML eXtensible Markup Language SGML --> HTML XML --> XHTML Er zijn kleine doch belangrijke verschillen tussen SGML en XML ! XML is een vereenvoudiging van SGML
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XML = streng XML die voldoet aan alle strengere XML normen Case sensitive Aanhalingstekens om Tags afsluiten Stricte hierarchie “ wellformed XML ”
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese
Tot zover 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 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: Maak het voorbeeld xml document ‘well-formed’ Oefening 2: Ontwerp zelf een XML schema voor de boek recensies 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 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 ‘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 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 Inhoeverre moeten alle informatieblokjes expliciet gemarkeerd worden? 3 kilo aardappelen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Goede XML, stijl ‘fouten’ Wel wellformed XML, maar je mist het punt: Non-xml Structuur in tekstelementen Nummers in elementnamen Variabiliteit in element- of attribuutnaam Tekst én elementen in datageorienteerde XML Niet groeperen van elementen Bestudeer document ‘goed en foute ontwerppatronen’
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 ‘Goede’ 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 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: 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 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 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 ‘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: Introducing XML 1.Introducing XML 2.XML Fundamentals 3.Schema Uses and Development 4.XML as Document Format 5.XML as Data Format