Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Les 3 : documentontwerp een XML schema voor specifieke toepassingen Bankafschrift_ML Kookrecept_ML Recensie_ML
Maar eerst nog even dit… Andere verwerkingsmethode dan DOM+Xpath Iets meer over een paar extra dingetjes in XML SGML de voorloper van XML Wat is Unicode ( UTF-8) en waarom. Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese
Vorige week DOM+Xpath Er zijn naast DOM en Xpath vele andere verwerkings modellen. O.a.: Objectstructuren (vergelijkbaar met DOM) E4X ( actionscript 3 ) simpleXML ( php ) XSLT Declaratieve programmeertaal speciaal voor XML Text based processing Zoals je ‘normaal’ PHP en XHTML gebruikt (Eigenlijk heel primitief) Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese
SGML/XML geschiedenis 1986 : SGML 1989 : HTML 1.0,…. 1998 : XML ( strengere versie van SGML ) 1999: XHTML 1.0 ( strengere versie van HTML) 2008: XHTML 2 loopt op de klippen 201? : HTML5 HTML ( op sgml gebaseerd) is niet uit te roeien. Ondanks pogingen van W3C daartoe. helaas Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese
Een paar extra dingetjes in XML We hadden de bouwblokken (Nodes ) ElementNodes AttributeNodes TextNodes Daar komen de volgende dingetjes bij Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese
dingetjes in XML Noodzakelijke kwaden en/of handige dingetjes xml declaratie commentaar documenttype declaratie namespace declaratie processing-instruction entiteit CDATA Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese
UNICODE Wat is text? Dwz.txt Een serie karakters achter elkaar Niet opmaak, niet lettertype, niet kleur Hoe staat dat in het bestand? Als een serie getallen Ieder getal staat voor een karakter 32 = a 33 = b 78 = ? 78 = ! etc Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese
UNICODE karakterset Er bestaan verschillende karakterssets ASCII 128 karakters Geschikt voor engels, geen arabische, geen chinees Geen é, ü, Uitbreidingen van ASCII 256 karakters Ascii + westeuropees, asci + scandinavisch Andere karaktersset 256 karakters Grieks, arabisch, thais, etc Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese
Unicode standaard Unicode: alle karakters in de hele wereld een vast getal: de universele karakterset Miljoenen karakters Alle talen Verschillende manier om de getallen te coderen UTF-8 8 bits, meer als getal groter dan 128 Meeste westeuropese karakters < 128 UTF-16 16 bits, meer als nog groter Karakters in niet westerse talen altijd > 128 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese
Alles moet in unicode Er bestaan nog veel niet unicode bestanden in de wereld Maak geen nieuwe: zet alles defaults op UTF-8, waar mogelijk. Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese
Document ontwerp En dan nu waar het deze les om gaat: documentontwerp 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 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
Document ontwerp Bankafschrift Filmrecensie Kookrecept ??? 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 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 Goede XML, algemene stijl ‘fouten’ Wel wellformed XML, maar toch niet effectief: niet-xml markering 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 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
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Goede XML bevat en markeert alle benodigde informatie Tot welk detailsniveau moeten alle informatieblokjes expliciet gemarkeerd worden? 3 kilo aardappelen aardappel kilo 3 drie kilo aardappelen
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’ 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 Alles in elementen Behalve 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 voor de lezer 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.
Schema technieken Meerder technieken voorhanden om een schema te definieren: DTD document type definitie XSD XML Schema Definition RelaxNG Schematron
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