<abc (sort-end)

2005/05/23

ToolView

dePTSer

XML & XSLTproc
http://Albert.mietus.nl/read.IT/ToolView/XSLTproc.html

XML en embedded programmeren lijken niet samen te gaan. Toch wordt XML in embedded omgevingen gebruikt, omdat je er gemakkelijk 'boom'-structuren mee kunt beschrijven. Het geeft structuur en flexibiliteit. Ook is het heel eenvoudig om een XML bestand om te schrijven naar een ander formaat. Dat kan met XSLTproc, waarmee je programmeert in XML!

Programmeren in XML

XML is niet één taal zoals HTML, het is eerder een concept. Er bestaan namelijk heel veel XML-talen. XHTML is waarschijnlijk de bekendste: eigenlijk is dit HTML mét een paar verbeteringen, om aan XML te voldoen. Veel minder bekend is XSLT: een programmeertaal geschreven in XML en bedoeld om data in XML-formaat te bewerken. Het is een echte, krachtige programmeertaal. XSLT-programma's zijn vaak kort omdat de taal een zeer hoog abstractieniveau heeft.

eXtensible Stylesheet Language: Transformations

XSLTproc is een 'C'-interpreter voor XSLT. Het leest 2 XML-files; één als programmatekst en de andere als data; waarbij ook HTML als data gebruikt mag worden. De data wordt geanalyseerd en intern als boom opgeslagen, vergelijkbaar met de 'DOM' (Document Object Model) in je webbrowser. De programmatekst bevat vooral patronen en templates. XSLTproc zal de patronen in de data herkennen en dan een template toepassen. Zo ontstaat geleidelijk een nieuwe boom, die uiteindelijk 'geserialized' wordt: uitgeschreven in een nieuwe XML file. Technisch heet dit een transformatie, wat weer een deel van de naam verklaart. De 'S' is minder goed verklaarbaar en zeker niet te vergelijken met een HTML/CSS 'stylesheet'!

Waarom?

Waarom zou je een programma schrijven in een taal die vooral lijkt te bestaan uit driehoek-haakjes? Het lijkt inderdaad omslachtig. Toch heeft XSLT(proc) voordelen, vooral als je werkt met veel of flexibele gegevens. Zoals uit een geautomatiseerde meting. Heb je slechts een deel van die meetwaarden nodig, dan kun je XSLTproc gebruiken om die te selecteren. Maar ook als je de volgorde of structuur wilt veranderen, dan kan dat. Of je kunt mooie, overzichtelijke (X)HTML pagina's genereren vanuit een complexe berg aan meetgegevens. XSLTproc kan het omgekeerde ook: een complexe HTML-file inlezen, de opmaak wegfilteren en de gewenste data overzichtelijk bewaren in XML. Als programmeur kijk je dan naar structuur en relaties, zonder dat je je zorgen hoeft te maken over geheugenallocatie, arraygrenzen, etcetera.

XXX of niet

XML is een jong concept en XSLT is een taal in ontwikkeling. Dat de traditioneel ingestelde RT wereld daarom afwacht, is logisch! Toch is dat jammer en niet nodig. Zeker niet in voor modernere embedded Linux systemen! XSLTproc kan, zeker daar, goed gebruikt worden als tool voor de embedded ingenieur.

Rubriek: ToolView

Elke ingenieur gebruikt tools en iedereen heeft zijn eigen voorkeur, vaak gebaseerd op wat er toevallig als eerste beschikbaar was. Zo ook de ICT-ingenieur. Ook hij gebruikt tools, softwaretools wel te verstaan. Daar zijn er oneindig veel van, waardoor kiezen erg moeilijk is.

Het leren gebruiken van een tool kost tijd. Maar als je de naam en het doel van het tool kent, loont het gebruik al vaak de moeite. Het inleren en inzetten kost vaak minder tijd dan het aanmodderen zonder een goed tool.

Veel handige tools worden echter niet gebruikt, eenvoudigweg omdat ze niet bekend zijn. Daarom wenden we deze rubriek aan om degelijke handige tools voor te stellen. Deze keer kijken we naar XML en hoe je in deze taal kunt programmeren!
Voor meer info: albert

Door & more

Er zijn meerdere opties om met XSLT te werken. Zo is er waarschijnlijk een 'XSLT processor' ingebouwd in je webbrowser.

XSLTproc is een commandline tool, wat handiger is voor niet web-werk. Je kunt de tool aanroepen zoals je het wilt en het resultaat opslaan. Ook kun je XSLTproc inbouwen in je eigen programma, door 'libxslt' mee te linken. XSLTproc is niet veel meer dan een 'main()' routine om die library heen. En omdat alles in C geschreven is, is het veel sneller dan de meeste Java implementaties.

Voor XLSTproc of een online cursus XSLT kijk je op: http://www.zvon.org/xxl/XSLTutorial of http://xmlsoft.org/XSLT/xsltproc2.html


Download

De orginele publicatie is beschikbaar in pdf: Download the orginal pdf"/>