multimedia academiejaar 2006–2007 practicum 4: xml - basisconcepten 30 maart 2007
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 PresentationTRANSCRIPT
ELIS – Multimedia Lab
Multimediaacademiejaar 2006–2007
Practicum 4: XML - basisconcepten30 maart 2007
Chris PoppeMultimedia Lab
vakgroep Elektronica en Informatiesystemenfaculteit Ingenieurswetenschappen
Universiteit Gent
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
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/
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)
ELIS – Multimedia Lab
Inleiding practicum 4:XML - basisconcepten
ELIS – Multimedia Lab
Extensible Markup Language (XML)
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
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, ...
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
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
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 />
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: & stelt ‘&’-symbool voor
– attributen zijn syntactisch correct
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
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
Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007
15/37
ELIS – Multimedia Lab
Boomstructuur – Algemeen
Document-wortel
Kern
Epiloog
Proloog
Document-element
Elementenboom
Multimedia – Practicum 4: XML - basisconceptenChris Poppe30/03/2007
16/37
ELIS – Multimedia Lab
Boomstructuur – Elementen
<Boekenlijst>
<Boek> <Boek>
<Titel> <Auteur> <Titel> <Auteur>
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”
ELIS – Multimedia Lab
XML-naamruimten
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>
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>
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>
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>
ELIS – Multimedia Lab
W3C XML Schema
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
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>
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
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" />
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
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>
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>
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>
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>
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>
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)
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
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 -->