Les 3 : documentontwerp
-
Upload
ishmael-paul -
Category
Documents
-
view
28 -
download
0
description
Transcript of 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
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
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 !
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
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!
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
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
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.
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
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.
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
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
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.
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
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl
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
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
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
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>
…
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
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 ( < & ‘ “ > )< & ' " >
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: < & ' " >
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?
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
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
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”
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
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
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 )
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, …
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
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’
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” />
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’
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
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 )
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
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, … )
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
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.
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.
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
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