Les 3 : documentontwerp

43
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl Les 3 : documentontwerp ( i.p.v. geplande gastpresentatie QTI ) Maar ook: Enkele voorbeelden uit de praktijk

description

Les 3 : documentontwerp. ( i.p.v. geplande gastpresentatie QTI ) Maar ook: Enkele voorbeelden uit de praktijk. 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 - PowerPoint PPT Presentation

Transcript of Les 3 : documentontwerp

Page 1: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

Les 3 : documentontwerp

( i.p.v. geplande gastpresentatie QTI )

Maar ook:

Enkele voorbeelden uit de praktijk

Page 2: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

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

Page 3: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

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 !

Page 4: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

Wat is XML

(internationale) afspraken op afspraken.

TEXT : unicode

XML

HTML RSS MathML QTI

Page 5: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

Oplossing met XML

eXtensible Markup Language

Voor het ontrafelen van de tekst is standaard programmatuur beschikbaar in iedere ontwikkelomgeving!

De XML-PARSER!

Page 6: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

Hoe werkt XML?

XML Presenteren:XSLT CSS

Programmeren:SAX / DOM

Modelleren:DTD, XMLschema,...

Selecteren:XPath

De XML familie Verschillende technieken voor verschillende

doeleinden

Page 7: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

voorbeeld

DOM en XPath in PHP.

voorbeeldcode

Page 8: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

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.

Page 9: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

Wat is XPath? voorbeeldenartikel/titel

( de titel van een artikel )

artikel/@bron ( 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[ //citaat/@geciteerde="jochem"]( de alinea’s aarin jochem wordt geciteerd )

w3schools.org

Page 10: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

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.

Page 11: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

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

Page 12: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

Praktijk voorbeelden

Oorspronkelijke presentatie Matthe Stet

Page 13: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

XML document ontwerp

Gewoon doen en ervaren.

Tegen vragen/problemen aanlopen.

Page 14: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

Well formed XML

Correct gevormde xml

Page 15: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

Page 16: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

XML Bouwblokken

Over elementen, attributen en tekst

Page 17: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

XML bouwblokken

Belangrijkste bouwblokken

Elementen Attributen Tekst

Page 18: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

element

Element Naam Attributen Kinderen:

Elementen Tekst

Opentag, sluittag met naamIn de opentag staan attributenTussen de open- en sluittage staat de inhoud

Page 19: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

Inhoud van een xml-element

Een element kan bevatten: Leeg Tekst Elementen Combinatie tekst en

elementen

<artikel>@bron - …@datum - ...

<titel> <samenvatting> <tekst>

… …<alinea> <plaatje> <alinea>

…@bron - …

… …<citaat>

Page 20: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

attribuut

Attribuut Naam Waarde: tekst

In de opentag

Volgorde is niet van belang

Page 21: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

tekst

Tekst Karakterset ( unicode ) Witruimte Entiteiten : Speciale xml-karakters ( < & ‘ “ > )&lt; &amp; &apos; &quot; &gt;

Page 22: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

XML bouwblokken Element

Naam Attributen Kinderen

Elementen Tekst

Attribuut Naam Waarde: tekst

Tekst Karakters ( unicode ) Witruimte Speciale karakters: &lt; &amp; &apos; &quot; &gt;

Page 23: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

XML bouwblokken

Elementen Attributen Tekst

Is dit nieuw? Dit wist je het eigenlijk al van HTML?

Page 24: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

Geschiedenis: XML opvolger van SGML

1986: SGMLStandard Generalized Markup Language

1998: XMLeXtensible Markup Language

XML is een vereenvoudiging van SGML

Page 25: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

SGML vs XML = HTML vs XHTML 1986: SGML

Standard Generalized Markup Language

1998: XMLeXtensible Markup Language

SGML --> HTMLXML --> XHTML

Er zijn kleine doch belangrijke verschillen tussen SGML en XML !

XML is een vereenvoudiging van SGML

Page 26: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

XML = streng

XML die voldoet aan alle strengere XML normen

Case sensitive Aanhalingstekens om Tags afsluiten

------ Stricte hierarchie

“wellformed XML”

Page 27: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

Parseren Serialiseren

XML XMLApplicatie

Page 28: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

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

Page 29: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

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 )

Page 30: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

oefeningen

Oefening 1: Maak het voorbeeld xml document ‘well-formed’

Oefening 2: Ontwerp zelf een XML schema voor de boek

recensies van het parool. www.parool.nl/????

Oefening 3: Ontwerp een XML schema voor een kookrecept.

Titel, aantal personen, bereidingstijd, Ingrediënten, benodigdheden, bereiding, …

Page 31: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

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

Page 32: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

‘Goede’ XML

wat is ‘goed’ XML documentontwerp. Formeel: Well-formed XML Inhoudelijk: bevat het alle relevante informatie Stijl : ‘fouten’ en ‘keuzen’

Page 33: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

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?

<ingredient>3 kilo aardappelen</ingredient><ingredient product=“aardappel”

eenheid=“kilo” aantal=“3” />

Page 34: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

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’

Page 35: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

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

Page 36: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

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 )

Page 37: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

DATA-Format vs DOCUMENT-FormatDataFormat 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

Page 38: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

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, … )

Page 39: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

Goede XML: stijl ‘keuze’ DATA Format

Elementen: Groeperen van elementen

Element of AttribuutWees 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

Page 40: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

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.

Page 41: Les 3 : documentontwerp

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 42: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

‘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

Page 43: Les 3 : documentontwerp

Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

Literatuur: Introducing XML

1. Introducing XML

2. XML Fundamentals

3. Schema Uses and Development

4. XML as Document Format

5. XML as Data Format