Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XML en Xpath “Hallo X world” Well-formed XML
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Vorige week Wat is XML Waarvoor dient XML Hoe werkt XML
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese webservice Datauitwisselen over het web ( http) met een.txt bestand Zo wel leesbaar voor mens als voor machine Transport via bijvoorbeeld HTTP
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Oplossingen zonder XML CSV bestanden ( of wat daar op lijkt ) HTML: : [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 )
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Oplossing met XML eXtensible Markup Language AVC RVC 5 1 Het was een mooie wedstrijd. En er vielen veel doelpunten. 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 Enkele voorbeelden RSS aggregator MusicPortl
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Kenmerken markeringstaal Speciale tekens voor markering Betekenis door vocabulair of positie Tabelstructuur of boomstructuur of … Uitbreidbaarheid Zelfbeschrijvend Tekstontrafelaar ( standaard of custommade)
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Wat is XML? een standaard manier om markup-talen te definieren. Gebruik van punthaakjes … 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
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Wat is de rol van XML bij standaardisering? een bouwwerk van standaarden Betekenis: Structuur: Tekst: Digitaal: Unicode XML HTMLRSSVUMLQTI Bits & Bytes
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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 )
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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
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 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!
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese Well formed XML Anders doet ie niets !
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese
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.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XML structuur: hiërarchie parent/child, parent/attribute relaties Element: Parent: elementNode Children: elementNodes, textNodes Attributes: attributeNodes) Attribute Parent: elementNodes Text Parent: elementNodes
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XML namen Regels voor namen ( zowel element als attribute) Geen gekke karakters, Behalve: - _. ( min, underscore, punt ) Geen spaties Niet beginnen met een nummer
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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 << >> “" ‘' &&
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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 ( < > " &apos & )
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XML vs SGML Notatie verschillen
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese SGML vs XML = HTML vs XHTML XML is opvolger van SGML 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 ! Wellformed XML is altijd welformed SGML Wellformed SGML is niet altijd wellformed XML
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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 )
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese XML: een bouwwerk van standaarden Betekenis: Structuur: Tekst: Digitaal: Unicode XML XHTMLRSSVUMLQTI Bits & Bytes
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese 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 )