1 HANDLEIDING XML & XSL bij project G01 [aanvulling op: HANDLEIDING SGML EN XML ] Eric Sieverts Instituut voor Media en Informatie Management 2de stud...
MAJIX als hulpprogramma voor het transformeren van XML naar HTML . . . . . . . . 12
6
Direct tonen van XML in Internet Explorer 5.2 of 5.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
7
MAJIX als hulpprogramma voor het omzetten van Word-bestanden in XML . . . . . . . 15
Bijlage:
Installeren van het hulpprogramma Majix
16
G01 - XML & XSL
1
3
Van SGML naar XML
Tot dusverre hebben we een DTD gemaakt die eigenlijk voor SGML-toepassing bestemd was en met WP-7 als SGML-editor gewerkt. Voor het vervolgtraject willen we nu met XML verder. Gelukkig heb je (als het goed is) al een XML-compatibele DTD gemaakt. Dat betekent dat je SGML-gecodeerde document bijna ongewijzigd als XML-document kan worden gebruikt. Alleen de voor XML vereiste beginregel(s) van het document moeten daarvoor worden toegevoegd (en eventuele SGML-specifieke beginregels - de in WP meestal onzichtbare “proloog” - worden verwijderd). Voor XML-toepassing hoeft in de kop van het document geen te gebruiken DTD gespecificeerd te worden. Wel moet eventueel een te gebruiken style-sheet worden aangegeven. Voorlopig mag die echter ook nog worden weggelaten. Het enige wat je dus moet doen is te zorgen dat boven je begin-tag (die bijvoorbeeld <artikel> luidt) de volgende regel komt te staan: Deze regel kun je het beste met een gewone ASCII-editor als Notepad of Wordpad in je bestand aanbrengen. Geef je bestand vervolgens ook de voor verdere XML-verwerking vereiste extensie .xml , zodat het bijvoorbeeld “artikel.xml” komt te heten. Dit kun je met de Windows Verkenner doen.
Opdracht 5: Maak van je eerder gemaakte SGML-document een XML-document volgens de hierboven gegeven aanwijzingen.
2
Gebruik van style-sheets
Voor het in opgemaakte vorm beschikbaar stellen van SGML- of XML-documenten dienen stylesheets te worden gebruikt. Daarin wordt in principe voor elk van de in de documenten voorkomende elementen gespecificeerd in welke opmaak ze getoond moeten worden. Voor verschillende toepassingen worden vaak verschillende soorten style-sheets gebruikt. Voor XML is een “taal” in ontwikkeling, waarmee dergelijke style-sheet voorschriften gespecificeerd kunnen worden. Deze eXtensible Style-sheet Language (XSL) lijkt een geaccepteerde en wijdverbreide standaard te worden. XSL style-sheets zijn er in eerste instantie vooral voor bedoeld om óf XML-documenten om te zetten in (te converteren naar) HTML-bestanden die in elke web-browser getoond kunnen worden, óf XMLdocumenten direct in de gewenste opmaak te kunnen tonen in de nieuwste browsers (Internet Explorer vanaf versie 5.2 en Netscape in de nog uit te komen versie 6). Ook voor die tweede toepassing wordt in feite - intern in de browser - toch nog gewoon een transformatie naar HTML opmaak-codes uitgevoerd, op basis van wat de style-sheet voorschrijft. Op grond van deze toepassingen van XSL zegt men dan ook wel dat het een transformatie-taal is en spreekt men van XSLT (XSL Transformaties). Dit is ook de toepassing waartoe we ons hier zullen beperken.
Handleiding XML & XSL
Fig. 1
Transformatie van XML-document naar HTML op grond van een XSL style-sheet met behulp van de (gratis) utility XT van James Clark.
Fig. 2
Directe presentatie van XML-document in een XML-bewuste browser op grond van XSL
4
style-sheet (intern worden daarbij toch HTML opmaakcodes toegepast)
Daarnaast is XSL ook bedoeld om als echte opmaak-taal te worden gebruikt. Daarmee kunnen direct opmaak-voorschriften worden gegeven, zonder alleen maar een vertaling (transformatie) naar HTMLcodes te bieden - met de beperking tot alleen de in HTML beschikbare opmaak-mogelijkheden. Systemen die dergelijke XSL style-sheets accepteren, veelal ten behoeve van de opmaak van gedrukte documenten, zijn overal in ontwikkeling. Hier zullen we nog niet op dergelijke systemen ingaan en evenmin op XSL als directe opmaaktaal. Doordat XSL als standaard op dit moment nog in ontwikkeling is, kom je in de praktijk nog verschillen in implementatie tegen. Zo houdt Internet Explorer 5.2 zich niet helemaal aan de officiële standaard en moet je voor verschillende toepassingen wel eens varianten van dezelfde style-sheet maken. Niettemin zullen we proberen hier wat algemene aanwijzingen voor eenvoudige toepassingen te geven. De beperking tot “eenvoudige” toepassingen is ingegeven door de overweging dat XSL in feite een tamelijk complexe programmeertaal is, waarvan we niet kunnen verwachten dat elke MIMstudent die in alle details hoeft te kunnen toepassen (en zelfs niet in al die details hoeft te kunnen begrijpen).
3
Het principe van XSL transformaties
In principe kan elk XML-document als een boomstructuur worden opgevat. De DTD’s die we voor SGML- en XML-documenten ontwerpen gaan immers ook van een boomstructuur uit. Het enige verschil is dat in een document allerlei elementen meervoudig kunnen voorkomen, zoals bijvoorbeeld een hoofdstuk. Al die hoofdstukken in een bepaald document vormen dan afzonderlijke takken in de boomstructuur van dat document. In Fig. 3 is een deel van de boomstructuur van een eenvoudig document uitgetekend.
G01 - XML & XSL
Fig. 3
5
Een eenvoudig XML-document voorgesteld als boomstructuur
Elk punt in die boom wordt een node (een “knoop”) genoemd. Bij veel knopen begint een (naar beneden toe verder uitsplitsende) tak. Knopen waar dat niet meer het geval is (waar je niet verder naar beneden kan), worden wel leaves (bladen) genoemd. Het begin van het document (een punt boven artikel) wordt de root genoemd. Het transformatieproces dat een XSL style-sheet uitvoert bestaat in principe - enigszins gesimplificeerd - uit de volgende acties (die opnieuw een boomstructuur opleveren): het op grond van een bepaald zoekpatroon herkennen en selecteren van bepaalde knopen, -
bijvoorbeeld alle knopen waar een alinea begint het toekennen van HTML-codes aan de daar beginnende takken als geheel, bijvoorbeeld bij het
-
begin en eind van een alinea de daarvoor gewenste HTML-opmaak toevoegen dit herhalen voor alle (soorten) knopen (en bladen) waarmee je iets wilt, ook die welke onderdeel
-
zijn van takken waarvoor je al iets gespecificeerd hebt, bijvoorbeeld voor “nadruk” binnen alinea’s opmaak-codes toevoegen. het op grond van een bepaald zoekpatroon herkennen en selecteren van bepaalde knopen en die copiëren of verplaatsen naar andere plekken in de boom, bijvoorbeeld de titel van een document niet alleen als
-kop in de krijgen, maar ook als in de
Dit soort transformatie-acties worden in een reeks opvolgende zogenaamde xsl-templates beschreven. In principe zijn daarmee - met enige inventiviteit - alle eenvoudige opmaakwensen voor XMLdocumenten te realiseren. Hoe dit in de praktijk gaat zullen we in de volgende paragraaf zien. Op grond van deze werkwijze worden voorschriften voor een bepaald element in je document “geerfd” door de “kinderen” van dat element. Met andere woorden: als je voor “hoofdst” iets hebt gespecificeerd, geldt dit ook voor alle lager gelegen elementen. Voor “nadruk” geldt dus dezelfde opmaak als voor “hoofdst” gedefinieerd was, tenzij je daarvoor expliciet iets afwijkends opgeeft. Deze “erfelijkheid” is een algemene eigenschap van vrijwel alle stylesheet-talen.
Handleiding XML & XSL
4
6
De syntax van XSL style-sheets en templates
NB: In deze paragraaf komen in stukken XSL stylesheet-code ook HTML-tags voor. Ter onderscheid zijn voor HTML-tags hoofdletters gebruikt, voor XSL/XML zelf zo veel mogelijk kleine letters. Begin van de style-sheet XSL style-sheets zijn zelf XML-documenten. Ze moeten dus aan allerlei XML-eisen voldoen. In elk geval moeten ze beginnen met een regel die aangeeft dat het een XML-document is en een regel die aangeeft dat het een style-sheet is, inclusief verwijzingen naar plaatsen waar nadere informatie te vinden is, zogenaamde namespaces (ns). <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns="http://www.w3.org/TR/REC-html40" result-ns="" > Het verdient aanbeveling in je eigen style-sheets deze regels exact zo over te nemen. Dan zul je daarover in elk geval geen foutmeldingen krijgen. Uiteraard zal je style-sheet uiteindelijk ook weer moeten eindigen met maar daarvoor komen er eerst nog allerlei templates.
Eenvoudige templates Stel dat we iets met de alinea’s uit de in Fig. 3 getoonde boom willen doen, en stel dat die in het document gecodeerd zijn met . Allereerst zal de template dan een opdracht bevatten dat naar elementen “alinea” in het XMLdocument gezocht moet worden, er wordt een match met “alinea” gevraagd: <xsl:template match=”alinea”> Vervolgens zal moeten worden opgegeven wat er moet gebeuren als het begin van een alinea is gevonden, bijvoorbeeld dat een HTML alinea-code
moet worden neergezet en een aanduiding van het te gebruiken lettertype:
Daarna zal de inhoud van de gevonden alinea (de tak) verder verwerkt moeten worden. Het kan zijn dat die zonder meer moet worden overgenomen, het kan ook zijn dat er nog templates zullen volgen die iets met die inhoud doen - in ons geval bijvoorbeeld iets met de stukjes “nadruk” die in de alinea’s kunnen voorkomen. Daarvoor wordt - ook als er in feite geen templates meer volgen - het XSLelement apply-templates gebruikt: <xsl:apply-templates /> Pas hierbij op dat in dergelijke XSL-elementnamen nooit spaties kunnen voorkomen - er staat dus een koppelstreepje tussen de twee woorden - en dat empty elements in XML ook moeten worden afgesloten - dus een sluit-slash “/” voordat de tag met “>” gesloten wordt. Aan het eind van de alinea zal de style-sheet natuurlijk ook weer HTML afsluitcodes moeten toevoegen. Dit dient zeer precies te gebeuren, want er wordt alleen zogenaamde well-formed HTML geaccepteerd. Dat wil onder meer zeggen: - elke eerder in dit template geopende tag moet hier ook weer gesloten worden - die tags moeten in de goede volgorde van hun nesting worden afgesloten
G01 - XML & XSL
7
- gebruik in sluit-tags identieke hoofd- en kleine letters als bij het openen - ook HTML-tags voor empty elements moeten van sluit-slash voorzien zijn (ook eerder al)
Dit hele template komt er dan dus als volgt uit te zien: <xsl:template match="alinea">
<xsl:apply-templates />
Door deze manier van transformeren zijn de in de template gegeven opmaakvoorschriften automatisch ook van toepassing op alles wat er verder binnen de alinea-takken kan voorkomen, dus ook met “nadruk” gecodeerde tekst zal in “arial” van grootte “3” op het scherm komen. Willen we voor de nadruk-woorden iets anders, dan zullen we daarvoor een afzonderlijke template kunnen maken, want “nadruk” is ook weer een knoop. De volgende template zorgt er dan voor dat de nadruk-woorden (binnen de alinea) vet en in rood op het scherm komen: <xsl:template match="nadruk"> <xsl:apply-templates />
De document-root als kapstok voor de HTML basis-codes Het uiteindelijke getransformeerde document moet weer een echt HTML-document zijn. Dat betekent dat we moeten zorgen dat de style-sheet de codes ,, en dergelijke toevoegt. Meestal zal de root van het document daarvoor als kapstok gebruikt worden, want dat is de knoop waar het hele verdere document onder valt. Dat gebeurt met een template die een match met die root zoekt, symbolisch weergegeven met een slash “/” (net als voor de root van de schijf van een computer). <xsl:template match="/"> Daarop volgen dan de toe te voegen begin-tags, de inhoud van het document zelf waarop verdere templates moeten worden toegepast en de afsluit-tags: <xsl:template match="/"> <xsl:apply-templates /> In de kan hier natuurlijk nog veel meer worden opgenomen, bijvoorbeeld een HTML-title, stijl-specificaties volgens de HTML-syntax enzovoort. Voor die HTML-title (die in de blauwe balk boven je browser getoond wordt) willen we misschien wel gebruik maken van de inhoud van het titelelement dat toch al in het XML-document aanwezig is. Anderzijds zal dat ook al in een gewoon template worden gebruikt om de titel (bijvoorbeeld tussen
-tags) in vette letters op het scherm te krijgen. Dat “dubbele” gebruik is mogelijk, maar daarvoor moet een andere opdracht dan match gebruikt worden.
Handleiding XML & XSL
8
Selecteren van een element voor gebruik “elders” in het document Bij de tot dusverre gebruikte match-opdracht blijven de onderdelen waaruit het XML-document is opgebouwd gewoon in de oorspronkelijke volgorde, op hun oude plaats in het document staan. Dat is niet altijd wat je wilt. Niet alleen bij het zojuist gegeven voorbeeld van de document-titel, maar bijvoorbeeld ook met de trefwoorden uit de boom van Fig. 3. Die staan in dat voorbeeld aan het eind van het document, maar misschien wil je ze in de scherm-presentatie wel bovenaan het scherm zien, of meteen na de abstract. Daarvoor kun je gebruik maken van het XSL-element value-of , met daarbinnen een select-opdracht. Voor het in de HTML- krijgen van de document-titel kan de volgende regel aan de zojuist gegeven template worden toegevoegd: <TITLE> <xsl:value-of select="artikel/titel" />
Met deze select-opdracht wordt, gezien vanuit de root “/” waarmee dit template match-te, naar “titel” als sub-element van “artikel” gezocht. Het XSL-element value-of pakt, zoals de naam al zegt, de “waarde van” titel eruit en zet die op de betreffende plaats in de HTML-. Daarnaast blijft de inhoud van ook nog gewoon beschikbaar voor een gewone template-match die er - in de - bijvoorbeeld de gewenste
-tags omheen zet. De hele root-template wordt zo dus: <xsl:template match="/"> <TITLE> <xsl:value-of select="artikel/titel" /> <xsl:apply-templates /> Op dezelfde manier kun je in de template voor het element “abstract” zorgen dat de in het oorspronkelijke document pas aan het eind aanwezige trefwoorden, meteen onder de abstract komen te staan. De abstract komt in cursieve tekst in Courier lettertype, de trefwoorden komen er in een kleine Arial-letter in een ander kleurtje onder: <xsl:template match="abstract">
<xsl:apply-templates/>
<xsl:value-of select=”//trefw” /> De twee slashes voor “trefw” geven aan dat je, gerekend vanaf de root van het document , eerst nog andere - hier niet nader gespecificeerde - ouder-elementen kunt krijgen, in dit geval namelijk eerst nog “artikel”, voordat je bij “trefw” komt (zie de boom in Fig. 3). De bovenstaande oplossing werkt alleen maar goed als het te verwerken document maar één element “trefw” bevat, d.w.z. als de trefwoorden niet allemaal afzonderlijk ge-tagd zijn. In dat geval zou nu namelijk alleen het eerste trefwoord worden overgenomen. Ook voor afzonderlijk getagde trefwoorden bestaat echter een oplossing. Daarvoor dient het XSL-element for-each dat, zoals de naam al zegt, “voor elk voorkomen” van een element een gegeven opdracht uitvoert. De template wordt dan nog iets ingewikkelder: <xsl:template match="abstract">
G01 - XML & XSL
9
<xsl:apply-templates/>
<xsl:for-each select=”//trefw”> <xsl:value-of select=”.” /> ; Bij for-each wordt het element “trefw” al geselecteerd; achter value-of hoeft met select=”.” alleen nog de inhoud daarvan gepakt te worden, waarna de “;” na de sluit-“>” ervoor zorgt dat de opgehaalde trefwoorden in de uiteindelijke presentatie op het scherm door punt-komma’s gescheiden worden.
Onzichtbaar maken van elementen Komen na deze actie de trefwoorden aan het eind van het document nog een keer te voorschijn? Dat hangt er vanaf. Als we ook nog een template specificeren dat met “trefw” matcht en we daarop ook weer apply-templates toepassen, wel, maar als we volstaan met: <xsl:template match="trefw"> waarin het XSL-element apply-templates ontbreekt, dan wordt met de trefwoorden verder niets gedaan en worden ze op hun oorspronkelijke plaats achteraan in het document niet getoond. Daarmee hebben we dan meteen een methode geleerd waarmee een XSL-stylesheet ook in andere situaties stukken van een document onzichtbaar kan maken.
Voorbeeld van een volledige style-sheet Bij een document op grond van de volgende eenvoudige DTD: kan een XSL-style-sheet voor transformatie naar HTML er als volgt uitzien (inclusief verklarende commentaar-regels): <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns="http://www.w3.org/TR/REC-html40" result-ns="" > <xsl:template match="/"> <TITLE> <xsl:value-of select="artikel/titel"/> <xsl:apply-templates /> <xsl:template match="artikel"> <xsl:apply-templates/> <xsl:template match="titel">
Opdracht 6: Maak volgens de in dit hoofdstuk gegeven aanwijzingen een XSL style-sheet voor conversie (transformatie) van je XML-document naar HTML. De werking van de gemaakte style-sheet kun je pas uittesten door een daadwerkelijke conversie uit te voeren. Daarvoor zal een standaard “utility” worden gebruikt die is ingebouwd in het programma Majix. In het volgende hoofdstuk staat beschreven hoe dat precies in zijn werk gaat.
5
MAJIX als hulpprogramma voor het transformeren van XML naar HTML
Omdat de voor XML geschikte versies van Internet Explorer op dit moment nog niet beschikbaar zijn op het netwerk van de HVA, zullen we hier de praktijk van het gebruik van style-sheets voor conversie naar HTML behandelen. Voor de transformatie van XML-bestanden naar HTML is een programma beschikbaar waarin de utitlity XT is ingebouwd. In de bijlage achterin deze handleiding vind je een beschrijving hoe dit programma Majix geïnstalleerd kan worden. Na installatie van Majix dien je, voordat je een eerste conversie-poging onderneemt, in elk geval: - te controleren of je XML-bestand de juiste proloog (beginregels) bevat: (specificatie van de te gebruiken style-sheet IN het document is voor deze toepassing nog niet nodig, evenmin als specificatie van de gebruikte DTD) - te controleren of de te gebruiken style-sheet de juiste beginregels bevat <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns="http://www.w3.org/TR/REC-html40" result-ns="" > (zie het begin van hoofdstuk 4) Het programma Majix maakt gebruik van Java-programma’s. Die worden opgestart door (in de verkenner) te dubbelklikken op het batch-bestand majix_jview.bat in de voor Majix aangemaakte map. In eerste instantie wordt hierdoor een DOS-venster geopend (waarin we later eventuele foutmeldingen kunnen zien verschijnen) en vervolgens (automatisch) het hieronder getoonde Majix-venster.
G01 - XML & XSL
13
In feite is Majix in eerste instantie een programma dat is bedoeld om Word/RTF-bestanden naar XML om te zetten. Op deze hoofdfunctie zullen we in hoofdstuk 7 pas nader ingaan. Voorlopig kiezen we in dit scherm voor de optie “Tools” (de 4de knop van links). Daardoor wordt het onderstaande Tools-venster geopend.
Kies in dit scherm voor “Apply XSL stylesheet” en klik op “Run”. In het nu geopende venster dienen de namen van de gewenste XML- en XSL-bestanden te worden ingevuld (of na browsen te worden aangeklikt). (Zie het onderstaande venster). Klik vervolgens op de knop “Apply”.
Als alles goed gaat wordt nu, in dezelfde map waarin het XML-bestand stond, een HTML-bestand weggeschreven met (verder) dezelfde naam. De kans bestaat natuurlijk dat door het conversie-
Handleiding XML & XSL
14
programma XT fouten zijn geconstateerd. Dan is geen HTML-bestand weggeschreven en zijn foutmeldingen verschenen in het al bij het opstarten van Majix geopende MS-DOS-venster. Controleer dus eerst via de verkenner of een nieuw bestand (bijvoorbeeld “artikel.html”) is weggeschreven. Zo niet, roep dan via de taakbalk het MS-DOS-venster op, kijk wat de foutmelding was, probeer te begrijpen wat daarmee wordt bedoeld en wat verbeterd moet worden en voer deze verbetering ook metterdaad uit. Het zal in de praktijk moeten blijken of de meldingen voldoende duidelijk zijn om zonder verdere hulp eventueel noodzakelijke aanpassingen aan je XSL style-sheet te kunnen aanbrengen. Als uiteindelijk succesvol een HTML-bestand is weggeschreven, kun je dit gewoon in je web-browser openen en kijken in hoeverre dit inderdaad aan je opmaakwensen tegemoet komt. Ook dit kan nog aanleiding geven tot verdere aanpassingen van je style-sheet. NB: Bedenk wel dat elke keer dat, door het klikken op de “apply”-knop, een geslaagde conversie met XT wordt uitgevoerd, zonder vragen de vorige versie van je HTML-file wordt overschreven door het resultaat van de nieuwe conversie. Als dat ongewenst is, dien je de vorige versie eerst te verplaatsen of te hernoemen. Dit betekent ook dat niet altijd meteen duidelijk is of een conversie met een iets gewijzigde style-sheet ook weer resultaat heeft opgeleverd of dat er nu weer een nieuwe fout inzit. Met de verkenner kijkend, zie je dan namelijk nog de vorige versie van je HTML-file (met dezelfde naam) staan.
6
Direct tonen van XML in Internet Explorer 5.2 of 5.5
Voor degenen die thuis beschikken over een XML-compatibele versie van Internet Explorer (de versies 5.2 of 5.5) volgen hier enkele opmerkingen over het gebruik van dat programma, hier verder IE5 genoemd. Om te beginnen kan opgemerkt worden dat IE5 ook geschikt is om zowel XML- als XSL-bestanden inclusief al hun codes te bekijken, bijvoorbeeld om zo eventuele fouten op te sporen. XMLdocumenten kunnen alleen zo worden bekeken als in de proloog van het document nog geen verwijzing naar een te gebruiken style-sheet staat (anders zal IE5 de genoemde style-sheet meteen al proberen toe te passen). XSL style-sheets zelf kun je wel altijd zonder meer bekijken. Het handige van het bekijken met IE5 is dat je de takken van je document-structuur, als waren het mappen in de verkenner, door te klikken op + (plusjes) en - (minnetjes) kunt open- en dichtklappen. Dat helpt je je document wat beter te overzien. Bij je style-sheets kan dat uiteraard ook, maar daar zit van nature meestal niet zoveel “diepte” in. In principe zouden de in de vorige paragraaf gebruikte style-sheets ook geschikt moeten zijn voor het direct in IE5 tonen van je XML-documenten. In de praktijk blijkt dit niet altijd meteen mogelijk. In de eerste plaats zal je XML-document daartoe wel een regel moeten bevatten waarin wordt aangegeven wat de te gebruiken style-sheet is. De proloog van je XML-document zal daartoe de volgende vorm moeten hebben: als “artikel.xsl” de naam van de te gebruiken style-sheet is en die in dezelfde map staat als je XMLdocument.
G01 - XML & XSL
15
In de tweede plaats moet ook je style-sheet zelf nog een stukje tekst bevatten dat IE5 nodig blijkt te hebben om de style-sheet te kunnen toepassen. Het is de XSL-template die in het voorbeeld hieronder meteen op de stylesheet-declaratie volgt. <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns="http://www.w3.org/TR/REC-html40" result-ns="" > <xsl:template match="./textnode()"> <xsl:value-of/> Op de precieze betekenis van het hier gebruikte begrip “textnode” zullen we nu niet ingaan. Het is aan te raden deze begin-template gewoon letterlijk over te nemen en hem voor de andere, al in je eerdere conversie-stylesheet gebruikte templates te plaatsen. NB: Sla de aldus aangepaste template wel onder een nieuwe naam op, want hij blijkt na deze toevoeging weer niet meer geschikt voor het eerder gebruikte conversie-programma !!
7
MAJIX als hulpprogramma voor het omzetten van Wordbestanden in XML
Het eerder voor de conversie naar HTML gebruikte programma Majix heeft eigenlijk als hoofddoel om Word/RTF bestanden direct naar XML om te zetten. Daarbij wordt uitgegaan van het gebruik van Word-stijlen. Bij het programma zit al een standaard configuratie-file die maakt dat een standaard Word stijlblad automatisch wordt omgezet naar een daarmee corresponderende XML-structuur. Als voorbeeld is de handleiding van Majix als RTF-bestand meegeleverd. De elementen van het daarvoor gebruikte standaard stijlblad kun je bekijken door dit bestand “majixdoc.rtf” (in de Majix sub-map “sample”) in Word te openen. Als oefening kun je dit bestand in het Majix-hoofdscherm (zie het eerste plaatje in hoofdstuk 5) in het bovenste tekst-vakje opgeven, als om te zetten RTF bestand. Het daardoor gegenereerde XML-document kun je uiteraard op zijn structuur inspecteren. Je kunt het vervolgens ook met de meegeleverde voorbeeld style-sheets verder verwerken, hetzij door het in IE5 te bekijken, hetzij door het naar HTML te converteren, hetzij door er met behulp van een speciale style-sheet een groot aantal afzonderlijke HTML deel-bestanden uit te genereren. (Zie hiervoor verder de Majix-handleiding) In principe is de configuratie-file van Majix zodanig aan te passen dat ook Word-documenten die volgens andere stijlbladen zijn aangemaakt, naar een andere - door jou gemaakte - XML-structuur kunnen worden omgezet. Hoewel dat uiteraard een zeer interessante toepassing is, gaan we daar in deze style-sheet handleiding niet verder op in. De meegeleverde Majix-handleiding geeft daar wel wat verdere (beknopte) uitleg over.
Handleiding XML & XSL
Bijlage:
16
Installeren van het hulpprogramma Majix
Majix is een gratis te verkrijgen programma met als belangrijkste functies: documenten die op grond van Word-stijlen zijn gestructureerd en vanuit Word in RTF-formaat zijn opgeslagen, kunnen hiermee direct in XML worden omgezet XML-documenten kunnen hiermee, op basis van een XSL style-sheet, naar HTML getransformeerd worden. Het programma kan van het web gedownload worden op: http://tetrasys.dhs.org/docs/default.html Het is echter ook aanwezig in de lesstof-directory: \MIM\Sieeg.....\G01\Majix\Majix.zip Dit bestand past op één diskette en kan dus ook eenvoudig mee naar huis genomen worden om het daar te installeren. Voor gebruik in de practicum-lokalen dient het volgende te worden gedaan: Start de Windows Verkenner Kopieer daarmee het bestand Majix.exe uit de lesstof-directory naar C:\temp Majix.zip bevat een hele reeks bestanden en programma’s in ge-zipte vorm. Pak deze uit door (in de verkenner) te dubbelklikken op het zojuist naar C:\temp gekopieerde Majix.zip Het hierdoor opgestarte uitpakprogramma Winzip toont de namen van de ingepakte bestanden. Kies de optie “Extract”. Kies als locatie voor de uit te pakken bestanden een nieuw aan te maken map op de C:-schijf, bijvoorbeeld C:\temp\majix Deze wordt hierdoor automatisch aangemaakt. In de nieuwe map is hierdoor een aantal bestanden terecht gekomen. Daarbij is ook het bestand waarmee Majix wordt opgestart. Dat gebeurt door te dubbelklikken op: majix_jview.bat Er is bij het uitpakken ook een aantal submappen aangemaakt: “classes” bevat de door Majix gebruikte Java-programma’s; zelf heb je hier geen verdere bemoeienis mee “docs” bevat de handleiding en documentatie van Majix in HTML-vorm; deze handleiding kun je opstarten door “default.html” in je browser te openen (in “docs\images” zitten in de handleiding gebruikte GIF-plaatjes) “sample” bevat als voorbeeld-bestand een Word/RTF-versie van de eerder genoemde handleiding, alsmede stylesheets om een met Majix gegenereerde XML-versie hiervan, óf direct in Internet Explorer 5.2 of 5.5 te kunnen presenteren, óf naar HTML te kunnen converteren. Zie voor aanwijzingen voor het verdere gebruik de betreffende paragrafen eerder in deze handleiding