ID.nl logo
Zekerheid & gemak

Workshop XML

Deel 1: de theorie. Een website bouwen of een multimediapresentatie maken? Dat doet u eenvoudig met xml. Xml groeit langzamerhand uit tot een standaardformaat van allerlei documenten, en bedrijven zien het als een prachtige oplossing voor gegevensoverdracht. Maar: hoe werkt het precies en waarom is het zo handig? Deze maand: de theorie

"Om goed te kunnen begrijpen hoe xml werkt, leggen we nog even kort uit hoe het ook weer zat met de lingua franca van alle webpagina's: html (hypertext markup language). Open voor een voorbeeld een willekeurige webpagina in uw browser en roep via het menu Beeld de broncode van die pagina op. Waarschijnlijk belandt u nu middenin een reeks labels (markup tags). De oorspronkelijke bedoeling van html was om via zulke tags de logische structuur van het webdocument aan te geven. Voorbeelden van zulke tags zijn

(alinea),

(een titel van niveau 3) en(een lijst-item). Al snel kwamen er tal van tags bij die vooral voor een mooiere lay-out moesten zorgen: (cursieve tekst), (het lettertype) of (een lichtkrant, herkend door Microsoft-browsers). Stel nu dat u het recept van uw favoriete streekgerecht in een webpagina wilt gieten, dan zou (een stukje van) de html-broncode er als volgt uit kunnen zien:Overmeerse kneutelsDeegbollen gekookt in water (4 ps.)1000 gramzelfrijzende bloem2eieren200 gramrozijnen1,5 kopjesprankelend waterMeng alle ingrediënten goed door elkaar, tot er een soort brooddeeg ontstaat.
Schep hier deegbollen van en leg die 7 minuten in kokend, licht gezouten water.
Dien warm op en overgiet met gecondenseerde zoete melk.***htmlcss.tif Html + css Css Dergelijke html-code heeft echter enkele typische tekortkomingen. Wilt u bijvoorbeeld de lay-out van deze pagina ingrijpend verfraaien, dan wordt de broncode door al die extra tags meteen een stuk onoverzichtelijker. En wilt u achteraf de lay-out van al uw receptenpagina's wijzigen, dan vergt dat een aanpassing van elke pagina afzonderlijk. Dit is natuurlijk niet erg praktisch en daarom werd css (cascading style sheets) in het leven geroepen. Met css is het namelijk mogelijk om de lay-outgegevens te scheiden van de eigenlijke inhoud van het document; stopt u dus alle stijlinformatie in een apart bestand én roept u dit bestand vanuit uw webpagina's op, dan hoeft u alleen dit ene bestand te wijzigen om meteen een andere lay-out voor uw complete site te krijgen. Zo zou u deze volgende verwijzing in uw html-bestand kunnen opnemen: . Vervolgens kunt u in de juiste map (in ons voorbeeld: stijlen) het bestand receptenstijl.css creëren en daarin vastleggen hoe bijvoorbeeld een-tag er precies moet uitzien: H1" { "color: red; background-color: yellow; " "font-family: Arial, Helvetica; " "} ***xml.tif Xml geeft structuur aan uw inhoud Xml Ookal is css een elegante oplossing voor stijlfreaks, het geeft de pagina inhoudelijk niet per se een duidelijker opbouw. Stel dat een uitgeverij dergelijke pagina's binnenkrijgt om er een kookboek mee samen te stellen, dan is het nog heel veel werk om hieruit alle informatie correct te distilleren. Met xml - dat staat voor eXtensible markup language - is dit wel mogelijk, namelijk door specifieke markup tags te gebruiken die nauwkeurig de aard van de informatie aangeven. Als voorbeeld: <?xml version=”1.0”?> Overmeerse kneutels Deegbollen gekookt in water 4 1000 gram zelfrijzende bloem Meng alle ingredienten goed door elkaar, tot u U begrijpt dat het voor die uitgeverij met behulp van een xml-parser ('ontrafelaar') al een stuk makkelijker is om hieruit de nodige informatie te halen. Immers, de typische onderdelen van een recept (zoals titel, omschrijving, aantal personen, hoeveelheden) hebt u precies benoemd in de vorm van tags. Het feit dat u dus zélf tags kunt toevoegen verklaart de x in xml (extensible betekent uitbreidbaar). Maar u moet nóg twee horden nemen: stijl enerzijds en definities en schema's anderszijds. ***xmlcss.tif Xml en css: een stijloefening. ***xmlxsl.tif Xml en xsl: een krachtig duo. Stijl Probeert u het xml-bestand maar in uw (xml-compatibele) browser te openen. Die kan weliswaar overweg met uw xml-code, maar die doet er weinig meer mee dan de onderliggende boomstructuur van uw code interpreteren en weergeven (zie afbeelding). De root is in dit geval , die op zijn beurt bestaat uit de elementen , , , . Uw browser heeft dus nog een mechanisme nodig waarmee hij de xml-code in de gewenste lay-out kan gieten. Dat kan op verschillende manieren; u kunt bijvoorbeeld vanuit deze xml-pagina naar een css-bestand refereren. Vanuit dat bestand bepaalt u dan voor elk element het gewenste uiterlijk. Neemt u deze verwijzing bovenaan in uw xml-code op: <?xml-stylesheet href=”stijlen/recept.css” type=”text/css”?> dan kunt u bijvoorbeeld het element als volgt stileren in dat css-bestand: materie { font size: 14 pt; font weight: bold; color: green; background-color: lime; } Css heeft echter met enkele beperkingen te maken. Zo kunt u hiermee niet de elementen uit het brondocument in een andere volgorde afbeelden, u kunt er ook geen tekst of afbeeldingen aan toevoegen, u kunt geen criteria bepalen op grond waarvan bepaalde elementen al dan niet getoond worden en u kunt er geen berekeningen mee laten uitvoeren. Anders gezegd: de structuur van het xml-document kan het beste niet té ver uit de buurt van de uiteindelijke vormgeving liggen die u (als auteur) beoogt. Dit kan wél met het krachtige xsl(t) (extensible stylesheet language transformations). Zo'n extern xsl-bestand roept u vanuit het xml-document op dezelfde wijze op als een css-bestand: <?xml-stylesheet href=”stijlen/recept.xsl” type=”text/xsl”?>. Het voert te ver om de mogelijkheden van deze taal gedetailleerd te bespreken, maar hiermee krijgt u wellicht toch al een aardig idee:U merkt dat zo'n xsl-bestand al een beetje op een heuse programmeertaal begint te lijken. Zo hebben we hier bijvoorbeeld een soort van lus opgenomen (for-each) die het hele xml-document afspeurt naar het -element. Binnen zo'n xsl-bestand kunt u verder ook de (x)html-tags van allerlei eigenschappen voorzien (in ons voorbeeld: h1, h2 en u). Definities en schema's U bent nu al een flinke stap verder: de uitgeverij kan probleemloos de structuurelementen uit uw xml-documenten halen én er eventueel snel de gewenste lay-out op toepassen. Het xml-document noemen we in dit geval 'well formed'. Maar wat als verschillende personen hun favoriete streekgerechten doorsturen naar die uitgeverij? Dat hoeft natuurlijk geen probleem te zijn, zolang iedereen gebruikmaakt van precies dezelfde xml-boomstructuur met identieke elementen. De uitgeverij doet er dan ook goed aan om een schemadocument (soort syntax-sjabloon) op te stellen dat de inhoudelijke structuur van de xml-documenten precies vastlegt. Dit document kan de uitgeverij dan (online) ter beschikking stellen. Iedereen die streekgerechten doorstuurt, hoeft dan slechts in zijn xml-document naar dat schemadocument te verwijzen. Zo'n document is dus al iets meer gestandaardiseerd en noemen we 'valid' (versus well formed). Aanvankelijk nam zo'n schemadocument de vorm van een dtd aan (document type definition). Het volstaat in zo'n geval de volgende regel in uw xml-document op te nemen: <?xml version:”1.0”?> . Een geschikt dtd-document zou er voor de uitgeverij dan ongeveer als volgt kunnen uitzien. materie CDATA #REQUIRED> Veeleisende xml-gebruikers botsten echter al snel op enkele storende beperkingen van het dtd-formaat, waardoor het intussen wat uit de gratie is geraakt. Zo kunt u niet aangeven dat 'hoev' (hoeveelheid) hier geen negatief getal mag bevatten, of dat dit alleen geaccepteerd wordt als ook 'materie' aanwezig is. Er staan gelukkig wel al enkele waardige opvolgers van dtd klaar en het lijkt er vooralsnog op dat (W3C) xml schema (definition language) - afgekort als xsd - het pleit wint. Volgende maand deel 2: xml in de praktijk ***Kader Op Het Web Op PCMweb.nl vindt u verschillende voorbeelden van de hier besproken html- en xml-codes. Wilt u zich in verdiepen in xsd, dan vindt u een uitgebreide cursus op www.w3schools.com/schema. Op dezelfde site kunt u ook terecht voor een overzichtelijke xml-gids (www.w3schools.com/xml) en een solide basis voor verder onderzoek vindt u op www.w3.org/xml.

▼ Volgende artikel
Wanneer is een tv écht te groot voor je woonkamer?
Huis

Wanneer is een tv écht te groot voor je woonkamer?

Iedereen droomt weleens van een thuisbioscoop, maar groter is niet altijd beter. Een te groot scherm kan bijvoorbeeld zorgen voor vermoeide ogen of korrelig beeld. Ontdek hoe zaken als kijkafstand, de resolutie en de kijkhoek bepalen of een televisie daadwerkelijk in je woonkamer past.

In de felverlichte showroom van de elektronicawinkel lijkt die enorme 75-inch televisie waanzinnig indrukwekkend, maar eenmaal aan de muur in een doorsnee Nederlandse doorzonwoning kan zo'n gapend zwart vlak de ruimte volledig domineren. Veel consumenten denken onterecht dat een groter scherm automatisch garant staat voor een betere kijkervaring, ongeacht de afmetingen van de kamer. Toch is er een harde technische grens waarbij groot verandert in té groot, met hoofdpijn en onscherp beeld als direct gevolg. In dit artikel leer je precies hoe je die grens bepaalt en de ideale televisie kiest.

De kern van het probleem: resolutie en blikveld

Het probleem van een te grote tv is niet alleen esthetisch, maar vooral fysiologisch en technisch. Het draait allemaal om de verhouding tussen de resolutie (het aantal beeldpunten) en je blikveld. Zelfs bij moderne 4K-televisies zijn de pixels niet oneindig klein. Als je een enorm scherm neemt en daar te dicht op zit, trek je het beeld als het ware uit elkaar. Hierdoor verliest het beeld zijn scherpte en samenhang; je hersenen moeten harder werken om de losse informatie tot één geheel te smeden.

Een veelgehoorde misvatting is dat je simpelweg went aan elk formaat. Hoewel de eerste shock van een groot scherm inderdaad verdwijnt, blijft de fysieke belasting overeind. Als een scherm meer dan 40 graden van je horizontale blikveld inneemt, kun je niet meer het hele plaatje in één oogopslag zien. Je ogen moeten dan constant van links naar rechts scannen om de actie te volgen, vergelijkbaar met het kijken naar een tenniswedstrijd vanaf de eerste rij. Dat zorgt voor vermoeide ogen en kan op den duur zelfs leiden tot misselijkheid, ook wel 'cybersickness' genoemd.

©Gorodenkoff

Wanneer werkt een groot formaat wél goed?

Er zijn specifieke scenario's waarin een wandvullend scherm niet alleen kan, maar zelfs de voorkeur heeft. Dat geldt vooral als je de televisie primair gebruikt voor hoogwaardige content. Denk hierbij aan films op 4K Blu-ray of streamingdiensten die uitzenden in de hoogste bitrate, en uiteraard gaming op moderne consoles. In deze gevallen is de bronkwaliteit zo hoog dat je dichterbij kunt zitten zonder fouten in het beeld te zien.

Daarnaast werkt een groot formaat goed als de kijkafstand het toelaat. In moderne woningen met een open plattegrond of een loft-indeling staat de bank vaak wat verder van de muur. Als je kijkafstand meer dan 3 meter is, valt een 55-inch televisie al snel in het niet en moet je turen om details te zien. Een 65-inch of groter model herstelt in dat geval de balans en zorgt voor die gewenste bioscoopervaring, waarbij het scherm groot genoeg is om je onder te dompelen zonder dat je individuele pixels ziet.

Wanneer werkt dit níet goed?

De nadelen van een te grote tv worden pijnlijk duidelijk bij 'gewoon' tv-kijken. Veel lineaire televisieprogramma's, zoals het journaal, talkshows of sportuitzendingen via de kabel, worden niet in 4K uitgezonden, maar in Full HD of zelfs nog lager. Een enorme tv vergroot dat signaal genadeloos uit. Op een te groot scherm zie je dan plotseling ruis, compressieblokjes en onscherpe randen die op een kleiner scherm onzichtbaar zouden blijven. Het beeld oogt daardoor onrustig en rommelig.

Ook in de fysieke ruimte kan het tegenvallen. Een tv die uit staat is een groot, zwart en reflecterend vlak. In een compacte woonkamer zuigt een te groot scherm alle aandacht naar zich toe, zelfs als hij uitstaat. Zoiets verstoort de balans in je interieur en kan de kamer kleiner laten aanvoelen dan hij eigenlijk is. Daarnaast is de plaatsing van sfeerverlichting vaak lastiger; een gigantisch scherm blokkeert lichtinval of reflecteert lampen op een storende manier.

©RDVector

Als je té dicht op je televisie zit, kun je de kleurenleds van elkaar onderscheiden.

Dealbreakers: hier ligt de grens

Er zijn een paar harde grenzen die aangeven dat je beter een maatje kleiner kunt kiezen. Als je een van de onderstaande punten herkent, is dat een duidelijk signaal.

Je moet je hoofd fysiek draaien

Als je tijdens het kijken naar een film ondertiteling leest en daardoor de actie boven in het scherm mist, of als je je nek daadwerkelijk moet draaien om van de linker- naar de rechterhoek te kijken, is het scherm te groot voor je kijkafstand. Je verliest het overzicht.

De tv past fysiek niet op het meubel

Dit klinkt misschien logisch, maar wordt vaak genegeerd. Als de pootjes van de tv net aan op de rand van je tv-meubel balanceren, of als het scherm breder is dan het meubel zelf, oogt dat niet alleen goedkoop, het is ook onveilig. Een scherm dat buiten de kaders van het meubel steekt, is enorm kwetsbaar voor (om)stoten.

Je ziet pixels of rastervorming

Ga op je favoriete plek op de bank zitten. Zie je bij normaal HD-beeld een soort hordeur-effect of individuele blokjes? Dan zit je te dichtbij voor dat specifieke formaat. Dat is geen kwestie van wennen; het is een mismatch tussen resolutie, inch-maat en kijkafstand.

Wat betekent dit voor jouw situatie?

Om te bepalen of een tv past, moet je de rolmaat erbij pakken en even kritisch naar je eigen kijkgedrag kijken. De algemene vuistregel voor 4K-televisies is: meet de afstand van je ogen tot het scherm in centimeters en deel dat door 1,2 tot 1,5. De uitkomst is de ideale schermdiagonaal.

Zit je bijvoorbeeld op 2,5 meter (250 cm) van je scherm? Dan kom je uit op een schermdiagonaal tussen de 166 cm (65 inch) en 208 cm (82 inch). Maar let op: dat geldt alleen voor pure 4K-content. Kijk je veel normale televisie (praatprogramma's, nieuws)? Hanteer dan factor 2. Bij 250 cm afstand kijkt een scherm van 125 cm diagonaal (ongeveer 50 inch) dan vaak prettiger en rustiger. Ben je een fanatieke gamer of filmfanaat? Dan kun je de grens opzoeken. Ben je een casual kijker? Kies dan veilig voor een formaatje kleiner.

©BS | ID.nl

In het kort

Een televisie is te groot wanneer het beeld onscherp oogt of wanneer je fysiek je hoofd moet draaien om alles te kunnen volgen. Hoewel een groot scherm indrukwekkend lijkt, vergroot het bij standaard televisie-uitzendingen ook alle beeldfouten uit. De ideale grootte is een balans tussen kijkafstand en de kwaliteit van wat je kijkt. Meet daarom altijd de afstand tussen bank en muur, en wees realistisch over je kijkgedrag. Zo voorkom je hoofdpijn en blijft tv-kijken ontspannend.

▼ Volgende artikel
Microsofts Xbox Developer Direct heeft de code gekraakt
Huis

Microsofts Xbox Developer Direct heeft de code gekraakt

Het is ergens in 2025 als Fable voor het eerst, een soort van, getoond wordt. Beelden volgen elkaar in rap tempo op. We zien de dame die de hoofdrol lijkt te spelen, geen HUD en vooral heel veel mooie filmpjes. Daarna begint het wild speculeren, de klachten over het hoofdpersonage, de vraagtekens over de gameplay. Gelukkig was daar gister de Xbox Developer Direct, waar Microsoft eens te meer bewees de code gekraakt te hebben.

Vóór de pandemie, toen de Electronic Entertainment Expo (E3) nog bestond en online showcases, Directs en State of Plays nog niet echt een ding waren, wisten gameboeren hun spellen prima te verkopen. Ontwikkelaars verschenen op het podium tijdens liveshows, praatten over hun games, speelden live een demo (wat net zo vaak goed als faliekant misging) en dergelijke presentaties werden afgewisseld met teasers, hypetrailers en (nog verder terug) zelfs weleens grafieken en verkoopcijfers. Hoe anders is de wereld anno nu.

Watch on YouTube

Trailers vol trailers

Klaar zitten voor The Game Awards, een gemiddelde Direct, Showcase of Summer Game Fest is leuk, maar niet hetzelfde als ‘toen’. Want de formule is inmiddels bekend. Een half uur, een uurtje, een paar uur lang wordt er de ene na de andere trailer op je hersenen afgevuurd. Wat is ‘reclame’ en wat niet? Geen idee. Standaard zijn de animegames die elkaar zo rap opvolgen dat de gemiddelde kijker niet eens meer weet waar de ene game begint en de ander ophoudt. Meestal zit er een klapper aan het begin, waarna het grote wachten op de klapper aan het einde begint.

Vraag iemand een week later wat ie gezien heeft, en meer dan de helft van de getoonde games is waarschijnlijk uit het geheugen verdwenen.  En al die flarden van beelden zonder fatsoenlijke uitleg leiden vaker wel dan niet tot hetzelfde als die ene soort van trailer van Fable: speculaties, wild geroep en vraagtekens. Het komt de online discussie rondom games niet ten goede.

©Playground Games

Hoe anders was de inmiddels traditionele Xbox Developer Direct. Langer dan een uur, voor maar vier games. Die games kregen zodoende alle tijd, net als de ontwikkelaars. Gameplaybeelden zijn niet aan te slepen, verscheidene modi worden uitgebreid besproken en zelfs de kleinste details krijgen meer dan genoeg ademruimte. Zo horen we tijdens de Forza Horizon 6-presentatie dat het nummer van je eigen hangar (78) gekozen is omdat de game zich afspeelt in Japan, en die cijfers daar een positieve lading hebben. Fijn om te horen hoe scherp het oog voor detail van een ontwikkelaar is. Dat zegt iets over het project. En het is ook iets wat je never nooit in een hypetrailer van anderhalve minuut langs had zien komen.

Trailers vol trailers

En dus zit ik gisteravond te genieten. Niet eens per se van de games, want ze vallen net niet in mijn straatje. Forza Horizon 6 vind ik héél indrukwekkend en de game zal ongetwijfeld miljoenen spelers perfect bedienen, maar ik ben niet zo van het racen. Game Freak - de makers van Pokémon die eindelijk hun vleugels uitslaan met graphics uit dit decennium - komen met Beast of Reincarnation. Het ziet er oké uit. Double Fine vindt in mij ook geen fan en een multiplayer-pottenbakgame (Kiln) is niet iets wat hoog op mijn lijstje stond. Zelfs afsluiter Fable wist me met z’n levenssimulaties ook niet te overtuigen. Maar, nogmaals, wat heb ik genoten. Van ontwikkelaars die ruim de tijd kregen. Van de games, die van alle kanten belicht werden. Van de antwoorden die we kregen.

©Playground Games

Want wat ik nou precies van die games vond, is niet eens zo heel belangrijk. Veel belangrijker is dat iedereen dit keer in ieder geval een uitgebreid beeld kreeg van wat deze games nu precies worden. Een Xbox Developer Direct creëert geen valse hype. Van die vier getoonde games, weten we nu eigenlijk alles wat we redelijkerwijs moeten weten. Zoals bijvoorbeeld dat Fable een character creation-modus heeft, om maar iets te noemen. En plots zie je de discussies rondom de games gaan om… de inhoud. En niet op wilde speculaties rondom hoofdpersonages die helemaal niet vast blijken te staan. Love it.