Lente 03 | Data, XML en Feeds

Leerdoelen

Deze les

Basis XML

De basis van XML is al eerder in jaar 1 behandeld en wordt beschreven in een aparte lesbrief.
Klik hier om naar de XML lesbrief te gaan.

Structureren van data

Het plaatsen van data in een bestand kan op verschillende manieren. Je kunt alle data achter elkaar typen en het vervolgens opslaan als een tekstfile. Met <ctrl> f kun je dan zoeken in die data, waarna het gevonden trefwoord wel of niet wordt getoond.
Heel erg basic dus. De enige structuur die die data bevat is dat het een begin heeft en een einde. Deze structuur is dus niet geschikt als je in die data bijv. meerdere nieuwsberichten onderbrengt met elk een titel, auteur, datum en bericht.

Als je dus onderscheid wilt kunnen maken in je data, dan zul je deze van een hierarchie moeten voorzien, een structuur waaraan de lezer kan zien wat bij wat hoort.

Probeer de informatie altijd zo zuiver mogelijk te houden, gegroepeerd in parent items (entiteiten) en child items (elements). Zo'n 'zuiveringsslag' wordt ook wel normaliseren genoemd. Deze kreet kom je veel tegen bij het ontwerpen en inrichten van relationele databases, waarbij de data in een bepaald model (zgn. datamodel) wordt gegoten. Entiteiten worden dan vertaald naar tabellen waar records in kunnen. De tabel wordt ingedeeld met elementen.

Een tip om parents (zeg maar groepnivo's) en children (subnivo's) vast te stellen is om dit via een mindmap te doen. Ga voor jezelf na welke gegevens (data) je wilt stuctureren en denk hierbij in zelfstandige naamwoorden; dit zijn woorden waar je 'de', 'het' en 'een' voor kunt plaatsen zoals 'het nieuwsbericht' en 'de auteur'. Zet deze woorden eerst allemaal onder elkaar en ga dan kijken welke gegevens bij elkaar horen. Dit zou je met kleuren kunnen doen, of cirkels, of beiden. Een woord wat iets zegt over een ander woord (datum zegt iets over nieuwsbericht) is in feite een child element. Dat maakt nieuwsbericht weer de parent van datum.

XML is bij uitstek geschikt om je data van een structuur te voorzien. Nu kunnen diverse toepassingen de structuur lezen die je zelf hebt aangebracht. Standaard hierbij is dat je gebruik maakt van een zg. parent-child constructie.

Om bij het voorbeeld te blijven van de nieuwsberichten: de parent is nieuwsbericht, de children zijn titel, auteur, datum en bericht.
Maar binnen een child kun je ook weer children creeeren, bijv. onder auteur kun je de children naam, leeftijd en geslacht plaatsen.

xml:

<nieuwsbericht>
		<titel>Flash CS3 zuigt</titel>
		<auteur>
			<naam>Peter Kassenaar</naam>
			<leeftijd>42</leefijd>
			<geslacht>man</geslacht>
		</auteur>
		<datum>1 maart 2008</datum>
		<bericht>En dan volgt hier de inhoud van het bericht</bericht>
</nieuwsbericht>

Een andere mogelijkheid is om geen child elements te creeeren maar attributes. Je knoopt dan eigenlijk bepaalde properties, bepaalde eigenschappen, aan een element..
Dit doe je eigenlijk alleen als het een kenmerk van een element betreft en geen element zelf. In genoemd voorbeeld zou je bij nieuwsbericht de attribute "valid" op kunnen nemen, dus

xml:

<nieuwsbericht publish="true"> 
		<titel>Flash CS3 zuigt</titel>
		<auteur>
			<naam>Peter Kassenaar</naam>
			<leeftijd>42</leefijd>
			<geslacht>man</geslacht>
		</auteur>
		<datum>1 maart 2008</datum>
		<bericht>En dan volgt hier de inhoud van het bericht</bericht>
</nieuwsbericht>

 

Lesopdracht 1: datamodel naar XML

Maak een mindmap van de data die je denkt te gaan gebruiken in je showcase. Er ontstaat dan een datamodel, ongeveer zoals hierboven is getekend. Maak aan de hand daarvan een parent-child structuur in XML.

RSS feeds

Wat is eigenlijk RSS? En hoe kun je het gebruiken? Feeds zijn, letterlijk vertaald, voedingsbronnen. Ze voorzien applicaties van informatie.

Er is al eerder een lesbrief over RSS feeds gemaakt.
Klik hier om naar de RSS lesbrief te gaan.


Lesopdracht 2: RSS Feeds

Bouw het gemaakte XML document uit lesopdracht2 om naar een RSS feed en plaats deze online op je CMD webspace. Test de feed uit in IE en FF.

Auteur: CMD, Media aan de Maas
Seizoen: Lente
Lesnummer: 03
Datum: 04-03-2008
Type les: MME jaar 2