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

36
ELIS – Multimedia Lab Multimedia academiejaar 2006–2007 Practicum 4: XML - basisconcepten 30 maart 2007 Chris Poppe Multimedia Lab vakgroep Elektronica en Informatiesystemen faculteit Ingenieurswetenschappen Universiteit Gent

description

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 - PowerPoint PPT Presentation

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

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

ELIS – Multimedia Lab

Multimediaacademiejaar 2006–2007

Practicum 4: XML - basisconcepten30 maart 2007

Chris PoppeMultimedia Lab

vakgroep Elektronica en Informatiesystemenfaculteit Ingenieurswetenschappen

Universiteit Gent

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

2/37

ELIS – Multimedia Lab

Overzicht

• Praktische gegevens - afspraken

• Inleiding practicum 4: XML - basisconcepten– Extensible Markup Language (XML)– XML-naamruimten– W3C XML Schema

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

3/37

ELIS – Multimedia Lab

Praktische gegevens - afspraken

• Vragen en opmerkingen?– Sarah De Bruyne– [email protected]

• onderwerp beginnen met [mm]!• groepsnummer vermelden!

• Website– http://berio.elis.ugent.be/mm/

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

4/37

ELIS – Multimedia Lab

Practicum 4

• Oplossingen uploaden naar persoonlijke map – XML1-directory

• Respecteer de deadline: donderdag 26 april 2007 (14u)

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

ELIS – Multimedia Lab

Inleiding practicum 4:XML - basisconcepten

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

ELIS – Multimedia Lab

Extensible Markup Language (XML)

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

7/37

ELIS – Multimedia Lab

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

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

8/37

ELIS – Multimedia Lab

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, ...

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

9/37

ELIS – Multimedia Lab

Technologiefamilie XML

W3C XMLSchema

validatie presentatiedataconversie

inhoud/structuur wordt losgekoppeld van presentatie

XMLXSLT

Stylesheet

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

10/37

ELIS – Multimedia Lab

XML – Schematisch Voorbeeld

Proloog

Body(Kern)

Epiloog

<? xml version="1.0" encoding= "UTF-8" ?><!– commentaar en verwerkings-instructies -->

<boekenlijst> <boek categorie="thriller"> <titel>Het Bernini Mysterie</titel> <auteur>Dan Brown</auteur> </boek></boekenlijst>

<!-- commentaar en verwerkings-instructies -->

Doc

umen

t

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

11/37

ELIS – Multimedia Lab

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>

<auteur></auteur> = <auteur />

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

12/37

ELIS – Multimedia Lab

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

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

13/37

ELIS – Multimedia Lab

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

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

14/37

ELIS – Multimedia Lab

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

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

15/37

ELIS – Multimedia Lab

Boomstructuur – Algemeen

Document-wortel

Kern

Epiloog

Proloog

Document-element

Elementenboom

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

16/37

ELIS – Multimedia Lab

Boomstructuur – Elementen

<Boekenlijst>

<Boek> <Boek>

<Titel> <Auteur> <Titel> <Auteur>

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

17/37

ELIS – Multimedia Lab

Boomstructuur – Gedetailleerd

root

*

elementboekenlijst

*

elementboek

*

elementboek

*

elementtitel

*

elementauteur

*

attribuutcategorie

*

tekst

“Het Bernini ...”

tekst

“Dan Brown”

tekst

“thriller”

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

ELIS – Multimedia Lab

XML-naamruimten

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

19/37

ELIS – Multimedia Lab

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>

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

20/37

ELIS – Multimedia Lab

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>

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

21/37

ELIS – Multimedia Lab

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>

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

22/37

ELIS – Multimedia Lab

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>

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

ELIS – Multimedia Lab

W3C XML Schema

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

24/37

ELIS – Multimedia Lab

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)

instantieXML

(structuur)W3C XML

Schema instantie

validatievalidatie

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

25/37

ELIS – Multimedia Lab

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>

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

26/37

ELIS – Multimedia Lab

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

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

27/37

ELIS – Multimedia Lab

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" />

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

28/37

ELIS – Multimedia Lab

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

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

29/37

ELIS – Multimedia Lab

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>

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

30/37

ELIS – Multimedia Lab

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>

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

31/37

ELIS – Multimedia Lab

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>

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

32/37

ELIS – Multimedia Lab

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>

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

33/37

ELIS – Multimedia Lab

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>

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

34/37

ELIS – Multimedia Lab

<!-- … --> <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>

W3C XML Schema - Uitgewerkt Voorbeeld (2/2)

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

35/37

ELIS – Multimedia LabW3C XML Schema

Visualisatie Via XMLSpy (Of Via Oxygen)

ouderelement sequentieverplicht

kind

optioneelkind

optreden van boek

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

Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007

36/37

ELIS – Multimedia Lab

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 -->