xml en xpath

35
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - [email protected] - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl XML en Xpath “Hallo X world” Well-formed XML

Upload: norman-kemp

Post on 03-Jan-2016

54 views

Category:

Documents


0 download

DESCRIPTION

XML en Xpath. “Hallo X world” Well-formed XML. Deze week. Korte herhaling vorige week Wat, waarom, hoe Uitleg: Wellformed XML Bouwstenen van een XML document Regels waaraan XML moet voldoen Opdracht: Verbeter de fouten. Vorige week. Wat is XML Waarvoor dient XML Hoe werkt XML. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: XML en Xpath

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

XML en Xpath

“Hallo X world”

Well-formed XML

Page 2: XML en Xpath

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

Deze week

1. Korte herhaling vorige week Wat, waarom, hoe

2. Uitleg: Wellformed XML Bouwstenen van een XML document Regels waaraan XML moet voldoen

3. Opdracht:Verbeter de fouten

Page 3: XML en Xpath

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

Vorige week

Wat is XML

Waarvoor dient XML

Hoe werkt XML

Page 4: XML en Xpath

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

webservice

Datauitwisselen over het web ( http) met een .txt bestand Zo wel leesbaar voor mens als voor machine Transport via bijvoorbeeld HTTP

Page 5: XML en Xpath

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

Oplossingen zonder XML

CSV bestanden ( of wat daar op lijkt ) HTML: <div class=“titel” > : [titel] ... [/titel] : #titel=…

Ieder stukje informatie is herkenbaar: Positie in de rij : CSV Markeringen : HTML , Markeringstekens

De ontvanger van de informatie kan de tekst ontrafelen met daarvoor geschreven functie. ( PARSER )

Page 6: XML en Xpath

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

Oplossing met XMLeXtensible Markup Language

<uitslagen><uitslag>

<datum>2007-08-01</datum><thuisteam>AVC</thuisteam><uitteam>RVC</uitteam><thuisscore>5</thuisscore><uitscore>1</uitscore><verslag>

<p>Het was een mooie wedstrijd.</p><p>En er vielen veel doelpunten.</p>

</verslag></uitslag>

</uitslagen>

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

De XML-PARSER!

Page 7: XML en Xpath

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

Enkele voorbeelden

RSS aggregator MusicPortl

Page 8: XML en Xpath

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

Kenmerken markeringstaal

Speciale tekens voor markering Betekenis door vocabulair of positie Tabelstructuur of boomstructuur of … Uitbreidbaarheid Zelfbeschrijvend Tekstontrafelaar ( standaard of custommade)

Page 9: XML en Xpath

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.

Gebruik van punthaakjes <p>…</p>

Enkele voorbeelden van markuptalen die gebaseerd zijn op XML:

(X)HTML RSS MathML QTI OOXML of ODF

Iedere XML taal heeft eigen vocabulair

Maar je kunt ook zelf voor speciale gevallen een nieuwe taal bedenken: VUML : Voetbal Uitslagen Markup Language

Page 10: XML en Xpath

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

Het hogere doel van XML

Op een gestandaardiseerde wijze informatie uitwisselbaar maken tussen diverse platforms en applicaties

waarbij de inhoud en structuur gescheiden is van de presentatievorm

en de informatie leesbaar is voor zowel mens als machine

Page 11: XML en Xpath

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

Wat is de rol van XML bij standaardisering? een bouwwerk van standaarden

Betekenis:

Structuur:

Tekst:

Digitaal:

Unicode

XML

HTML RSS VUML QTI

Bits & Bytes

Page 12: XML en Xpath

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

Standaardisatie in 2008

OOXML vs ODF

Op XML gebaseerde standaard voor office documenten !

Gevolg: Het format voor office documenten is openbaar,

iedere software ontwikkelaar kan applicatie maken die de documenten doen ( bewerken filteren, veranderen, etc )

Page 13: XML en Xpath

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 XML parser ontrafelt de hiërarchische structuur van een XML bestand, onafhankelijk van het vocabulair.

DUS:voor ieder vocabulair, dezelfde parser.

Zie voorbeelden

Page 14: XML en Xpath

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 15: XML en Xpath

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 16: XML en Xpath

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

Wellformed XML

Een XML bestand ( met punthaken en zo ) dat aan alle W3C regels voldoet.

Alleen een wellformed XML bestand kan geparseerd worden.

DUS: is de xml niet wellformed, dan heb je er niets aan!

Page 17: XML en Xpath

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

Well formed XML

Anders doet ie niets !

Page 18: XML en Xpath

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.

W3C: World Wide Web Consortium

Organisatie waarin alle grote software en hardware organisatie vertegenwoordigd zijn, en die afspraken maakt mbt het world wide web

W3C ‘beheert’ de XML standaard

www.w3c.org

Page 19: XML en Xpath

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

Page 20: XML en Xpath

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

Regels voor wellformed XML

Een heleboel regels De meeste regels ken je intuïtief al

Dit college: Heel veel informatie waarvan het meeste wel bekend is,

maar sommige dingen misschien niet. Sommige zaken ken je al, het krijgt slechts een officiële

naam.

Dus: blijven opletten en schrijf mee als ik iets zeg dat nieuw is.

Page 21: XML en Xpath

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 ( Nodes )

ElementNode Naam

AttributeNode Naam Waarde

TextNode Waarde

NB: “de waarde van een element” is spreektaal, formeel heeft een element geen waarde.

Page 22: XML en Xpath

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

XML structuur: hiërarchie

parent/child , parent/attribute relaties

Element: Parent: elementNode Children: elementNodes , textNodes Attributes: attributeNodes)

Attribute Parent: elementNodes

Text Parent: elementNodes

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

<titel> <samenvatting> <tekst>

… …<alinea> <plaatje> <alinea>

…@bron - …

… …<citaat>

Page 23: XML en Xpath

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

Structuur

Een elementNode heeft

parent: elementNode of documentNode precies 1

attributes: attributeNodes nul of meer volgorde niet van belang dubbele attributen zijn niet toegestaan

children: elementNodes en/of textNodes nul of meer volgorde wel van belang dubbele elementen zijn toegestaan

Page 24: XML en Xpath

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

XML namen

Regels voor namen ( zowel element als attribute)

Geen gekke karakters, Behalve: - _ . ( min, underscore, punt )

Geen spaties Niet beginnen met een nummer

Page 25: XML en Xpath

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

XML namen: namespace

Verwijzing naar het vocabulaire waar de betekenis van de naam is bepaald. ( niet altijd nodig )

Namespace declaratie Namespace prefix

Maakt het mogelijk verschillende markuptalen in één xml bestand te combineren. Zie voorbeeld VUML/XHTML

Dit is een moeilijk onderwerp. We komen er later op terug

Page 26: XML en Xpath

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

XML waarden: tekst

De “waarde” van een attributeNode of textNode is een tekst met de volgende bijzonderheden:

White space (witruimte) spatie, tab, return = één spatie

Speciale tekens < &lt; > &gt; “ &quot; ‘ &apos; & &amp;

Page 27: XML en Xpath

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

Xml structuur samengevat

XML is een hiërarchie (parent/child) bestaande uit elementNodes, attributeNodes , textNodes parent/child en parent/attribute relaties

Element- en attribuutnamen zijn aan enkele regels gebonden kunnen binnen een ‘namespace’ vallen

Attribute- en textwaarden ‘witruimte’ (spaties, tabs, returns ) Speciale karakters ( &lt; &gt; &quot; &apos &amp; )

Page 28: XML en Xpath

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

Andere XML bouwstenen

Niet essentieel voor de betekenis van XML, maar wel noodzakelijk om er goed mee te kunnen werken:

commentaar processing-instruction

entiteiten CDATA

xml-declaratie namespace-declaratie document-type-declaratie

Page 29: XML en Xpath

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

XML vs SGML

Notatie verschillen

Page 30: XML en Xpath

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

XML is opvolger van SGML

1986: SGMLStandard Generalized Markup Language

1998: XMLeXtensible Markup Language

SGML --> HTMLXML --> XHTML

Er zijn kleine doch belangrijke verschillen tussen SGML en XML !

Wellformed XML is altijd welformed SGML Wellformed SGML is niet altijd wellformed XML

Page 31: XML en Xpath

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

Verschillen SGML-XML

XML is strenger dan SGML ( en HTML ) :

Element- en attribuutnamen zijn case-sensitive Attribuutwaarden móeten tussen aanhalingstekens Elementen móeten worden afgesloten

( Lege elementen kunnen zichzelf sluiten )

----- Elementen vormen een strikte hierarchie

( geen half overlappende elementen )

Page 32: XML en Xpath

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

Opdracht

Controleer of je eigen VUML bestand ‘well-formed’ is.

Download de xml-oefenbestand van intranet Controleer of het ‘well-formed’ is Verbeter de fouten tot ie helemaal goed is.

TIP: FireFox geeft goede foutmeldingen wanneer je een niet-wellformed xml bestand opent.

Page 33: XML en Xpath

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

Geleerd: wellformed XML

De bouwstenen en structuur van een XML document. Node, element, attribute, text, entity, namespace,

whitespace, parent, child, namespace, xml-declaratie, etc

De strenge notatie van XML ( vgl SGML ) Tags afsluiten, hoofdlettergevoelig, altijd quotes

gebruiken, strikte hiërarchie

Geoefend met het ‘debuggen’ van xml.

Page 34: XML en Xpath

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

XML: een bouwwerk van standaarden

Betekenis:

Structuur:

Tekst:

Digitaal:

Unicode

XML

XHTML RSS VUML QTI

Bits & Bytes

Page 35: XML en Xpath

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

Volgende week

Ontwerp een documentstructuur voor: Boekrecensie van het parool Bankafschrift Je eigen persoonsgegevens

Gebruik geschikt gereedschap:NotePad++ met XML plugin Automatisch inspringen Wellformedness checken Color-coding en Auto-completion Validatie ( onderwerp van volgende week )