1 / 35

XML en Xpath

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.

norman-kemp
Download Presentation

XML en Xpath

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XML en Xpath “Hallo X world” Well-formed XML Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  2. 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 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  3. Vorige week Wat is XML Waarvoor dient XML Hoe werkt XML Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  4. 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 - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  5. 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 ) Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  6. Oplossing met XML eXtensible 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! Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  7. Enkele voorbeelden • RSS aggregator • MusicPortl Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  8. 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 - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  9. 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 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  10. 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 - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  11. Wat is de rol van XML bij standaardisering? een bouwwerk van standaarden Betekenis: Structuur: Tekst: Digitaal: HTML RSS VUML QTI XML Unicode Bits & Bytes Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  12. 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 - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  13. 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 - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  14. Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  15. Hoe werkt XML? De XML familie • Verschillende technieken voor verschillende doeleinden Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  16. 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 - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  17. Well formed XML Anders doet ie niets ! Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  18. 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 Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  19. Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  20. 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 - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  21. 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 - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  22. 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 - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  23. 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 - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  24. 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 - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  25. 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 - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  26. 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; Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  27. 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; ) Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  28. 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 - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  29. XML vs SGML • Notatie verschillen Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  30. XML is opvolger van SGML 1986: SGMLStandard Generalized Markup Language 1998: XMLeXtensible 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 SGML vs XML = HTML vs XHTML Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  31. 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 - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  32. 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 - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  33. 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 - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  34. XML: een bouwwerk van standaarden Betekenis: Structuur: Tekst: Digitaal: XHTML RSS VUML QTI XML Unicode Bits & Bytes Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

  35. 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 ) Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - j.meuwese@interactievemedia.hva.nl - http://oege.ie.hva.nl/~meuwj/ - http://hva.jochem.nl

More Related