1 / 36

Multimedia academiejaar 2006–2007 Practicum 4: XML - basisconcepten 30 maart 2007

Multimedia academiejaar 2006–2007 Practicum 4: XML - basisconcepten 30 maart 2007. Chris Poppe Multimedia Lab vakgroep Elektronica en Informatiesystemen faculteit Ingenieurswetenschappen Universiteit Gent. Overzicht. Praktische gegevens - afspraken

hiroko
Download Presentation

Multimedia academiejaar 2006–2007 Practicum 4: XML - basisconcepten 30 maart 2007

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. Multimediaacademiejaar 2006–2007Practicum 4: XML - basisconcepten30 maart 2007 Chris Poppe Multimedia Lab vakgroep Elektronica en Informatiesystemen faculteit Ingenieurswetenschappen Universiteit Gent

  2. Overzicht • Praktische gegevens - afspraken • Inleiding practicum 4: XML - basisconcepten • Extensible Markup Language (XML) • XML-naamruimten • W3C XML Schema Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  3. Praktische gegevens - afspraken • Vragen en opmerkingen? • Sarah De Bruyne • sarah.debruyne@ugent.be • onderwerp beginnen met [mm]! • groepsnummer vermelden! • Website • http://berio.elis.ugent.be/mm/ Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  4. Practicum 4 • Oplossingen uploaden naar persoonlijke map • XML1-directory • Respecteer de deadline: donderdag 26 april 2007 (14u) Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  5. Inleiding practicum 4:XML - basisconcepten

  6. Extensible Markup Language (XML)

  7. Overzicht XML-technologieën • XML • Extensible Markup Language • W3C XML Schema • XML-gebaseerde taal om de grammatica van XML-documenten vast te leggen (validatie) • XML Path Language (XPath) • taal om aan adressering en selectie te doen binnen een XML-document • Extensible Stylesheet Language (XSL) • XSL Transformations (XSLT) • omzetten van XML-documenten naar andere (XML-)documenten • XSL Formatting Objects (XSL-FO) • omzetten van XML-documenten naar presentatieformaten Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  8. Extensible Markup Language (XML) • Uitbreidbare opmaaktaal • opmaakcodes kunnen zelf gedefinieerd worden • eigen taal (XML-applicatie) • geen standaardopmaakcodes (HTML) • zelfbeschrijvend • goede keuze naam opmaakcode (XML-element) • voorbeeld: <voornaam>Cleopatra</voornaam> • aanbeveling W3C • Eenvoudige manier om structuur aan te brengen in tekstbestanden via opmaakcodes • internationaal uitwisselingsformaat • Bouwsteen technologiefamilie • W3C XML Schema, XPath, XSL, ... Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  9. Technologiefamilie XML XSLT Stylesheet W3C XML Schema XML validatie presentatie dataconversie inhoud/structuur wordt losgekoppeld van presentatie Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  10. XML – Schematisch Voorbeeld Proloog <? xml version="1.0" encoding= "UTF-8"?><!– commentaar en verwerkings- instructies --> Body (Kern) <boekenlijst> <boek categorie="thriller"> <titel>Het Bernini Mysterie</titel> <auteur>Dan Brown</auteur> </boek> </boekenlijst> Document Epiloog <!-- commentaar en verwerkings- instructies --> Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  11. <auteur></auteur> = <auteur /> XML – Voorbeeld <? xml version="1.0" encoding="UTF-8" ?> <!-- Dit is een boekenlijst. --> <boekenlijst> <boek categorie="thriller"> <titel>Het Bernini Mysterie</titel> <auteur>Dan Brown</auteur> </boek> <boek categorie="woordenboek"> <titel>Van Dale Frans-Nederlands</titel> <auteur /> </boek> </boekenlijst> Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  12. Well-formed XML • Goed gevormde XML-documenten (well-formed) • XML-document voldoet aan syntactische regels • vastgelegd in W3C-aanbeveling • Syntactische regels • elk element wordt afgesloten • elementen worden correct genest • opname opmaakcode binnen andere opmaakcode • hiërarchische boomstructuur met slechts één wortelknoop (geen broers of zussen!) • geen symbolen opnemen die niet toegelaten zijn • entiteitsreferenties: &amp; stelt ‘&’-symbool voor • attributen zijn syntactisch correct Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  13. Well-formed XML – Syntaxfouten • Elke opmaakcode moet gesloten worden • <voorbeeldcode>…</voorbeeldcode> • <voorbeeldcode /> • Opmaakcodes in juiste volgorde afsluiten • <b><i>dit is een test</b></i>: niet-correct • <b><i>dit is een test</i></b>: correct • Attributen moeten omsloten zijn met “- of ‘-tekens • <boek categorie="roman">: correct • <boek categorie='roman'>: correct • <stad naam="sint-job-'t-goor">: correct • <stad naam='sint-job-'t-goor'>: niet-correct • <boek categorie ='roman">: niet-correct Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  14. Valid XML • Geldige XML-documenten (valid) • zijn per definitie goed gevormd • document voldoet aan een grammatica • XML-schema (XML) • Document Type Definition (geen XML) • alternatieve, oudere validatiemethode • kunnen automatisch gecontroleerd worden • Grammatica • eindig alfabet van symbolen (opmaakcodes) • verzameling regels die beschrijven hoe symbolen kunnen gecombineerd worden Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  15. Boomstructuur – Algemeen Document- wortel Proloog Kern Document- element Epiloog Elementen boom Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  16. Boomstructuur – Elementen <Boekenlijst> <Boek> <Boek> <Auteur> <Titel> <Auteur> <Titel> Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  17. root * element boekenlijst * element element boek boek * * element element attribuut titel auteur categorie * * * tekst tekst tekst “Het Bernini ...” “Dan Brown” “thriller” Boomstructuur – Gedetailleerd Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  18. XML-naamruimten

  19. XML-naamruimten • Probleem • vrijheid keuze elementnamen kan conflicten opleveren • onderstel een attribuut met naam “categorie” • semantische betekenis in de context van boeken is anders dan bij de bergen in de ronde van Frankrijk • XML-naamruimte • verzameling van uniek gedefinieerde opmaakcodes • analoog aan programmeertalen (C++, Java, C#, …) • maakt gebruik v/e URI (Uniform Resource Identifier) • opmaakcode wordt uitgebreid om uniciteit te garanderen • Aanduiding naamruimte via xmlns-attribuut • <wortel_element xmlns:pref=“URI” /> <pref:kind_element>…</pref:kind_element> </wortel_element> Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  20. XML-naamruimten – Voorbeeld <berio.elis.ugent.be:boek category=“thriller"> <berio.elis.ugent.be:auteur> Dan Brown </berio.elis.ugent.be:auteur> <berio.elis.ugent.be:titel> Het Bernini Mysterie </berio.elis.ugent.be:titel> </berio.elis.ugent.be:boek> <berio.elis.ugent.be:boek category="roman"> <berio.elis.ugent.be:auteur> J. R. R. Tolkien </berio.elis.ugent.be:auteur> <berio.elis.ugent.be:titel> In de Ban van de Ring </berio.elis.ugent.be:titel> </berio.elis.ugent.be:boek> Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  21. XML-naamruimten – Verkorte Notatie <bkl:boekenlijst xmlns:bkl="http://berio.elis.ugent.be/"> <bkl:boek category="thriller"> <bkl:auteur>Dan Brown</bkl:auteur> <bkl:titel>Het Bernini Mysterie</bkl:titel> </bkl:boek> <bkl:boek category="roman"> <bkl:auteur>J. R. R. Tolkien</bkl:auteur> <bkl:titel>In de Ban van de Ring</bkl:titel> </bkl:boek> </bkl:boekenlijst> Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  22. XML-naamruimten – Opmerkingen • Prefix niet noodzakelijk • standaardnaamruimte • definitie naamruimte zonder associatie met prefix • zolang er geen conflicten zijn <boekenlijst xmlns="http://berio.elis.ugent.be/"> <boek category="thriller"> <auteur>Dan Brown</auteur> <titel>Het Bernini Mysterie</titel> </boek> <boek category="roman"> <auteur>J. R. R. Tolkien</auteur> <titel>In de Ban van de Ring</titel> </boek> </boekenlijst> Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  23. W3C XML Schema

  24. W3C XML Schema • W3C XML Schema • aanbeveling W3C • manier om een grammatica te definiëren • nagaan of de inhoud van een XML-document voldoet aan een aantal regels • een XML-schema (i.e., een instantie van W3C XML Schema) is op zichzelf ook een XML-document • Automatische validatie • verwijzing naar XML-schema vanuit XML-document XML- schema (woordenschat + regels) W3C XML Schema XML (structuur) validatie validatie instantie instantie Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  25. W3C XML Schema – Voorbeeld <?xml version="1.0" encoding="UTF-8"?> <boekenlijst xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsd:noNamespaceSchemaLocation="boekenlijst.xsd"> <boek categorie="thriller"> <auteur>Dan Brown</auteur> <titel>Het Bernini Mysterie</titel> <aantalpag>460</aantalpag> </boek> <boek categorie="roman"> <auteur>J.R.R. Tolkien</auteur> <titel>In de Ban van de Ring</titel> </boek> </boekenlijst> Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  26. W3C XML Schema – Componenten • Het <schema>-element en bijbehorende naamruimtedefinities • Declaraties van elementen • Declaraties van attributen • Nieuwe typedefinities • definieert een component die kan gebruikt worden bij definitie van elementen, attributen of andere typedefinities binnen hetzelfde XML-schema Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  27. W3C XML Schema – Onderdelen • Definitie van een XML-schema • <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> …</xsd:schema> • Declaratie van een element • <xsd:element name="titel" type="xsd:string"/> • <xsd:element name="auteur" type="xsd:string"/> • Declaratie van een attribuut • <xsd:attribute name="categorie" type="xsd:string" /> Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  28. W3C XML Schema – Datatypes • Vastgelegde datatypes in xsd-naamruimte • xsd:string • xsd:integer • xsd:date • xsd:time • xsd:short • … • Kunnen gebruikt worden als basis voor andere datatypes (typedefinities) • enkelvoudige of atomaire typedefinitie: simpleType • samengestelde typedefinitie: complexType Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  29. W3C XML Schema – simpleType • SimpleType • wordt gebruikt om nieuwe datatypes aan te maken • kan geen elementen of attributen bevatten • Voorbeeld <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="roman"/> <xsd:enumeration value="thriller"/> <xsd:enumeration value="woordenboek"/> </xsd:restriction> </xsd:simpleType> Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  30. W3C XML Schema – complexType • ComplexType • wordt gebruikt om nieuwe structuren aan te maken • voorbeeld • sequentie van elementen in welbepaalde volgorde • via xsd:sequence • Voorbeeld <xsd:complexType> <xsd:sequence> <xsd:element name="titel" type="xsd:string"/> <xsd:element name="auteur" type="xsd:string"/> </xsd:sequence> </xsd:complexType> Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  31. W3C XML Schema – Elementen • Declaratie van elementen <xsd:element name="auteur"type="xsd:string"/> <xsd:element name="titel" type="xsd:string"/> <xsd:element name="aantalPag" type="xsd:integer"/> <xsd:element name="boek"> <xsd:complexType> <xsd:sequence> <xsd:element ref="auteur"/> <xsd:element ref="titel"/> <xsd:element ref="aantalPag" minOccurs="0"/> </xsd:sequence> </xsd:complexType> </xsd:element> Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  32. W3C XML Schema – Attributen • Declaratie van attributen <xsd:attribute name="categorie"use="required"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="roman"/> <xsd:enumeration value="thriller"/> <xsd:enumeration value="woordenboek"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  33. W3C XML Schema - Uitgewerkt Voorbeeld (1/2) <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="boekenlijst"> <xsd:complexType> <xsd:sequence> <xsd:element ref="boek" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="boek"> <xsd:complexType> <xsd:sequence> <xsd:element ref="titel"/> <xsd:element ref="auteur"/> <xsd:element ref="aantalpag" minOccurs="0"/> </xsd:sequence> <xsd:attribute ref="categorie" use="required"/> </xsd:complexType> </xsd:element> <!-- … --> </xsd:schema> Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  34. W3C XML Schema - Uitgewerkt Voorbeeld (2/2) <!-- … --> <xsd:element name="titel" type="xsd:string"/> <xsd:element name="auteur" type="xsd:string"/> <xsd:attribute name="categorie"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="roman"/> <xsd:enumeration value="reisgids"/> <xsd:enumeration value="thriller"/> <xsd:enumeration value="atlas"/> <xsd:enumeration value="woordenboek"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> <xsd:element name="aantalpag" type="xsd:integer"/> </xsd:schema> Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  35. W3C XML Schema Visualisatie Via XMLSpy (Of Via Oxygen) verplicht kind sequentie ouderelement optioneel kind optreden van boek Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

  36. Tools • Editeren XML • Xin Editor (onderdeel Athena, https://athena.ugent.be/) • XMLSpy (http://www.xmlspy.com) • XMLCooktop (http://www.xmlcooktop.com/) • Visual Studio .NET • Notepad • Valideren XML (ook goed gevormde XML) • Xin Editor, XMLSpy, XSV (zie website oefeningen) • Internet Explorer 5.x of hoger, Mozilla, … • http://apps.gotdotnet.com/xmltools/xsdvalidator/ • Controleer de broncode van uw practica op leesbaarheid en voeg desnoods commentaar toe • commentaar in XML • <!-- dit is commentaar --> Multimedia – Practicum 4: XML - basisconcepten Chris Poppe 30/03/2007

More Related