MME Winter 07 | XML

Wat is XML?

XML staat voor eXtended Markup Language. XML is een taal die bestaat uit <tags> die je zelf definieert. Deze tags beschrijven de inhoud van een document, niet de vorm. Wanneer je bekend bent met HTML heb je al een idee van wat een markup language (opmaaktaal ) is. Wanneer je een kale tekst schrijft, dan bestaat het enkel uit letters en verder niets meer. Wanneer je de tekst in kladblok (notepad) opent dan wordt alles weergegeven in hetzelfde lettertype en fontsize. Een opmaaktaal zoals HTML (hypertext markup language) of XML, voegt speciale opmaak toe aan je tekst, waardoor een programma dat het bestand wil tonen, de mogelijkheid heeft deze met opmaak kenmerken te tonen. Op deze manier kan je een header bijvoorbeeld gecentreerd weergeven, de fontsize wijzigen of iets een speciaal kleurtje meegeven. Daarnaast kan je op deze manier ook lijsten of tabellen toevoegen. Op deze manier geeft HMTL opmaak aan je internetpagina en kan XML opmaak meegeven aan een tekstbestand.

Specificeren van opmaak

Nu is dit natuurlijk wat kort door de bocht. HTML wordt allang niet meer alleen voor opmaak gebruikt. Iedereen heeft vorigjaar geleerd dat je opmaak kenmerken toevoegt met een Cascading Stylesheet (CSS) HTML gebruik je alleen nog maar om structuur aan te geven in je tekst. Preciezer is om te zeggen dat een markuplanguage wordt gebruikt om een gedeelte van de content te kunnen scheiden van een de rest van de content. De wijze van weergave van die verschillende delen in de content regel je vervolgens doormiddel van een stylesheet.

Een soort HTML dus?

Nee, niet echt. HTML werkt met een vaste set TAGS. Variaties van het presenteren van de tags kun je aanbrengen met een stylesheet (CSS). XML daarentegen gebruikt geen vaste TAG set. Het is een zgn. META taal. Dit houdt in dat XML de mogelijkheid biedt om zelf tags te definieren en om de structurele relatie tussen de tags aan te brengen. Met CSS en XSL (eXtended Style Language) kun je stylen toepassen op XML data.

XSL:FO = Formatting Objects, taal om op te maken
XSL:T = Transformations, taal om te transformeren naar iets anders

Voorbeeld

<?xml version="1.0"?>
<song>
	<titel>Shiny Happy People</titel>
	<artiest>R.E.M.</artiest> 
	<album>Out Of Time</album> 
	<refrein>Shiny happy people laughing</refrein> 
	<strofe> 
		Meet me in the crowd 
		People people 
		Throw your love around 
		Love me love me 
		Take it into town 
		Happy, happy 
		Put it in the ground 
		Where the flowers grow 
		Gold and silver shine 
	</strofe>
	<refrein> 
		Shiny happy people holding hands 
		(Shiny happy people holding hands) 
		Shiny happy people laughing 
	</refrein>
</song> 

Document Type Definition

Omdat XML geen gebruik maakt van vaste tags en je zelf de tags verzint hoort er bij een xml document ook een DTD te zitten. Dit wordt echter niet altijd even zorgvuldig gedaan. DTD staat voor Document Type Definition. Het definieert alle type tags die zijn toegestaan binnen het document en vervolgens hoe ook deze in relatie staan tot elkaar. Het definieert hoeveel elements (tags) er zijn en welke elements weer binnen een element bestaan. Bij bovenstaand voorbeeld geeft je dan aan dat binnen het element <song> de elementen titel, artiest, album, refrein en strofe bestaan. Meestal wordt op deze wijze opmaak kenmerken gekoppeld aan een element. Waardoor de opmaak niet al te veel werk is.

Attributen

Naast de gelijkenis met html dat je tags kan gebruiken, kan je binnen xml ook attributen defineren. Soms wil je meer data mee geven dan bijvoorbeeld alleen tekst, maar bijvoorbeeld ook gegevens over plaatjes, links naar andere informatie etc.

Waarom XML?

XML is pure tekst (niet binair) en daarom platform- en applicatie-onafhankelijk. Een XMLdocument kan je in principe met eender welk programma op eender welk platform bekijken. Vergelijk dit met het alfabet: twee mensen die een verschillende taal spreken, maar wel hetzelfde alfabet gebruiken, zullen elkaars woorden altijd kunnen herkennen.

Als twee mensen elkaars woorden herkennen, wil dit nog niet zeggen dat ze elkaar begrijpen. Iemandspreekt misschien een taal die de ander niet begrijpt. Dit gaat ook op voor XML. Je weet dat je in XML je eigen tags kan definiëren, maar als iedereen zijn eigen tags gaat aanmaken, begrijpt niemand elkaar nog. Enkel als men afspraken maakt over de gebruikte tags, worden XML-gegevens uitwisselbaar. Daarom wordt er gestreefd naar standaarden. Voorbeelden van XML-standaarden zijn XHTML (HTML volgens de XML syntax – zie verder), MathML (weergeven van wiskundige formules), SMIL (Synchroniseren van Multimedia-informatie), SVG (Weergeven van grafische informatie) en XSLT(zie verder).

XML-teksten zijn leesbaar voor mensen en toch handelbaar voor computers. XML is een compromis tussen twee uitersten: voor de machine supersnel toegankelijke maar voor de mens bijna onleesbare codes versus pure tekstgegevens die voor de mens vlot leesbaar zijn maar heel moeilijk te verwerken door computers.

Bij XML is inhoud gescheiden van opmaak. Dit maakt het heel flexibel: dezelfde inhoud kan makkelijk op verschillende manieren worden getoond. Een ander voordeel is het single-source principe: één bronbestand van waaruit verschillende presentaties kunnen worden afgeleid. Bij wijzigingen moet enkel de bron worden aangepast en de verschillende presentatievormen veranderen automatisch mee. Zo kan je bijvoorbeeld een andere vorm kiezen voor verschillende soorten gebruikers of toepassingsgebieden (bijvoorbeeld PDA of WAP).

Toepassingen van XML

XML wordt op verschillende manieren toegepast in allerlei verschillende gebieden en dus verschillende type informatie. Omdat er vaak toch behoefte blijkt aan standardisering wordt er vaak een DTD afgesproken die iedereen dient te gebruiken. Bij verschillende type informatie kan je denken aan XML voor technische documentatie, wiskundige berekeningen, bladmuziek enzovoorts. Om dit soort documenten te kunnen lezen of leren kennen is het dus genoeg om de DTD informatie te lezen. Het leren gebruiken van deze varianten binnen XML is hetzelfde als HMTL leren. Daarnaast wordt XML ook heel vaak gebruikt als communicatie middel tussen databases en verschillende applicaties. De xml neemt dan vorm aan naar de database structuur, zodat je de informatie kan labelen en weer geven in een programma als flash.

Opbouw van XML elementen

Om een xml document te maken heb je elementen nodig. Ik kies voor voorbeeld met een land, met daarin bossen, met bomen. Zie hier onder

<LAND> 
	<FOREST> 
		<TREE>Oak</TREE> 
		<TREE>Pine</TREE> 
		<TREE>Maple</TREE> 
	</FOREST> 
	<MEADOW> 
		<GRASS>Bluegrass</GRASS> 
		<GRASS>Fescue</GRASS> 
		<GRASS>Rye</GRASS> 
	</MEADOW>
</LAND> 

Een xml element heeft altijd een openings tag en een eindtag nodig

<tree>Megagrote eik</tree>

stel dat je een element hebt zonder content, mag het er alsvolgt uitzien

<niets></niets> 

Dit is af te korten tot

<niets/> 

Naamgeving

Proloog

Net zoals je een header gebruikt in HTML moet je bij xml ook altijd een header toevoegen:

PDF met meer informatie

XMLguide.pdf

Auteur: Roos Groenewegen
Seizoen: Winter
Lesnummer: 07
Datum: 13-12-2005
Type les: MME