UNIVERSITEIT ANTWERPEN U.I.A. INFORMATIEINFORMATIE- EN BIBLIOTHEEKWETENSCHAP
Overzicht van de XML Standaards
"bulletin.dtd" >
href="bulletinclass.xsl" ?>
Art, Jan
xml:lang="nl">Socioreligieuze achtergronden van de twist tussen seculiere en reguliere clerus rond 1850[ Bull. 43, 1973<paginering>pp.663-
Promotor: Prof. Dr. Richard PHILIPS Eindverhandeling ingediend voor het behalen van het diploma van de Gespecialiseerde Studie Informatieen Bibliotheekwetenschap, door Alec VUIJLSTEKE. VUIJLSTEKE Mei 2001
Abstract This paper discusses the emergence of the Extensible Markup Language (XML) and related standards as a new way to exchange digital information in today's almost 100% networked environment. The difference between XML on the one hand and its parent SGML and sibling HTML on the other hand is explained. The ability of XML to handle entities in a very flexible way (physical location being of no importance) is a clear advantage compared to the linear document principle of HTML. As far as concerns the structure of XML documents a shift has been made from the traditional SGML inherited Document Type Definition to a more powerful and flexible mechanism called XML Schema. The lay-out and transforming mechanisms complementary to XML -XSLT and XSL Formatting Objects- are a lot more powerful than the action with still further to develop linking and positioning mechanisms (XML Linking, XPath and
2
XPointer) offer much more advanced linkingpossibilities. Other emerging XML standards such
-standaards
tual, lay-out only serving Cascading Stylesheets of HTML. Furthermore, XML could in combina-
as XHTML, XML Query, XForms, XML Protocol and XML Signature are also overviewed and situated. Although a lot of "standardizing" still needs to be done and more user-friendly software needs to be developed, professional communities have already largely taken advantage of the powerful possibilities the XML-standards offer. Nevertheless, major obstacles for breakthrough remain in place (difficult standardization process, incompatibility with webbrowsers, integration of multimedia…) Finally, the role XML and related standards can play in database and library-environments (e.g. as a replacement of the outdated MARC-format) is precised. As an additional exercise a conversion-experiment has been conducted of a MS Access database to MS Word, HTML and XML formats. The pros and cons of those are being discussed. Alec VUIJLSTEKE, May 2001 (mailto:[email protected]).
Inhoudstafel I. Theoretisch gedeelte ................................................................ ................................ ............................................................. ............................. 5 1| Opzet en Situering ................................................................ ................................ ........................................................... ........................... 6 2|XML ................................................................ ................................ ................................................................ ............................................... ............... 8 2.1 Uitwisselings- en Markeertaal .................................................................................... 8 2.2 Informatie-eenheden ................................................................................................. 9 2.3 Situering van XML t.o.v. SGML en HTML ..................................................................10 3| Opbouw van een XMLXML-document ................................................................ ................................ ...................................... ...... 11 3.1 Document Type Definition (DTD) & XML Schema.....................................................12 3.2 XML namespaces ....................................................................................................16 3.3 DOM.........................................................................................................................17 4| XMLXML-standaards ................................................................ ................................ ............................................................ ............................ 18 4.2 XML Linking, XPath en XPointer ...............................................................................22
3
4.3 XML Base.................................................................................................................27
-standaards
4.1 XSL en XSLT.............................................................................................................18
4.4 XHTML .....................................................................................................................28 4.5 XML Query ...............................................................................................................29 4.6 XForms.....................................................................................................................33 4.7 XML Protocol............................................................................................................35 4.8 XML Signature .........................................................................................................36 4.9 RDF en Dublin Core .................................................................................................37 4.10 Diverse standaarden gebaseerd op XML ...............................................................40 5| Het nut van de XML Standaards Standaards ................................................................ ................................ ....................................... ....... 40 5.1 Algemene toetsing ...................................................................................................41 5.2 XML en databanken.................................................................................................45 5.3 XML en bibliotheken ................................................................................................48 6| Conclusie ................................................................ ................................ ................................................................ ..................................... ..... 52 Bibliografie ................................................................ ................................ ................................................................ ....................................... ....... 55 Bijlage 1: 1: stand van zaken standaards W3C ........................................................... ................................ ........................... 58 Bijlage 2: XMLMARCXMLMARC-voorbeeld................................ voorbeeld................................................................ ............................................. ............. 60 Bijlage 3: MS Office 2000 ................................................................ ................................ ................................................... ................... 62 II. XML Experiment ................................................................ ................................ ................................................................ ................................ 64 1| Opzet ................................................................ ................................ ................................................................ .......................................... .......... 65 2| XMLXML-conversie & DTD ................................................................ ................................ ..................................................... ..................... 67 3| CSSCSS-stijlblad + XMLXML-documenten ................................................................ ................................ ...................................... ...... 69 4| XSL+XMLXSL+XML- documenten ................................................................ ................................ .................................................. .................. 71 4.1 Sortering ..................................................................................................................73 4.2 Filtering....................................................................................................................73 4.3 Voorwaardelijke operator.........................................................................................74
"Stelt u zich een ambulance voor, op weg naar het ziekenhuis. De identiteit van de patiënt is vastgesteld. Met een wap-telefoon worden de patiëntgegevens gezocht in een database, die daartoe zelf verschillende andere databases raadpleegt, waaronder die van de huisarts en de zorgverzekeraar. De gegevens gaan ook naar de dienstdoende specialist in het ziekenhuis. Even later rolt uit de printer in de ambulance een advies voor een spoedbehandeling, met alle voor de patiënt acceptabele medicatie." Gert Jan Van der Steen, hoogleraar uitwisselingstalen Utrecht
"The Semantic Web is a vision: the idea of having data on the web defined and linked in a way that it can be used by machines not just for display purposes, but for automation, integration and reuse of data across various applications."
-standaards
4
World Wide Web Consortium - Sema Seman n tic Web Activity work group
5 -standaards
I. Theoretisch gedeelte
1| Opzet en Situering Aan de basis van de XML standaards ligt XML (Extensible Markup Language), een "taal" die zelf een subset is van een sinds 1986 bestaande ISO-standaard, SGML (Standard Generalized Markup Language). Vanuit XML zijn er vervolgens voornamelijk binnen W3C (World Wide Web Consortium) een aantal aanvullende standaards ontworpen. De meeste ervan zijn nog in volle ontwikkeling en geven aan hoe XML documenten verder kunnen worden bewerkt ten behoeve van presentatie, omvorming, aanbrengen van verwijzingen en ondervraging. Vanuit XML zullen we elk van deze standaards bespreken. Wat is hun actuele status, wat is
daards. Vervolgens tonen we aan wat het nut is van XML enerzijds en de XML standaards anderzijds. Een belangrijk punt hierbij is de indicatie van de belemmerende factoren voor de massale doorbraak van XML. Meer specifiek wordt het nut van XML binnen databanktoepassingen en binnen de bibliotheek- en informatiewereld aangekaart. Het praktisch gedeelte, tenslotte, bestaat uit de conversie van een tijdschriftbibliografie naar XML documenten en de toepassing van enkele van de XML standaards daarop. Wat het praktisch gedeelte betreft, zijn de DTD, de XML-hoofdbestanden en alle experimenten met de XSL-stijlbladen beschikbaar op de volgende URL: http://www.uia.ac.be/u/s970765/xml/index.html. De XML-bestanden kunnen rechtstreeks bekeken worden met Internet Explorer 5.0 als webbrowser. Net zoals HTML (Hypertext Markup Language) -dat een toepassing is van SGML en geen subset zoals XML- werd XML ontworpen door W3C, het Consortium dat de "standaards van het internet" controleert1. In tegenstelling tot SGML, zijn XML noch HTML standaards zoals die die uitgevaardigd worden door organisaties als de ISO of de ANSI. W3C vaardigt enkel Recommendations uit voor specificaties2. Versie 1.0 van XML kreeg begin 1998 deze hoogste status van erkenning. Aan de basis van de creatie van XML als SGML-subset, liggen zowel aan SGML als aan HTML gebonden problemen. SGML werd in de jaren 1980 ontwikkeld binnen IBM als belangrijke
1
W3C (gesticht in 1994 door Tim Berners-Lee) is een internationaal consortium van internetbedrijven en de
belangrijkste decisionmaker voor de creatie en de evolutie van het WWW en zijn standaarden. De organisatie wil open standaarden ontwikkelen, zodat het WWW in een enkele richting evolueert. 2 Cf.
in bijlage de overzichtslijst van de status van de XML standaards zoals vastgelegd door W3C.
-standaards
binnen de context van de doelstellingen van XML en in verhouding tot de andere XML stan-
6
het doel ervan en hoe worden ze toegepast? De standaards zullen hierbij gesitueerd worden
toepassing voor het uitgeverij- en publicatiewezen. Ook in het informatie- en bibliotheekwezen sloeg SGML aan3. Door de verregaande complexiteit en de afwezigheid van een aantal essentiële elementen bleek SGML bij de geboorte van het World Wide Web begin de jaren 1990 niet geschikt voor gebruik door het grote publiek. SGML is krachtig maar zeer complex van structuur, is niet erg portabel en is daardoor minder geschikt voor de levering van informatie via netwerken. In het beginstadium van de popularisering van het WWW was er in de eerste plaats nood aan een eenvoudige, beperkte markeertaal louter gericht op de weergave van informatie binnen webbrowsers, met bovendien de mogelijkheid tot eenvoudige hyperlinking. Als toepassing van SGML bleek HTML hiervoor ideaal. HTML 3.0 werd in 1995 vastgelegd door de IETF (Internet Engineering Task Force)4 en vervolgens in 1996 en in 1997 uitgebreid door W3C met de versies 3.2 en 4.0. [Mann]
♦ HTML is geen meta-taal zoals XML en SGML en kan niet gebruikt worden voor het definiëren van nieuwe talen. Het is bijgevolg niet uitbreidbaar. ♦ HTML beperkt zich tot structurele markering gericht op presentatie en procedures. Er is te weinig mogelijkheid om meta-informatie in HTML-documenten op te nemen. Een complexe structuur aanbrengen in een document is niet mogelijk. ♦ in HTML is de verschijning van het document gelinkt aan de markeertaal zelf; bij XML wordt de verschijning extern verzorgd: stijl en inhoud worden perfect gescheiden. Met XML wilde het W3C een oplossing bieden voor deze problemen. XML is precies bedoeld als een afgeslankte versie van SGML speciaal ontworpen voor gebruik in een veelzijdige omgeving die door (wereldwijde) netwerken wordt beheerst.
3
Bijvoorbeeld in het kader van het UA-Antilopeproject voor een collectieve catalogus van tijdschriften in Belgische
en andere bibliotheken. 4
IETF is het orgaan dat bijvoorbeeld het TCP/IP-protocol definieert. Standaards worden erin uitgedrukt onder de
vorm van Requests for Comments.
-standaards
beperkt was:
7
Met de definitieve doorbraak van het World Wide Web, werd evenwel duidelijk dat HTML te
2|XML XML 2.1 UitwisselingsUitwisselings - en Markeertaal Veel meer dan HTML, is XML net als SGML een echte uitwisselingstaal. Hoogleraar Uitwisselingstalen aan de Universiteit van Utrecht Gert Jan Van der Steen definieert uitwisselingstalen als "formele talen waarmee aan documenten markeringen worden toegevoegd ten behoeve van de interpretatie." De documenten worden uitgewisseld tussen mensen en/of computers. Ook talen die interpretaties van en operaties op aldus gemarkeerde documenten beschrijven, behoren tot de uitwisselingstalen. Het woord uitwisseling, stelt hij, houdt een wederkerigheid in, waarbij elke partij in staat is om markeringen te maken en om daarin veranderingen aan
Net als bij SGML en HTML is het basisprincipe van XML de verrijking van informatie met metadata5 onder de vorm van tags (hierna markeringen genaamd): meta-informatie die dus aan de eigenlijk informatie/inhoud wordt toegevoegd. Aldus krijgt men een dubbelgelaagde informatiestructuur: de eigenlijke inhoud en de meta-informatie over die inhoud. Uniformiteit, structuur en het volgen van bepaalde conventies zijn basisvoorwaarden voor markering. Een markeertaal moet specifiëren waar de markering voor staat, welke markering toegelaten en vereist is en hoe ze moet onderscheiden worden van de eigenlijke tekst. Bij SGML, HTML en XML wordt deze markering aangegeven door middel van "vishaken". Men onderscheidt drie soorten markering: procedurele markering (die aangeeft hoe de ingebedde informatie moet geproduceerd worden), beschrijvende markering (om de structuur van een document te beschrijven en de informatiecomponenten die het bevat) en tenslotte referentiële markering (om hypertext, geluid en afbeeldingen bereikbaar te maken). In tegenstelling tot HTML dat voornamelijk procedureel is, ligt de grote kracht van XML in het beschrijvende van de markering. HTML is immers vooral gericht op de opmaak van een document en op het navigeren via hypertext binnen een webbrowser. Presentatie en inhoud worden hierbij in tegenstelling tot SGML/XML niet van elkaar gescheiden. Met HTML legt men vooral vast hoe informatie wordt gepresenteerd, niet zozeer wat de informatie-inhoud is van de componenten. De markeringen en hun waarden zijn volledig afgesproken en in hoofdzaak
5
Data die essentieel is om vastgelegde informatie te interpreteren en te bewerken.
-standaards
wordt aangestuurd, maar het proces stuurt niets terug). [Van der Steen]
8
te brengen. Een uitwisselingstaal is dus meer dan een ad-hoc presentatietaal (een proces
op stijl en presentatie gericht. De markering die niet op deze aspecten gericht is, is erg beperkt6. Bij SGML/XML daarentegen, is de markering vooral bedoeld als een set van data-elementen die de inhoud en de lokatie van een informatie-object beschrijft. Naderhand laat dit een veelheid van operaties toe, zoals de manipulatie en de retrieval van deze informatie-objecten. Als men door de aangebrachte beschrijvende markering weet wat iedere datacomponent precies is, dan kan men die op verschillende (en op dat moment soms onbekende) manieren verwerken. XML is echter géén programmeertaal waarmee rechtstreeks acties kunnen worden uitgevoerd. De kern van de zaak is het beschrijven van informatie met het oog op bewaring, overdracht of uitvoering door een programma.
Naast het procedurele karakter van HTML tegenover het descriptieve van XML/SGML,is een ander essentieel verschil de structuur van informatie. HTML hanteert nog in grote mate het lineaire document-principe (een document begint en eindigt met een -markering). XML daarentegen is flexibeler en kan veel beter dan HTML duidelijk maken wat de informatieonderdelen zijn en hoe deze zich tot elkaar verhouden. Deze door markering aangegeven informatie-onderdelen zijn "entiteiten". Entiteiten zijn intern in het XML-bestand aanwezig, maar kunnen ook externe informatie zijn, zoals een illustratie (die dus niet van XML-markering is voorzien, maar uit binaire informatie bestaat) of een stuk XML-markering die in een databank aanwezig is en voor meerdere toepassingen dient. De organisatie van informatie-onderdelen hoeft in XML niet lineair te zijn, terwijl de entiteiten elk een verschillende fysieke lokatie kunnen hebben7. Ze zijn op die manier goed te vergelijken met objecten in programmeertalen. Eerder dan terug te vallen op hoofdingen van bestanden en andere systeemspecifieke karakteristieken van een bestand als middel om informatie te begrijpen en te behandelen, valt XML immers volledig terug op de markering van de data zelf.
6
Men kan enkel in de hoofding van een HTML-bestand een aantal rudimentaire meta-markeringen inlassen die
informatie geven over de HTML-pagina in haar geheel (bijvoorbeeld een beschrijving van de gepresenteerde informatie, de arbitraire sleutelwoorden waaruit het document bestaat...). Een door een enkel individu bepaalde markering als <prijs>500lire is in HTML niet mogelijk 7
Het gebruik van entiteiten kan zeer nuttig zijn: bijvoorbeeld voor de opbouw van een boek dat uit verschillende
hoofdstukken bestaat, het automatisch inlassen van afbeeldingen, het dynamisch aanpassen van veelgebruikte tekst, het hergebruik van entiteiten in meerdere documenten,...
-standaards
9
2.2 InformatieInformatie - eenheden
Zoals bij SGML is elke XML-gemarkeerde brok informatie in feite een hiërarchische boom: een datastructuur samengesteld uit met elkaar verbonden knooppunten8 (nodes) met een enkel knooppunt dat de wortel van die boom vormt. De wortel heeft dan een of meerdere knooppunten als kinderen. Knooppunten die geen kinderen hebben zijn bladeren. Binnen XML zijn de knooppunten niet enkel de verschillende elementen waaruit de boom bestaat, maar ook hun attributen, verwerkingsinstructies, commentaren en namespaces.
2.3 Situering van XML t.o.v. SGML en HTML W3C heeft onder meer de volgende doelstellingen voor XML vooropgezet: ♦ XML moet verschillende toepassingen ten goede komen. Dit overstijgt de focus op XML als enkel en alleen leverancier van gestructureerde documenten.
werken. XML kan immers enkel succesvol zijn als het gebruikt wordt door veel programma's. Een manier om dit aan te moedigen is het voor mensen gemakkelijk maken om zelf zulke programma's te schrijven. ♦ XML moet duidelijk en helder blijven voor iedereen: een XML-gecodeerde brok informatie moet zonder hulpmiddelen gemakkelijk begrijpbaar blijven. ♦ XML-documenten moeten gemakkelijk aan te maken en raadpleegbaar zijn in een internetomgeving. Dit veronderstelt natuurlijk dat er 100% XML-compatibele populaire webbrowsers bestaan! [W3C, "Extensible Markup Language (XML) 1.0"] XML is tegelijk een vereenvoudigde, maar ook een verrijkte vorm van SGML: ♦ Een aantal (te) geavanceerde SGML-kenmerken werden achterwege gelaten, waardoor de XML-specificatie veel minder lang is dan die van SGML ♦ Het gebruik van bepaalde SGML-constructies is beperkt zodanig dat er terugvalmogelijkheden beschikbaar zijn wanneer de toegang tot bepaalde componenten van het document niet mogelijk is via het internet. ♦ Er is bepaald hoe URI's9 kunnen gebruikt worden om componenten van XML-datastromen te herkennen via namespaces (zie verder). ♦ XML voorziet in de mogelijkheid tot het gebruik van geavanceerde mechanismen voor hyperlinking [Bosak].
8
Een punt waar twee of meer lijnen elkaar treffen in een boomstructuur.
9
Dit is de generische term voor alle types van namen en adressen die refereren aan objecten op het WWW. Een
URL (beginnend met http://) is een voorbeeld van een URI. URI's maken bronnen gemakkelijk toegankelijk via een veelheid van naamschema's en toegangsmethoden zoals HTTP, FTP,...
-standaards
♦ Het moet eenvoudig zijn om programma's te schrijven die XML documenten kunnen ver-
10
♦ XML moet compatibel zijn met SGML.
XML verschilt zoals reeds aangehaald fundamenteel van HTML: ♦ In tegenstelling tot HTML hebben XML-markeringen geen vooraf bepaalde, overeengekomen betekenis (wel syntaxis dus, maar geen semantiek). HTML is een vastgelegde set van afspraken die voor een zekere tijd vastliggen. XML daarentegen, is juist ontworpen om uitbreidbaar te zijn. ♦ Tenzij via stijlelementen (het gebruik van hoofdingen zoals
,
,...) is het in HTML niet mogelijk om de (hiërarchische) structuur van informatie-eenheden aan te duiden. ♦ No more tag salad! Een XML-bestand moet goed gevormd zijn, anders kan het niet gevalideerd worden. Dit is niet het geval met HTML, waar de browsers slechte grammatica toelaten en bijvoorbeeld geen rekening houden met hoofdlettergevoeligheid in de markering of verkeerd geneste elementen. Dit compromitteert in ernstige mate het doen van gestructureerde bewerkingen. Een belangrijk verschil tussen XML en HTML, is de ondersteuning door XML van het volledige
karakters in verschillende talen mogelijk te maken. In tegenstelling tot het ASCII-karakterset dat 8 bits voor elk karakter gebruikt (maximaal 256 verschillende karakters), gebruikt UNICODE er 16, waardoor het meer dan 65.000 unieke karakters kan voorstellen (op dit moment zijn er bijna 50.000 toegekend). Deze grote hoeveelheid is nodig voor de voorstelling van tal van niet-westerse talen. Het ziet ernaar uit dat UNICODE op termijn het ASCII-set volledig zal vervangen. XML ondersteunt bovendien ook het ISO-10646 karakterencoderingsformaat (1993), waarin dezelfde informatie als in de UNICODE-standaard is opgenomen. Dit laat XML-bestanden toe om speciale karakters juist zoals gewone tekst in plaats van afbeeldingen te behandelen. Wat XML aldus (hopelijk) kan betekenen voor gegevensuitwisseling, betekent UNICODE in zekere zin voor taalondersteuning.
3| Opbouw van een XMLXML-document Een XML-gemarkeerde informatie-eenheid bestaat uit drie delen: 1. Een processing instruction met de identificatie van de gebruikte XML-versie, de gebruikte codering en eventuele verwijzingen naar andere bestanden. 2. Eventueel een verwijzing naar al dan niet intern aanwezige documentschema's: een DTD (Document Type Definition) of een XML Schema 3. Een gemarkeerde document instance die bestaat uit een wortelelement waarbinnen alle
-standaards
een karakterencodeersysteem ontworpen om de uitwisseling, verwerking en afbeelding van
11
UNICODE-karakterset. De Unicode Worldwide Character Standard (Unicode Consortium) is
andere markeringen op een correcte manier genest zijn. Op die manier beantwoordt een XML-document net zoals een SGML-document aan drie belangrijke kenmerken: ♦ Uitbreidbaarheid: men kan nieuwe elementen (met bijhorende attributen) aanmaken. ♦ Structuur: via een DTD of een Schema kan men de verplichte structuur vastleggen van de XML-informatie-eenheid. ♦ Elk document moet gecontroleerd worden op zijn welgevormdheid en kan gevalideerd worden. [Connolly]
Aan de basis van zowel SGML, HTML als XML ligt het concept documentschema. Een schema is een model voor het beschrijven van de structuur van informatie. Het is een term die afkomstig is uit de databankwereld voor het beschrijven van de structuur van data in relationele tabellen. Bij XML schrijft een dergelijk schema een model voor dat geldt voor een hele groep van documenten. Het is een akkoord voor een gemeenschappelijk vocabularium (de mogelijke opbouw van de markeringen en tekst in een valide document) van een bepaalde toepassing waarbinnen de uitwisseling van documenten aan bod komt. Schema's bestaan uit een reeks beperkingen die bepalen wat er precies in een bepaalde context kan verschijnen: content model constraints beschrijven de volgorde en opeenvolging van elementen en datatype constraints beschrijven valide data-eenheden (bijvoorbeeld de vastlegging dat een -element uit precies tien digits bestaat). Een document kan in een XML-context aldus een van de volgende vier types zijn: ♦ Indien het niet welgevormd is dan is het geen XML. Welgevormd betekent dat het document de juiste structuur heeft conform XML. Dit houdt in dat er een of meerdere elementen zijn binnen het XML-document, dat er één wortelelement is, dat elk element juist genest is binnen een vader-kind hiërarchie en dat elk attribuut van de elementen op de juiste manier gespecifieerd is. ♦ Indien een XML document niet verwijst naar een documentschema dan is het gewoon welgevormd. ♦ Indien een documentschema geassocieerd kan worden met het document en het docu-
-standaards
"If you're receiving XML transactions over the web, you don't want to process the content into your database if it's not in the proper schema. The earlier, and easier it is, to catch this sort of error, the better off you'll be. (You wouldn't want to issue someone a refund check because you allowed them to order 4 hammers, would you?)" [Walsh]
12
3.1 Document Type Definition (DTD) & XML Schema
ment niet conform het model is dat door dat schema beschreven wordt, dan is het welgevormd maar niet valide (= grammaticaal correct). ♦ Indien een documentschema geassocieerd kan worden met het document en het document conform het model is dat door dat schema beschreven wordt, dan is het welgevormd en valide. Van SGML werd door XML de Document Type Definition (DTD) als documentschema overgenomen. Een DTD legt vast hoe de gebruikte markering geïnterpreteerd dient te worden door de toepassing die het document verwerkt10. De algemeen gebruikte HTML-specificatie die vastlegt hoe webpagina's worden afgebeeld door webbrowsers is een voorbeeld van de toepassing van een DTD. Een DTD is geen XML-document en legt enkel vast hoe XML documenten conform deze specifieke DTD moeten worden opgesteld. Het staat de ontwerper van een DTD vrij te kiezen welke
gen van entiteiten hij toestaat. De DTD drukt tot slot de hiërarchie uit en de fijnkorreligheid (granularity) van de opgenomen informatie. Dat laatste is de omvang van de met XML-markering voorziene "informatiekorrels" ofwel het niveau waarop een specifieke informatie-eenheid is gedefinieerd op basis van zijn context. De door de opsteller zelf bepaalde fijnkorreligheid is een zeer belangrijk aspect, net zoals het vastleggen van de velden en hun inhoud een uiterst belangrijke aangelegenheid is bij het ontwerp van een relationele databank. Het vastleggen ervan vereist een verregaand begip van de informatie die men behandelt. Men moet zich afvragen uit welke elementen deze bestaat, wat de attributen ervan zijn en hoe zij zich ten opzichte van elkaar verhouden: "In effect, understanding and addressing questions of granularity is one of the main reasons that information is trickier stuff to deal with than data." [Rosenfeld] Het grote nut van DTD's is precies het vastleggen van regels die voor alle documenten die eraan refereren gelden. Dit is nuttig voor de bewaring van de consistentie van zeer grote aantallen documenten. Op die manier kan voor eenvormigheid gezorgd worden van bepaalde types documenten: alle documenten van een bepaald bedrijf bijvoorbeeld. DTD's kunnen zowel intern als extern in een XML-document zijn opgenomen. Externe DTD's hebben evenwel een aantal voordelen zoals de mogelijkheid tot het hergebruik van DTD's
10
De term "document" zullen we gebruiken om iedere XML gemarkeerde-structuur te beschrijven. Een document is
hierbij niet meer dan een datastroom die, nadat deze is gecombineerd met eender welke andere stroom, zo gestructureerd is dat zij informatie gemarkeerd binnen elementen bevat. Die elementen zijn dan georganiseerd zoals gedefinieerd in de eventueel ermee geassocieerde DTD.
-standaards
de attributen van deze markeringen (en de relaties ertussen) en welke volgorde en inbeddin-
13
naam hij neemt voor de elementen (die dan de markeringen vormen in het XML document),
binnen verschillende XML-documenten of het gebruik maken van een publieke DTD die iemand anders heeft gemaakt. Na verloop van tijd is het besef gegroeid dat DTD's als documentschema beperkt zijn in hun mogelijkheden, ook al kunnen de volgorde en de nesting van elementen vastleggen en in beperkte mate de datatypes van attributen bepalen: ♦ Er is slechts een zeer beperkte datatypering mogelijk: er is geen mogelijkheid om te bepalen dat een bepaalde cijfercombinatie een getal (integer, decimaal), data of valuta enz. moet zijn, hetgeen validering veel moeilijker en minder accuraat maakt. ♦ DTD's zijn niet geschreven in een XML-syntax. ♦ DTD's hebben een ontoereikend extensiemechanisme dat weinig meer kan dan een bepaalde reeks van karakters vervangen. Vandaar dat er een nieuw documentschemamodel is bedacht binnen W3C: XML Schema,
1999 werd gepubliceerd. Het heeft sinds mei 2001 de status van Recommendation [W3C, XML Schema]. Het vocabularium van een XML Schema document bestaat uit ongeveer dertig elementen en attributen. XML Schema documenten zijn dus op hun beurt enkel valide indien ze conform het schema voor XML Schema zijn. Zo kan in een XML Schema syntax, het content model van een adres beschreven worden als: <Schema xmlns="abcschemas:xml-data"> <elementType name="address"> <sequence> <elementTypeRef name="name" minOccur="1" maxOccur="1"/> <elementTypeRef name="street" minOccur="1" maxOccur="2"/> <elementTypeRef name="city" minOccur="1" maxOccur="1"/> <elementTypeRef name="state" minOccur="1" maxOccur="1"/> <elementTypeRef name="zip" minOccur="1" maxOccur="1"/> <elementTypeRef name="country" minOccur="0" maxOccur="1"/>
De mogelijheid om datatype validiteit gedetailleerd te beschrijven in een schema is een van de belangrijkste nieuwigheden binnen XML schema. Hoewel dergelijke validiteit een evident kenmerk is van ieder databankschema, hadden de DTD's maar een zeer beperkte mogelijkheid tot datatypering. Een duiding van de kracht van deze datatypering van XML Schema is volgend voorbeeld van Walsh voor de declaratie van een Amerikaanse -code. Men begint met het vastleggen
-standaards
Schema is gedefinieerd in de XML Schema Working Group Working Draft van W3C die in mei
14
met de bedoeling om van SGML overgeërfde DTD's te vervangen door iets beters. XML
van een zipCode datatype die een string is van ofwel vijf getallen ofwel vijf getallen gevolgd door een streepje en vier getallen. 9999999999-9999
Eens nu het zipCode datatype vastgelegd is, is het gemakkelijk om vast te leggen dat een -element van dat type moet zijn.
kan doen is zeggen dat een element karakterdata bevat. [Walsh] XML Schema documenten zijn, in tegenstelling tot DTD's, XML documenten. Dit betekent dat zij elementen en attributen gebruiken om de semantiek van een schema te beschrijven en dat ze kunnen bewerkt worden met dezelfde tools als deze die men voor andere XML documenten gebruikt. In tegenstelling tot DTD's zijn XML Schema's bovendien uitbreidbaar en/of verfijnbaar. Dit wil zeggen dat ze stoelen op een "open content model". Schema auteurs kunnen aldus hun eigen elementen/attributen toevoegen aan XML Schema documenten. Zo zou men een element <pagina> dat in een schema wordt gedeclareerd, kunnen uitbreiden met een beperking dat een boek minstens 20 bladzijden moet tellen. Dat is met een DTD niet mogelijk. Verfijnbaar betekent dat additionele elementen aanwezig mogen zijn, maar enkel wanneer het schema bepaalt wat ze deze zijn (extensie van een schema door een ander schema). De mogelijkheid om de validiteit van documenten te testen aan de hand van dergelijke schema's zal een belangrijk aspect worden van omvangrijke webtoepassingen die informatie ontvangen en verzenden naar en van een veelheid aan bronnen. Bepaalde soorten toepassingen, de uitwisseling van informatie tussen databases bijvoorbeeld (met inbegrip dus van deze verfijnde datatypes) en elektronische handel zullen via XML Schema gemakkelijker kunnen verlopen. Er worden momenteel verschillende schematalen binnen diverse sectoren die op XML Schema gebaseerd zijn door W3C in overweging genomen11.
11
Een website die een overzicht van schema's geeft is http://www.schema.net/ van James Tauber
-standaards
In een DTD is het niet mogelijk om dergelijke beperkingen vast te leggen. Het enige wat men
15
<elementType name="zip">
3.2 XML namespaces ****Met namespaces kan men markeringen van een bepaald type document gebruiken in een ander type XML document zonder dat men de markering van dat andere document in een DTD opnieuw hoeft te definiëren en te verklaren. Een XML namespace is m.a.w. een collectie van elementtypes en attribuutnamen, die wordt geïdentificeerd door een uniek naam/adres, die een URI is. De URI's die als XML namespace adressen gebruikt worden, verwijzen niet naar schema's of informatie over die bepaalde namespace, ze zijn enkel en alleen identificators. Met andere woorden: of er op dat URI-adres iets fysiek aanwezig is, speelt geen enkele rol. Er moet van deze URI ook niets afgeleid
voegen aan de namespace. In dit voorbeeld xmlns:math="http://www.w3.org/1998/Math/MathML"
duidt men aan dat er in het XML document een "math"-namespace gebruikt wordt die conform is de vermelde URI. De keuze van de prefix is volledig arbitrair (men zou dus evengoed in plaats van "math" "wiskunde" kunnen gebruiken), het is gewoon een verwijzing. Die benaming is in feite de enige functie van XML namespaces. Namespaces zijn dus geen techniek om XML documenten te verenigen die verschillende DTD's of Schema's gebruiken (ze zouden wel in een dergelijke technologie kunnen gebruikt worden). Het grote belang van namespaces is dat ze verhinderen dat identiek genaamde markering die in verschillende documenten gebruikt wordt op dezelfde manier gelezen wordt (bijvoorbeeld indien ze vasthangen aan twee verschillende DTD's). Ieder elementtype of attribuutnaam kan door het gebruik van een XML namespace immers uniek worden geïdentificeerd. Een en ander wordt duidelijk wanneer men twee XML documenten met elkaar vergelijkt: <straat>via Omero 8 <stad>Roma
en
-standaards
XML namespaces worden aangeduid door een "xmlns:"-attribuut die een zgn. prefix kan toe-
16
worden.
webserver Academia Belgica 193.205.149.1
Elk van de adreselementen heeft hier een verschillende inhoud en moet door een toepassing op een verschillende manier geïnterpreteerd worden. Dit is geen probleem zolang deze elementtypes enkel in aparte documenten bestaan. Indien ze echter samen voorkomen in een document, moet de toepassing uiteraard wel het onderscheid kunnen maken. Een betere oplossing dan ieder element een andere naam geven, is aan beide types een verschillende namespace toekennen. Dit laat toe om het element "adres" in beide documenten te gebruiken maar wel een onderscheid te maken. Door meerdere XML namespaces te gebruiken kunnen aldus meerdere element types met
Belangrijk is dat XML namespaces perfect in het kader van XML Schema kunnen gebruikt worden. In een document zou men meerdere namespaces afkomstig van verschillende schema's kunnen gebruiken die dan gevalideerd worden. Het is hierbij mogelijk elementen te ontlenen aan andere schema's waarbij bepaalde zaken worden overgeërfd, zodat men niet volledig zelf een nieuw vocabularium moet schrijven.
3.3 DOM Net zoals bij HTML kunnen XML-documenten niet functioneren zonder het bestaan van een Document Object Model. Een XML-document is immers voor een machine niets meer dan een stroom van karakters die een bepaalde structuur vertonen. Om de data uit zo'n XMLdocument te kunnen halen en bijvoorbeeld in een webformulier te gebruiken is een DOM nodig. In een DOM wordt een document door middel van een standaardsyntaxis beschreven als een serie objecten. Programmeertalen hebben dan toegang tot het DOM van een document waar-
-standaards
via Omero 8Roma <serv:server xmlns:serv="http://www.bibliotheken.be/servers"> <serv:naam>webserver Academia Belgica <serv:adres>193.205.149.1
17
dezelfde lokale naam in eenzelfde XML-document voorkomen, zoals:
uit ze een bepaald object kunnen halen en vervolgens bewerken (bijvoorbeeld voor de presentatie binnen een webbrowser). Het DOM toont eveneens de hiërarchische verhoudingen tussen de elementen, het eerder besproken boom- en knooppuntconcept. Het DOM is dus geen specificatie is van een bepaalde programmeertaal. Er zijn drie mogelijkheden om het DOM te gebruiken om toegang te krijgen tot XMLdocumenten: ♦ door het gebruik van programmeertalen zoals JavaScript in een webpagina12 ♦ door het gebruik van een externe applicatie zoals een plugin die toegang krijgt tot het document via de webbrowser
4.1 XSL en XSLT Status XSL (Extensible Style Language) en XSLT (Extensible Style Language Transformations) werden ontwikkeld door de XSL werkgroep binnen W3C. XSL 1.0 is sinds november 2000 een kandidaat Recommendation. XSLT 1.0 is een officiële Recommendation. De eerste draft van XSLT 1.1 werd in december 2000 vrijgegeven. Doel Bij de creatie van XML werd besloten dat er een opmaakmechanisme en een conversiemechanisme voorzien moest worden voor XML-documenten. XML op zichzelf voorziet dit namelijk niet. Bij SGML is de stijltaal DSSSL (Document Style Semantics and Specification Language, eveneens een ISO Standaard), bij XML is dit XSL, dat uit twee delen bestaat: ♦ XSL Transformations (XSLT): een taal voor het transformeren van XML-documenten ♦ XSL Formatting Objects: een XML vocabularium voor het zeer nauwkeurig specifiëren van opmaak en presentatie
12
JavaScript is een scripttaal ontworpen door Netscape en heeft veel kenmerken gemeenschappelijk met de com-
plexere Java-programmeertaal. 13
Een parser ("ontleder") is een programma dat broncode ontleedt zodat die kan "vertaald" worden in objectcode.
Voor XML bestaat er onder meer XP van James Clark of MSXML van Microsoft, beide in Java geschreven.
-standaards
4| De andere XMLXML-standaards
18
♦ door het gebruik van een externe XML parser13 die een DOM aanmaakt [Walsh]
XSL gebruikt uitsluitend XML syntax: een XSL stijlblad is in feite niets meer dan op basis van een DTD XML-gecodeerde informatie. Het combineert daarbij elementen van zowel DSSSL als de HTML-stijltaal CSS (Cascading Stylesheets14). Zo'n CSS-stijlblad kan trouwens zonder XSL eveneens gebruikt worden als stijlblad voor XML-documenten. Het is ook mogelijk om XSL en CSS te combineren: in een door XSL gegenereerde HTML-pagina kan een link naar een CSSstijlblad worden gelegd. Men kan zich de vraag stellen of CSS voor XML niet volstaat. Het antwoord is voorlopig negatief aangezien CSS ernstige beperkingen kent: ♦ Het is niet mogelijk om met CSS een element op een bepaalde plaats te verplaatsen en te gebruiken op een andere plaats in het document. ♦ CSS laat niet toe om berekeningen uit te voeren of variabelen te bewaren. ♦ Met CSS kan men geen tekst genereren (paginanummers bvb.). ♦ Men kan niet specifiëren hoe XML documenten moeten overgebracht worden naar er♦ CSS kent wel hiërarchische relaties, maar geen relaties tussen verwanten: het is on-
19
mogelijk om een CSS stijlblad te schrijven dat iedere andere paragraaf in het vet zou zet-
-standaards
schillende toepassingen (bijvoorbeeld ten behoeve van een printer).
ten. [Tittel, 161] XSL is daarentegen wel geschikt voor dat soort complexe formatteringen: ♦ wanneer de inhoud van een document op verschillende plaatsen moet afgebeeld worden (tekst van een hoofding die ook voorkomt in een automatisch gegenereerde inhoudstafel) ♦ voor het sorteren en filtreren van XML gegevens ♦ voor het formatteren van XML gegevens op basis van de datawaarde (zoals het afbeelden van negatieve getallen in het rood) ♦ voor het invoegen van volledig nieuwe elementen in het doelbestand of het verwijderen van elementen Werking XSLT (Extensible Style Language Transformation) is de taal die gebruikt wordt in XSLstijlbladen om XML-documenten in andere XML documenten te transformeren. XSLT zijn dus makreringen voor het omzetten van markeringen in markeringen. Een XSL processor leest het XML-document in en volgt de instructies van het XSL-stijlblad en zorgt dan voor de output
14
"Cascading" betekent dat men meerdere opmaakstijlen aan een document kan toevoegen waarbij conflicten
tussen stijldefinities worden vermeden door middel van een systeem van prioriteiten, overerving en hiërarchie. CSS1 is een Recommendation van het W3C sinds 1996 en werd in 1998 opgevolgd door CSS2. Met CSS1 kan men volgende zaken besturen: lettertypes en tekst, spatiëring, positionering en rangschikking van elementen, zichtbaarheid van elementen, kleuren en achtergronden. CSS2 werd uitgebreid met mogelijkheden voor het aanroepen van externe media, voor het automatisch creëren van tabellen, voor het inlassen van geluid, tellers en nummering. Helaas is de ondersteuning van zowel als CSS1 als CSS2 door de grote webbrowsers erg verschillend.
van een nieuw XML document. De kern van de XSL-opmaakstijl is het opmaakobject. Dat vertegenwoordigt een gedeelte van een document dat een pagina kan zijn, maar ook een klein onderdeel zoals een lijstitem. In de XSL-opmaakstijl worden dan alle onderdelen opgenomen van het document die men wil laten weergeven en geplaatst in een opmaakobject. Dan wordt beschreven hoe dat opmaakobject moet worden weergegeven. Vervolgens gebruikt een XSL Processor een XSL stijlblad om het XML brondocument te parsen. Met de huidige webbrowsers kan een XSL-stijlblad enkel nog maar output in HTML genereren, maar in theorie kan die output om het even wat zijn: geluidsbestanden, afbeeldingen, platte tekst enz. Op het basisniveau heeft XSLT de mogelijkheid gelijkaardig aan het samenvoegen van twee bestanden, een principe dat ook bekend is in tekstverwerkingsprogramma's (bijvoorbeeld voor het automatisch invoegen van verschillende adressen in een typebrief). Het stijlblad
repititieve data. XSL heeft echter ook mogelijkheden voor het behandelen van erg onregelmatige en recursieve data. Sjabloonfragmenten worden hierbij vastgelegd en de XSL processor combineert het resultaat van deze fragmenten. Elk sjabloonfragment verklaart het type en de context van de knooppunten waarvoor het geschikt is, hetgeen de XSL processor toelaat om die knooppunten op de sjabloonfragmenten af te stemmen (data-driven model): bijvoorbeeld presenteer element X op die manier enkel en alleen als het een kind is van element Y en als attribuut waarde Z heeft. Het gebruik van XSLT in combinatie met XML heeft een aantal voordelen: •
Het laat toe om de voorstelling van een XML-document te veranderen zonder dat er een nieuwe pagina moet ingeladen worden.
•
De inhoud wordt niet "vervuild" met stijlelementen.
•
Via XSL stijlbladen is het mogelijk om de volledige informatie in XML op te slaan en slechts bepaalde onderdelen van deze informatie te laten zien. Deze scheiding van data en voorstelling laat een veel beter onderhoud van de data toe, vermits men enkel de data hoeft te actualiseren.
♦ XSLT is onafhankelijk van een DTD of een schema dat op het document van toepassing is. Een XSLT-processor kan welgevormde XML documenten genereren zonder een model (er wordt gekeken naar de aanwezigheid van markering in een XML-instance als het impliciete model en niet naar een expliciet model). ♦ Eenzelfde stijlblad kan instances verwerken van verschillende documentmodellen; omgekeerd kunnen verschillende stijlbladen eenzelfde instance verwerken tot verschillende resultaten. ♦ Vrij complexe transformaties kunnen tot stand gebracht worden op een vrij eenvoudige manier, zonder iets af te weten van programmeren.
-standaards
in dit sjabloon in te voegen (template-driven model). Dit werkt zeer goed met regelmatige en
20
bevat een sjabloon van het gewenste resultaat en identificeert data in het brondocument om
XSLT wordt op dit moment eigenlijk vooral gebruikt om XML-documenten om te zetten in HTML voor de weergave ervan in een webbrowser. Op die manier wordt de gebrekkige XMLondersteuning door browsers omzeild. De gegevens worden namelijk geschreven en bewaard als XML en dan "on the fly" als (X)HTML weergegeven zonder dat de gebruiker daar erg in heeft. Een stap verder zijn de XSL Formatting Objects (XSL-FO). Dat is een toepassing van XML die gedetailleerd beschrijft hoe pagina's eruit zullen zien voor de lezer. Ze voorzien een meer gesofistikeerd visueel model dan HTML+CSS en laten presentatie toe van tekst van rechts naar links en verticaal, van voetnoten, van paginanummers enz. Daar waar CSS bedoeld is voor gebruik op het WWW, is XSL-FO dan ook bedoeld voor een veel breder gebruik. De basisfilosofie is dat het mogelijk moet zijn om een XSL-stijlblad op te stellen dat XSL-FO's gebruikt om een volledig gedrukt boek mee op te maken. Een ander stijlblad moet het dan op dezelfde manier mogelijk maken om dezelfde tekst op het web of op een ander medium te
De syntax van XSL-FO is momenteel nog in volle ontwikkeling en er is nog geen enkele software die alle aspecten ervan implementeert. Het enige wat men momenteel kan doen is XSLFO
documenten
converteren
naar
PDF-bestanden
(een
bedrijf
als
RenderX,
http://www.renderx.com/, doet dit). Jammer genoeg worden de FO's helemaal nog niet ondersteund door de Webbrowsers. XSL is weliswaar geïntegreerd in de Microsoft XML processor, die deel uitmaakt van Internet Explorer 5.0, maar XML wordt hierin enkel getransformeerd tot HTML, die dan wordt afgebeeld d.m.v. het gebruik van CSS. Resumerend zijn er wanneer men met XML gegevens werkt drie manieren om aan de clientzijde aan gesofistikeerde vormgeving te doen: ♦ via CSS ♦ door een transformatie via XSLT ♦ door het combineren van HTML met XML-eilanden (dat is typisch voor de huidige Microsoft-aanpak) Er zijn voorts drie manieren waarop XML-documenten kunnen worden getransformeerd naar andere formaten zoals HTML voor presentatie in een webbrowser: ♦ Het XML-document en het ermee geassocieerde stijlblad worden aan de client overgeleverd (webbrowser) die dan het document transformeert. ♦ De server past eerst een XSL stijlblad toe en stuurt dan de informatie door als HTML. ♦ Een derde programma transformeert het XML-document naar HTML dat dan het document op de webserver plaatst. De derde aanpak is momenteel de meest aangewezen, aangezien het marktaandeel van
-standaards
21
publiceren.
geavanceerde browsers zoals Internet Explorer 5 wellicht nog geruime tijd te klein zal blijven om XML aan client-zijde buiten intranet-omgevingen toe te passen. Het probleem van webbrowsers die nog niet in staat zijn met XML om te springen, kan dan opgelost worden door het inlassen van een script dat de gebruikte browser herkent. Indien XML niet wordt getolereerd, kan dan de verwerking aan de serverkant gebeuren en het resultaat als gewone HTML doorgestuurd worden. [Van Amstel] XSL stijlbladen kunnen in combinatie met het gebruik van XML Schema zorgen voor uniformiteit. Stel dat men 1000 XML documenten op een cd-rom wil publiceren. Zonder ieder document op stijl te moeten controleren, wil men zeker zijn dat elk document correct zal worden weergegeven. Indien een stijlblad alle valide constructies van het schema behandelt, dan heeft men de zekerheid dat de presentatie correct zal zijn indien alle documenten con-
Status XML Linking is een subset van HyTime (Hypermedia/Time Based Structuring Language, ISO 10744)15 en is een kandidaat Recommendation van W3C sinds juli 2000. XML Pointer 1.0 is een kandidaat Recommendation sinds januari 2001. XPath is al sinds november 1999 een Recommendation. Doel Indien XML een belangrijke rol wil gaan spelen in een genetwerkte omgeving, is de mogelijkheid van het aanbrengen van hyperlinks in met XML gemarkeerde documenten een absolute vereiste. Op het WWW heeft elke informatiebron als adres een URI (Uniform Resource Identifier). De eigenschappen van de bestaande hyperlinks tussen deze URI's zijn momenteel: •
Het bijeenbrengen van verschillende datatypes: de automatische weergave van een gelinkte afbeelding in een HTML-bestand, ook al is die afbeelding volledig anders gecodeerd (bijvoorbeeld in een binair GIF-formaat).
•
Het feit dat men geen toelating nodig heeft om van een bepaalde bron die op het internet beschikbaar is het eindpunt te maken: men legt hyperlinks naar de bestemmingen die men kiest.
•
15
Het feit dat niet-valide links getolereerd worden op het WWW.
HyTime is een taal voor het coderen van de structuur van hypermedia documenten en is een extensie van
SGML. Het voegt aan SGML mogelijkheden toe voor het adresseren van documentobjecten, het vastleggen van de relaties tussen documentobjecten en het numeriek meten van documentobjecten.
-standaards
4.2 XML Linking, XPath en XPointer
22
form dat specifieke schema opgesteld zijn.
De XML Linking werkgroep van W3C wil deze eigenschappen verder uitbreiden aan de hand van twee specificaties: XLink en XPointer. Zij zijn voor een groot stuk gebaseerd op de lessen die zijn getrokken uit andere standaards die met hyperlinks functioneren zoals Text Encoding Initiative16 en HyTime. XLink laat XML-bronnen toe om links te bevatten op dezelfde manier zoals dit mogelijk is met HTML, maar ook uitgebreider [De Rose]: §
Inlassen van hyperlinks die naar meerdere bestemmingen leiden.
§
Inlassen van bi-directionele links: in tegenstelling tot de "go back"-functie kunnen bidirectionele links in de twee richtingen gebruikt worden, ook al is men niet eerst vanuit dat punt vertrokken. Bi-directionele links kunnen het onderhoud van de ter beschikking gestelde informatie vergemakkelijken: indien een met HTML opgemaakte webpagina van lokatie verandert, dan zijn alle links naar die pagina niet meer geldig. Indien die pagina
§
Wanneer HTML wordt gebruikt, moet men het startpunt van een hyperlink voorzien van hyperlinkmarkering en vervolgens een URI bepalen naar het eindpunt. Om in HTML de hyperlink te kunnen vastleggen moet men de "eigenaar" zijn van het startpunt. In XLink legt men gewoon een URI vast voor het startpunt en het eindpunt. Het is niet meer nodig om zoals in HTML de hyperlink vanuit het startpunt te veranderen wanneer het adres van het eindpunt verandert.
§
Inlassen van links die "alleen lezen"-documenten voorzien van opmerkingen. Men kan hiermee links creëren die te voorschijn komen wanneer men een document bekijkt, ook al heeft men geen toegang tot dat document. Dat betekent natuurlijk dat men moet kunnen beslissen wiens links men wil zien en welke niet. Deze "kleefbriefjes"-functie kan in bepaalde omstandigheden erg nuttig zijn (een leraar die virtueel huiswerk corrigeert in het kader van distance learning!).
§
Bepalen van het gedrag van links, zoals het verschijnen van het doeldocument in een nieuw venster met bepaalde afmetingen (dit is bij HTML-pagina's al een tijdje mogelijk via het inlassen van scripts).
§
Inlassen van tekst (voorbeeld de betekenis van een woord) en beelden daar waar men klikt, zonder dat men de pagina in kwestie moet verlaten.
§
Zorgen voor links naar informatie die opgeslagen is in een centrale databank eerder dan links naar specifieke pagina's zelf. Op die manier kunnen veelvoorkomende boodschappen van niet-functionerende links vermeden worden.
16
TEI (http://www.tei-c.org/) is een internationaal project voor het ontwerp van richtlijnen voor het markeren van
tekstueel materiaal in elektronische vorm voor wetenschappelijke doeleinden. Van de TEI Lite DTD is momenteel reeds een XML-versie gemaakt, TEIxLite. De TEI Extended Pointer-taal heeft een belangrijke rol gespeeld in het ontwerp van XLink en XPointer.
-standaards
katie van de pagina via de links kunnen meegedeeld worden.
23
echter informatie zou bevatten over alle links die ernaar verwijzen, dan zou de nieuwe lo-
Bij XML-bestanden is het gebruik van XLink nodig, aangezien men in een XML-bestand eender welke elementnamen kan gebruiken (in HTML ligt vast welke notaties links kunnen zijn, zoals "A HREF", "A NAME", "IMG SRC"). Dit betekent dat men een markering onder de vorm van een speciale namespace op het element moet aanbrengen zodat toepassingen van XLink deze kunnen herkennen, bijvoorbeeld: .... <e-mail> <xlink:simple href="mailto:[email protected]">[email protected]
zoals de gewone hyperlink in HTML maar met de mogelijkheid van een aantal attributen (bvb. de link een titel geven, openen in een nieuw venster en ook de opening van de link binnen in het brondocument, hetgeen in HTML enkel mogelijk is met afbeeldingen)
<extended>
een hyperlink die een keuzemogelijkheid geeft tussen verschillende links
wordt gebruikt als een subelement van extended, voor de lokatie van alle bronnen van een extended link
<arc/>
leeg element dat wordt gebruikt bij uitgebreide koppelingen die zich in een apart bestand bevinden waarin enkel koppelingen zijn opgenomen. Zij bepalen bijvoorbeeld of wanneer een link geactiveerd wordt een nieuw venster moet worden geopend of het oude moet worden vervangen.
Door gebruik te maken van extended links kan een keuzemenu worden weergegeven voor de gebruiker. In onderstaand voorbeeld kan de gebruiker als "Belgische instellingen te Rome" dan kiezen tussen een link naar "Belgisch Historisch Instituut te Rome" of "Academia Belgica". De <xlink:extended title="Belgisch Historisch Instituut te Rome" showdefault="new" show actuate="onRequest">Belgische instellingen te Rome <xlink:locator title="Belgisch Historisch Instituut te Rome" href="bhir.html"/> <xlink:locator title="Academia Belgica" href="academia.html"/> bestaan sedert 1939
Het is ook mogelijk om de koppelingen in een andere lokatie onder te brengen, in het geval van bovenstaand voorbeeld wordt dat dan:
-standaards
<simple>
24
XLink onderscheidt verschillende linkelementen:
De <xlink:extended title="Belgisch Historisch Instituut te Rome" showdefault="new" show actuate="onRequest">Belgische instellingen te Rome <xlink:locator href="instellingenlinkset.xml"/> bestaan sedert 1939.
Op deze laatste manier kunnen de links in feite vanuit een centrale lokatie beheerd worden en hoeft men slechts één document aan te passen wanneer een link verandert, hetgeen veel efficiënter is. XLink wordt helaas nog niet door de grote webbrowsers ondersteund. Dat betekent niet dat men in een XML document momenteel nog geen hyperlinks kan inlassen. Het gebruik van namespaces komt van pas om rechtstreekse hyperlinks in te lassen in een XML-document, en dit in afwachting van webbrowsers en andere tools die met XML Linking overweg kunnen. basismarkering overgenomen.
25
Aymard, Maurice <e-mail>[email protected] <website>www.academiabelgica.itDe la traite aux chiournes: la fin de l'esclavage dans la Sicile moderne Bull. 44, 1974<paginering>pp.1-22
-standaards
In het volgende voorbeeld werden links naar e-mailadressen en naar websites in de XML-
Het resultaat in Internet Explorer is de markering als hyperlinks van beide <e-mail>- en <website>-elementen, aangezien het namengebied "xmlns:html="http://www.w3.org.html" als een HTML-namengebied wordt herkend. Telkens wanneer de prefix "html:" voor een element staat, zullen m.a.w. de semantische tekens van HTML gebruikt worden. Naast XLink, zorgt ook XPointer voor een interessante hyperlinkmogelijkheid. Met XPointer kan men namelijk arbitraire stukken inhoud adresseren, ook al passen ze niet in de "chunks" die door XML zijn voorzien. Indien men een passage wil becommentariëren die de laatste helft van een bepaalde paragraaf en het begin van een volgende paragraaf omvat, dan kan deze via XPointer gelinkt worden. De vooruitgang ten opzichte van HTML is hier dat het met HTML enkel mogelijk is een link te leggen naar een bepaald punt in een document en niet naar een bepaalde afgebakende zone. XPointer maakt gebruik van de extreme structuur binnen XML-bestanden om te verwij-
zen naar iedere zone die men wenst. Op die manier wordt het mogelijk een link te creëren die verwijst naar een paragraaf met een bepaalde identificatie, en dit ook wanneer men niet de "eigenaar" is van dat document. XPointers laten bovendien toe om een bepaald element te bereiken via getal, naam, type of relatie tot andere elementen in het document. Als men een link zou willen aanbrengen naar het derde element in een lijst met de ID "interessante_publicaties" dan zou men deze kunnen aanbrengen als: href="http://www.academiabelgica.it/bulletin.xml#id(interessante_publicaties).child(3, item)"
Dit heeft als voordeel dat deze link in zekere mate bestand is tegen wijzigingen in het doeldocument. Indien we onze lijst verplaatsen in het bestand, dan zal de unieke ID ervoor zorgen dat de link operationeel blijft. [Maler2] XPointer lost echter twee problemen niet op: tweede deel van een document door te sturen in plaats van het volledige document.
26
XPointer legt enkel hiervoor de basis.
-standaards
♦ Het protocol waarmee de browser aan een webserver vraagt om bijvoorbeeld alleen het
♦ Hoe kan men verzekeren dat het opgehaalde document nog zin heeft zonder de rest van het document dat er bij hoort? Dit betekent dat het gelinkte gedeelte welgevormd en misschien valide is. Dat is een moeilijkheid aangezien de meeste XML-documenten moeilijk te decomposeren zijn. XPointers leggen zich daar evenmin op toe. De W3C XML Fragment Working Group is nog maar net begonnen met de studie van het probleem. [W3C, XML Fragment Interchange] Op lange termijn zouden de extensie van XML, XLink, HTTP en andere protocols meer complex gebruik van XPointers mogelijk kunnen maken: ♦ Men zou een derde document kunnen citeren door enkel een XLink met een XPointer naar de paragraaf in kwesite in te lassen, in plaats van de tekst van de citatie te herciteren. ♦ Men zou ook kruisverwijzingen in een document kunnen opnemen die zichzelf automatisch aanpassen wanneer het document wordt herzien. [Harold] ♦ Selecteren via XPointer van een bepaald deel van een document, zodat het kan gekopieerd en gebruikt worden in een programma. ♦ Een webbrowser die met XPointers kan werken (hetgeen nu nog niet het geval is) zou alleen maar een bepaald onderdeel kunnen selecteren voor downloaden en weergave door een bepaald begin- en een bepaald eindpunt te selecteren. XPointer is een laag bovenop XPath dat een gemeenschappelijke specificatie is van de Linking- en XSL-werkgroepen. XPath is een mechanisme dat toelaat om lokaties te specifiëren die knooppunten zijn of sets van knooppunten. XPath modelleert een XML document als een boom met knooppunten (nodes). Het XPath
adres specifieert dan hoe het data model van de instance doorlopen moet worden. Met XPath kan men echter niet refereren aan lokaties die geen knooppunten of sets van knooppunten zijn zoals woorden, zinnen of andere selecties die de grenzen van een element kunnen overstijgen. De XPointer-laag gaat dus nog een stap verder en laat ook toe om data te lokaliseren zoals selecties vastgelegd door een gebruiker die niet gehele knooppunten zijn. XPath ondersteunt volledig XML Namespaces: de naam van een knooppunt wordt gemodelleerd als een paar bestaand uit een lokaal deel en een namespace URI met eventueel nulwaarde. XPath gebruikt daarbij een compacte syntax, bijvoorbeeld select="id('start')//vraag[@antwoord='j']"
selecteert al die vraag-elementen waarvan het antwoordattribuut "j" is en die descendanten
pect immers van een vraagtaal het bewerken van de informatie vooraleer die naar de aanvrager terug te sturen. XPath is enkel een adresseerschema dat dan uiteraard wel kan dienen voor andere vraagtalen.
4.3 XML Base Status XML Base is sinds december 2000 een kandidaat Recommendation van W3C. Doel XML Linking definieert XML-constructies die links tussen informatie-eenheden beschrijven. Het XML Base-element is een andere soort constructie: het laat auteurs toe om expliciet de basis URI van een document te specifiëren met als doel URI's in links naar externe afbeeldingen, stijlbladen enz. te vereenvoudigen. Zo moet men niet de volledige link in het document opnemen, maar volstaat het de "basislink" aan het begin van het XML-document te vermelden, waarnaar de ingekorte links verwijzen. Zo kan de XML-base aanduiding zijn: <doc xml:base="http://www.academiabelgica.it/bhir/" xmlns:xlink="http://www.w3.org/1999/xlink">
Verderop in het XML-document vermeldt men dan gewoon als link: Bulletins per auteur
-standaards
XPath is evenwel geen vraagtaal: Naast het adresseren van informatie is een belangrijk as-
27
zijn van het element in het huidige document waarvan de unieke identificator "start" is.
De link bulletin.xml wordt dan geïnterpreteerd als "http://www.academiabelgica.it/bhir/bulletin1.xml"
4.4 XHTML " XHTML is the keystone in W3C's work to create standards that provide richer Web pages on an ever increasing range of browser platforms including cell phones, televisions, cars, wallet sized wireless communicators, kiosks, and desktops." [W3C, XHTML]
Status XHTML 1.1 (Extensible Hypertext Markup Language) is een W3C Recommendation sinds april
Doel en werking XHTML is een hybride vorm tussen HTML en XML. Het is een markeertaal geschreven in XML die drie XML namespaces gebruikt, die overeenkomen met HTML 4.0 DTDs Strict, Transitional en Frameset17. Dit betekent dat XHTML in feite niets meer is dan de herformulering van HTML 4.0 in XML 1.0. Het probleem met HTML vandaag de dag is eenvoudig: in HTML zitten tal van opmaakelementen verwerkt die bestemd zijn voor de weergave in een webbrowser. Indien men datzelfde HTML-document ook voor een ander medium wil geschikt maken (internet toegankelijk via een plamtopcomputer bijvoorbeeld of via de mobiele telefoon), moet men een andere HTML-pagina specifiek daarvoor opmaken. Aanpassingen worden dan erg omslachtig omdat de informatie dan in elk van deze specifiek voor dat medium aangepaste pagina's moet worden veranderd. Veel beter is het, de informatie in een enkele pagina op te slaan en dan via stijlbladen (CSS of XSL) de weergave van deze pagina's op ieder specifiek medium te laten gebeuren. Een tweede probleem is dat XML momenteel nog te weinig door de gevestigde browsers wordt ondersteund. W3C heeft dan ook naar een mogelijkheid gezocht om HTML-informatie (die dus niet beantwoordt aan de strenge eisen van XML) toch via een kleine manipulatie (de omzetting naar XHTML) in te passen in het XML-gebeuren. Op die manier kan men dan ook, net zoals bij een ieder ander XML-document, gebruik maken van de geavanceerde XSLTfunctionaliteit, daar waar de klassieke HTML beperkt is tot het gebruik van CSS.
17
"Strict": voor enkel structurele markup, zonder opmaakmarkeringen (in combinatie dus met XSL); "Transitional":
laat wel opmaaktags toe en "Frameset" voor XHTML-documenten in frames.
-standaards
28
2001.
Er zijn slechts kleine, maar belangrijke verschillen, tussen XHTML en HTML 4.0 : ♦ Welgevormdheid is bij XHTML-documenten een vereiste; bij HTML-documenten is dit niet zo. ♦ Elementen moeten met kleine letters geschreven zijn (
in plaats van
). ♦ Elementen moeten gesloten zijn (
...
). ♦ Attributen moeten tussen aanhalingstekens staan. Een XHTML document moet beginnen met een XML Processing Instruction gevolgd door de XHTML DTD:
foon, televisie en andere media. De bedoeling is dat er specifieke standaarden worden ontwikkeld voor ieder medium (door gebruik te maken van de XML uitbreidbaarheid, zonder af te wijken van de XHTML-standaard).
4.5 XMLXML - Query Status XML-Query heeft in W3C nog de status van Note. Nadat in mei 2000 het XML-Query Data Model was bekendgemaakt, werden in januari 2000 de XML Query Requirements gepubliceerd. Er wordt dus nog volop rond gediscussieerd. De doelstellingen van de XML Query werkgroep (opgericht begin 1999) zijn: ♦ ontwerpen van flexibele query faciliteiten om data van webdocumenten te extraheren ♦ op die manier vergemakkelijken van de interactie tussen het web en databanken ♦ ondervraagbaar maken van collecties van XML-bestanden net zoals relationele databanken Er zijn reeds meerdere querytalen voor XML ontworpen. De momenteel door het W3C voorgedragen querytaal is XQuery (de specificatie hiervan werd pas in februari 2001 bekendgemaakt). Daarnaast is er ook het eenvoudigere XQL, dat met de steun van Microsoft is ontwikkeld. Xquery
-standaards
2001). Dit breidt de reikwijdte van XHTML uit naar "emerging platforms" zoals mobiele tele-
29
W3C is bezig met de modularisatie van XHTML (Proposed Recommendation sinds februari
"XQuery is designed to support queries against a broad spectrum of information sources by incorporating features from several languages that were originally designed for diverse purposes. The versatility of XQuery will help XML to realize its potential as a universal medium for data interchange." [W3C, "XQuery: A Query Language for XML"]
Er bestaan verschillen tussen full-text zoeken en zoeken in gestructureerde tekst: ♦ Tekstzoeken werkt met geïndexeerde data, enkel de toepassing die indexeert moet de velden herkennen en de hiërarchie en die informatie dan opslaan als metadata voor iedere woordingang. In een gestructureerde zoekvraag moet de zoekvraag zelf meer over de structuur van het document begrijpen. ♦ Tekstzoeken slaat op volledige documenten, terwijl zoektalen zich toeleggen op verschillende soorten data, zoals een enkel gemarkeerd veld of een record dat bestaat uit verschillende velden. Er kunnen verschillende van deze records in een document aanwezig zijn. ♦ Naast het selecteren (vinden) van de data, moeten zoektalen dikwijls bepaalde transfor-
XQuery wil een zoektaal zijn die de structuur van XML op een intelligente manier gebruikt om zoekvragen mogelijk te maken voor deze diverse informatiebronnen samen. Of de data nu fysiek opgeslagen is in XML of bekeken wordt als XML via middleware18 doet er niet toe. Aangezien de meeste querytalen voor specifieke soorten van data zijn ontwikkeld, moest er een vraagtaal ontwikkeld worden die dit aankon. XQuery moest dus de mogelijkheden die noodzakelijk zijn voor het terugvinden van informatie eigen aan verschillende dataypes bevatten. Verder moest de zoektaal een kleine, gemakkelijk te implementeren taal zijn waarin zoekvragen beknopt en gemakkelijk verstaanbaar zijn. XQuery ontleent uiteraard een groot aantal elementen van andere querytalen: ♦ De syntax voor het doorlopen van de hiërarchische structuur van documenten werd overgenomen van XPath en XQL. ♦ Van XML-QL werd de notie van het samenbinden van variabelen overgenomen (deze samengebonden variabelen worden dan gebruikt voor nieuwe structuren). ♦ Van SQL werd het "SELECT-FROM-WHERE"-patroon overgenomen. ♦ XQuery volgt het XML Query Data Model dat een verfijning is van het datamodel beschreven door de XPath specificatie waarin een document gezien wordt als een boom met knooppunten. Aangezien een collectie documenten niet altijd een gemeenschappelijke wortel heeft, gebeurt de modellering op basis van een geordend bos van knooppunten van verschillende types, met inbegrip van element-, attribuut- en tekstknooppunten.
18
Dit is een algemene term voor programmering die twee reeds bestaande programma's aan elkaar lijmt.
-standaards
zelfs documenten automatisch aanpassen. [Murata]
30
maties van de data verwezenlijken, alsook data van verschillende bronnen combineren of
De syntax van XQuery is vrij eenvoudig (. staat voor de huidige node, ..staat voor de parent van die node, / staat voor de root node, // staat voor de afstammelingen van de huidige node, @ staat voor de attributen van de huidige node, [ ] haakjes omsluiten een Booleaanse uitdrukking enz.). Wanneer men wil zoeken naar de afbeeldingen met als legende "manifestatie" in het tweede hoofdstuk van een document met de benaming geschiedenis.xml dan kan dit genoteerd worden als: document("geschiedenis.xml")/hoofdstuk[2]//afbeelding[legende= "manifestatie"]
De mogelijkheden van XQuery zijn uiteenlopend: ♦ Zoeken volgens een "RANGE"-predikaat. Een vraag als "zoek alle afbeeldingen in de
document("geschiedenis.xml")/hoofdstuk[RANGE 2 TO 5]//afbeelding
♦ Men kan namespace-identificatoren gebruiken bij het zoeken zoals in XPath. ♦ Het construeren van XML-elementen via een XQuery uitdrukking. ♦ Het gebruik van FLWR-uitdrukkingen die zijn samengesteld uit FOR, LET, WHERE, en RETURN-clausules. Zoals in een SQL query moeten deze clausules in een specifieke orde voorkomen. Een FLWR uitdrukking bindt waarden tot een of meer variabelen en gebruikt deze variabelen dan om een gestructureerd, hiërarchisch resultaat te genereren. Zo kan men als zoekvraag formuleren "vind alle uitgevers die meer dan 100 werken hebben gepubliceerd" : FOR $p IN distinct(document("bib.xml")//uitgever) LET $b := document("bib.xml")/boek[uitgever = $p] WHERE count($b) > 100 RETURN $p
♦ Het gebruik van voorwaardelijke uitdrukkingen (IF THEN ELSE). Deze zijn nuttig wanneer de structuur van de informatie die moet gegenereerd worden afhangt van een bepaalde voorwaarde. Bijvoorbeeld "maak een lijst van werken gesorteerd op titel. Indien het type werk "tijdschrift" is, selecteer de editor. Neem voor alle andere types 'auteur'": FOR $h IN // RETURN <werk> $h/titel, IF $h/@type = "Tijdschrift"
-standaards
31
hoofdstukken 2 tot 5 van het document met de benaming 'geschiedenis.xml'" wordt dan:
THEN $h/editor ELSE $h/auteur SORTBY (titel)
♦ De filter-functie die nuttig is voor "pruning", waarbij ongewenste delen worden geëlimineerd terwijl de documentstructuur wel behouden blijft. Dit kan nuttig zijn bij de creatie van een inhoudstafel. De zoekvraag zal hierbij enkel sectie-elementen overhouden, waarbij andere elementen zoals paragrafen, afbeeldingenlegendes e.d.m. niet worden meegenomen. ♦ XQuery laat ook toe om relationele data te bevragen waarbij een tabel wordt vertaald in een XML view waarbij de tabel het document is, de rij het element binnen het document en elke waarde binnen de rij een genest element. Bij vele relationele zoekvragen wordt er een aggregaatfunctie toegepast zoals optellen of gemiddelde. Bij SQL kan dit door middel van GROUP BY en HAVING-clauses. Dit soort vraagstellingen is ook in XQuery mogelijk, net als (inner en outer) joins waarbij data van veelvuldige bronnen in een enkel zoekre-
FOR $pn IN distinct(document("sp.xml")//pno) LET $sp := document("sp.xml")//sp_tuple[pno = $pn] WHERE count($sp) >= 3 RETURN <well_supplied_item> $pn, avg($sp/price) SORTBY(pno)
Belangrijk is dat XQuery zowel zowel zoekvragen als transformaties (integratie en presentatie van gegevens) aan kan. XQuery volgt de XML Schema datatypes (xsd:string, boolean, integer, decimal, float). Andere datatypes kunnen gemaakt worden door middel van de eerder vermelde element constructor functie (bvb. de notatie van een datum). Wat de inpassing van XQuery betreft in het gehele XML-gebeuren, moet er nog gesleuteld worden aan de convergentie tussen XQuery en de andere XML-derivaten zoals XML Schema. XQL XQL (XML Query Language) is een eenvoudigere querytaal dan XQuery die XML als datamodel gebruikt. Het is de bedoeling dat XQL uitgedrukt kan worden in reeks karakters die gemakkelijk in programma's, scripts en XML of HTML attributen kunnen ingebed worden. XQL werkt volgens een hiërarchische procedure. Zo kan een zoekvraag uitgedrukt worden als: /bhir/bulletin/auteur="Milis, Ludo"
of als:
-standaards
32
sultaat worden gecombineerd:
/bhir/bulletin/@class="5.1"
wanneer men wil zoeken op eigenschappen van attributen XQL ondersteunt slechts semi-joins in plaats van volledige joins. Zo is het mogelijk om alle werken te zoeken waarvan de auteur dezelfde is als de auteur van boek XYZ: boek[auteur=//boek[titel='XYZ']/auteur]
er wordt hier dan gezocht naar de boeken waarbij het element auteur gelijk staat met het subelement auteur van parentelement boek waarvan de titel gelijk is aan "XYZ". Hetgeen tussen [ ] staat is dan de filter. "//" is een descendant operator die eender welk aantal van tussenkomende niveaus aantoont, men moet deze dus niet alle opnemen in de zoekvraag. Verder is het met XQL mogelijk om booleaanse operatoren te gebruiken. Transformaties kun-
XQL is in feite een extensie van XSL Patterns. Deze voorzien een simpele vraagtaal voor het identificeren van knooppunten in een XML-document, gebaseerd op hun type, naam en waarden alsook op de relatie tussen het knooppunt en andere knooppunten in het document. Een zoekvraag zoals zoek "bulletin" met als "klasse" attribuut de waarde "2.5" kan uitgedrukt worden als de volgende XSL Pattern "/bhir/bulletin[@class='2.5']". Deze zeer eenvoudige zoekvragen (gemodelleerd naar een "directory notatie") zijn een kernelement van XSLT die juist de zoekresultaten combineren met sjablonen om een nieuw XML document te creëren. XQL zorgt voor een manier om XML te manipuleren zodanig dat nieuwe documenten kunnen worden aangemaakt, dat de inhoud van bestaande documenten kan gecontroleerd worden en dat de presentatie en sortering van deze documenten samen met XSL kan gebeuren. De eerste draft van XQL werd in februari 1998 uitgegeven met de ondersteuning van Microsoft.Op de website van Microsoft lijkt de werking rond XQL evenwel enigszins bevroren en wordt er gewoon gemeld dat W3C bezig is aan de ontwikkeling van een krachtigere query taal (XML Query dus).
4.6 XForms Status
-standaards
en de transformaties met XSL. [Robie]
33
nen al door XSL aangepakt worden en een voorstel is om zoekvragen met XQL uit te voeren
Rond XForms wordt voorlopig nog alleen maar gediscussieerd. XForms heeft nog niet de status van Recommendation, enkel de desiderata ervan zijn vastgelegd en er is een eerste datamodel voor gepubliceerd. De XForms Requirements dateren van augustus 2000, de Working Draft van versie 1.0 van februari 2001. Doel XForms moet volgens W3C bepalen hoe de volgende generatie van formulieren op het WWW eruit zal zien19 en moet onder meer duidelijk maken hoe formulieren kunnen ondersteund worden door een XML schema en eigenschappen die specifiek zijn voor de formulieren zelf. Bij met HTML opgemaakte documenten worden de in het formulier ingevulde gegevens meestal verwerkt door een CGI-pogramma. CGI (Common Gateway Interface) is een specificatie voor het overbrengen van informatie tussen een WWW-server en een programma (geschreven in C, Perl, Java, Visual Basic enz.) dat data kan behandelen die conform de CGI-
nieuw proces wordt opgestart, hetgeen nefast is voor de snelheid waarmee het formulier wordt verwerkt. Een mogelijk en vooral sneller alternatief voor CGI is momenteel het gebruik van Java servlets. Deze blijven immers aanwezig in het geheugen van de client-computer van zodra ze zijn opgestart. Een CGI-programma daarentegen verdwijnt eens de aanvraag behandeld is. Een ander probleem met de huidige HTML-webformulieren is dat ze presentatie en de functie van het formulier niet van elkaar scheiden. Verder is het met een HTML-formulier niet mogelijk om het datatype van de invoer van een bepaald formulier vast te leggen. Met XForms moet het mogelijk zijn om aan te geven dat hetgeen in een formulier wordt ingevuld tekst, getallen, valuta, data, tijd, tijdslengte, URI enz. is. Op die manier is dan ook een betere en (t.o.v. scripts) eenvoudigere invoervalidatie mogelijk dan met HTML-formulieren. XForms zullen zo opgebouwd zijn dat zij duidelijk een onderscheid maken tussen instance data, beschrijving/logica en presentatie. Zo kan op het presentatieniveau de voorstelling van een zelfde XForm voor verschillende media (webbrowsers, printversie, palmtop,...) aangepast worden, terwijl de datalaag dezelfde blijft en aanpassingen gemakkelijker en sneller kunnen aangebracht worden. De logische laag laat dan toe om berekeningen te maken of te verhinderen dat een veld niet wordt ingevuld. Om een rijkere presentatie te bekomen zullen XForms geïntegreerd worden met XML en
19
Een document met een bepaalde vastgelegde vorm waarin data kunnen ingevuld worden. In een netwerkom-
geving wordt deze informatie dan rechtstreeks doorgestuurd naar een verwerkingstoepassing die de informatie opslaat (in een databank bvb.).
-standaards
gebeurt. Een probleem is dan ook dat elke keer dat er een CGI-script wordt uitgevoerd, er een
34
specificatie is. CGI is "server-side", aangezien alle behandeling van de data op de webserver
nieuwe grafische standaards zoals SVG en SMIL voor multimedia fomulieren. Ze moeten uiteraard ook compatibel zijn met stijltalen zoals CSS en XSL wat het presentatieluik ervan betreft. De XForm-werkgroep heeft als vereisten en doelstellingen voor XForms een hele waslijst opgesteld: ♦ splitsing van data, logica en presentatie (voor dit laatste met natuurlijk de mogelijkheid tot het toepassen van CSS en XSL) ♦ een relatief eenvoudige structuur: het moet gemakkelijker om op basis van de formulieren bepaalde berekeningen uit te voeren (normaal zijn hiervoor scripts nodig) ♦ toepassingsonafhankelijke navigatiemogelijkheden: voor HTML-formulieren is momenteel het gebruik van een klavier of een muis verplicht ♦ verbeterde internationalisatie: ondersteuning van talen met niet-westerse karakters via UNICODE ♦ afbreken en herinvullen van een formulier: zo zou men een aankoopformulier beetje bij
35
beetje kunnen invullen of zou men het invullen van een belastingsbrief over een aantal
-standaards
♦ meerdere formulieren per blad en meerdere bladen per fomulier
maanden kunnen spreiden. Het formulier moet dus een status kunnen bijhouden. ♦ Mogelijkheid tot de invoer in een formulier van meer dan alleen maar tekst: bijvoorbeeld stemgeluid of afbeeldingen. XForms moeten dan kunnen omspringen met betrouwbaarheidsscores: wanneer de input van een fomulier geluid is, in plaats van getypte tekst, moet het formulier in staat zijn te zeggen met welke zekerheid een gebruiker "goud" dan wel "hout" heeft gezegd! ♦ mogelijkheid tot het digitaal ondertekenen van een fomulier ♦ XForms moeten koppelbaar zijn aan P3P (Privacy Preferences Project20) en aan XML Schema ♦ mogelijkheid tot het uitvoeren van veilige, protocolonafhankelijke transacties [W3C, Xforms Requirements]
4.7 XML Protocol Status XML Protocol staat nog in zijn kinderschoenen en heeft nog niet de status van Recommendation van W3C. Er is een werkgroep opgericht rond XML Protocol binnen W3C in samenwerking met IETF (Internet Engineering Taskforce). Doel Het doel van XML Protocol is technologieën te ontwikkelen die twee of meer machines toe-
20
Het Platform for Privacy Preferences Project (P3P, http://www.w3c.org/p3p) is een standaard om gebruikers toe
te laten meer controle te hebben over het gebruik van persoonlijke informatie op de websites die zij bezoeken.
laten om in een gedistribueerde omgeving op een gestandaardiseerde manier te communiceren via XML als encapsulation language. Dat is een noodzakelijk complement voor XMLtechnologieën, aangezien er nood is aan het verzoenen van de zware commerciële eisen van business to business21 e-commerce systemen met de vraag naar een licht, eenvoudig netwerkprotocol voor gedeelde toepassingen. [Cover] De XML Protocol werkgroep legt zich momenteel toe op drie zaken die aan de basis moeten liggen van een Recommendation: ♦ een "enveloppe" om XML data in te kapselen voor overdracht die om kan gaan met tussenmechanismen zoals zoals proxies, caches en gateways22. ♦ een besturingssysteemonafhankelijke conventie voor de inhoud van de enveloppe wanneer die gebruikt wordt voor RPC (Remote Procedure Call) toepassingen23
Status XML-Signature is een initiatief van IETF en W3C. De working draft voor de XML-Signature Requirements dateert van oktober 1999. XML-signature is een kandidaat Recommendation sinds oktober 2000. Doel Het doel van de XML-signature werkgroep is een XML compatibele syntax te ontwikkelen voor de voorstelling van handtekeningen (= digitale authentificatie) van webbronnen en delen van protocolberichten alsook voor het aanmaken en het controleren van dergelijke handtekeningen. XML Signatures kunnen toegepast worden op eender welke digitale inhoud, met inbegrip van XML. Een sleutel wordt hierbij geassocieerd met de data waarnaar verwezen wordt en berekend via een algoritme [W3C, XML signature].
21
B2B is de uitwisseling van producten, diensten of informatie tussen bedrijven eerder dan tussen bedrijven en
klanten. 22
Een proxy server is een server die zich bevindt tussen een client toepassing, zoals een webbrowser, en een
echte server. Hij onderschept alle verzoeken aan de echte server om te kijken of hij zelf, sneller, kan voldoen aan die verzoeken. Een cache is een tijdelijke opslagplaats voor snelle retrieval van informatie. Een gateway is een combinatie van hard- en software die twee verschillende types van netwerken met elkaar verbindt. 23
RPC is een type protocol dat een programma op een bepaalde computer toelaat een programma op een server
uit te voeren. Met RPC moet men geen specifieke procedures uitwerken voor de server: het programma van de client zendt een boodschap naar de server en de server zendt een boodschap terug met de resultaten van het uitgevoerde programma.
-standaards
4.8 XMLXML - Signature
36
♦ een mechanisme om data gebaseerd op XML Schema datatypes door te sturen
XML Signature specifieert niet hoe sleutels geassocieerd worden met individuen of instellingen, noch de betekenis van de data die "getekend" wordt. Op zichzelf beslaat het dus niet alle veiligheidsaspecten, bijvoorbeeld die in verband met het gebruik van de getekende XMLdata (of andere dataformaten) als basis voor menselijke communicatie. Een dergelijke toepassing moet immers bijkomende sleutel-, algoritme- en verwerkingsvereisten vastleggen. [W3C, XML-signature syntax and processing]
4.9 RDF en Dublin Core
RDF: Status De RDF Schema Specification 1.0 werd in maart 2000 als kandidaat Recommendation aanvaard. De RDF Model en Syntax Specification is sinds februari 1999 een Recommendation. RDF: Doel en werking Een van de voornaamste obstakels voor beschrijving van digitale bronnen is de veelheid aan incompatibele standaards voor de beschrijving van metadata- en schema- definitietalen. RDF (Resources Description Framework) geeft een oplossing hiervoor via een Syntax Specificatie en een Schema Specificatie. [Iannella] De bedoeling is dat RDF voor webdata zou verwezenlijken wat catalogusrecords voor boeken doen, met als doelstelling natuurlijk een snellere en accuratere retrieval. RDF metadata kunnen als beschrijvingen van web informatie (ieder object met een URI als adres) meerdere toepassingen hebben: ♦ het verbeteren van WWW-zoekfaciliteiten door gerichter zoeken ♦ het catalogiseren van webinformatie: beschrijven van informatie-inhouden ♦ bij intelligent software agents: het delen en het uitwisselen van informatie ♦ het beschrijven van intellectueel eigendomsrecht ♦ de koppeling aan digitale handtekeningen [Berners-Lee]
-standaards
"Look at the label on the jam jar which says: "Expires 1999". What expires: the label, or the jam? Here the ambiguity is between a statement about a statement about a document, and a statement about a document." [Berners-Lee2]
37
"Just as different Lego sets express undersea, outer space or medieval castle themes, RDF can enable snapping together modules that support metadata themes for education, government, or commercial purposes, all working together in the same architecture." [Miller2]
Waarom volstaat XML voor deze doelstellingen niet? Een concreet voorbeeld maakt dit snel duidelijk. Stel dat men in een XML-documenten de volgende elementen heeft: href="webpage"Alec
Voor ons als mensen is het perfect duidelijk waar deze elementen voor staan en welke informatie ze omvatten, voor een machine is dit natuurlijk weinig meer dan: <x>a="yyyy" oooo
ment, maar niets meer. We weten niet wat we moeten afleiden. We weten niet of yyyy een x is van oooo. De complexiteit van het ondervragen van een XML boomstructuur is bovendien hoog omdat er een zeer groot aantal mogelijkheden bestaan om die boom op te bouwen. Beweringen als "De auteur van document 1 is Jan" en "Jan is de auteur van document 1" zijn voor mensen identiek, maar voor machines is dit minder evident. De zoekvraag die men stelt moet onafhankelijk kunnen werken van de keuze van die structuur: de set van alle mogelijke representaties die beantwoorden aan de zoekvraag moet in een enkel "statement" kunnen geconverteerd worden. Dat is precies hetgeen met RDF mogelijk is. Het zorgt voor een gestandaardiseerde manier om statements te schrijven zodat hoe die ook in een document opduiken, zij in RDF-termen hetzelfde effect produceren. Dezelfde RDF-boom is het resultaat van vele XMLbomen. Door de mogelijkheden van XML uit te buiten, levert RDF aldus een structuur op die de niet-ambigue uitdrukking van semantiek mogelijk maakt en op manier kan zorgen voor consistente codering, uitwisseling en verwerking van gestandaardiseerde metadata. [Miller2] RDF is een toepassing van XML en maakt gebruik van XML Namespace waardoor een set van eigenschappen uniek kan geïdentificeerd worden. Het RDF-datamodel is vrij simpel: zaken hebben eigenschappen; elke eigenschap heeft een naam en een waarde. Elke bron kan verschillende van die eigenschappen hebben. De waarde kan zelf een bron zijn. "De auteur van document 1 is Jan" en "Jan is de auteur van document 1" worden dan "Document 1" als enige bron, auteur als eigenschapstype en Jan als waarde ervan. Met RDF-elementen beschreven geeft dit:
-standaards
Zonder naar het schema te kijken kennen we hier wel zaken over de structuur van het docu-
38
Jan
Aan de hand van het gebruik van RDF, kunnen diverse gebruikersgroepen de notie "auteurschap" delen en hetzelfde element gebruiken voor het beschrijven van deze notatie, terwijl deze gemeenschap dan haar eigen onderwerpsclassificatie gebruikt en een andere gemeenschap andere gegevens toevoegt. Dit wordt vergemakkelijkt door het gebruik van XML Namespaces die in RDF zijn geïncoporeerd. Dublin Core: Core: status en werking Dublin Core Metadata Initiative (beheerd door OCLC in Dublin, Ohio) is bedoeld om het vinden van digitale informatie te vergemakkelijken. De DC-elementen (Dublin Core Metadata Element Set, DCMES) vormen een kernset van elementen die gebruikt worden voor het vinden
jving...). Deze worden verder uitgebreid met "qualified DC-elementen" waardoor de opgenomen informatie nog kan verfijnd worden. Zo kan een datum vastgelegd worden als "laatste datum van aanpassing" of kan van een bepaalde cijfercombinatie aangegeven worden dat ze behoort tot een classificatieschema zoals UDC of DDC. DC wordt idealiter gebruikt samen met RDF en XML. Dublin Core gaat immers over semantiek (wat men wil zeggen over de inhoud). RDF neemt dan de structuur voor zijn rekening (de conventies voor de codering van beweringen over een resource die de DC-semantiek gebruikt), terwijl XML dan weer de nodige syntax voorziet voor de codering in RDF. De DC-elementen kunnen echter ook los worden aangebracht in (X)HTML (dat gebeurt bijvoorbeeld bij de omzetting van een MS Word 2000-document naar HTML, zie voorbeeld in bijlage). Om de link tussen "dc:" en Dublin Core duidelijk te maken aan software beginnen de RDF beschrijvingen waarin XML Namespaceconstructies worden gebruikt met een declaratie van de namespace die gebruikt wordt, de lokatie waar ze kunnen geïnterpreteerd worden door de aangepaste software en de afgekorte vorm waarin zij kunnen herkend worden doorheen de RDF beschrijving die erop volgt. Een voorbeeld: Alec VuijlstekeIndex Bulletin Belgisch Historisch Instituut te Rome2000-11-04
RDF is de default namespace. Tussen > staan drie eigenschappen die de
-standaards
De basis van DC bestaat uit 15 van dergelijke elementen (auteur, onderwerp, datum, beschri-
39
en het indexeren van webinformatie onder de vorm van metadata.
bron beschrijven die door de URI in het "about"-attribuut zijn opgenomen. De eigenschappen komen van de Dublin Core namespace (DC, 1998). Het dc:creator-element verwijst naar de namespace URI "http://purl.org/dc/elements/1.0/" . Naast de DC kunnen er natuurlijk ook andere metadata schema's gebruikt worden die opnieuw door dergelijke namespaces zijn aangeduid binnen RDF (eigen aan een nationale bibliotheek bijvoorbeeld om landspecifieke eigenschappen te beschrijven).
4.10 Diverse standaarden gebaseerd op XML Naast de echte XML Standaards, zijn er in de marge van XML nog een aantal standaards
talen voor het beschrijven van vectorafbeeldingen en toepassingen van XML24. ♦ SVG (Scalable Vector Graphics) is een taal voor het beschrijven van twee-dimensionele afbeeldingen in XML. Bij de afbeeldingen kan in een XML namespace tekst toegevoegd worden hetgeen het zoeken en de toegang tot SVG afbeeldingen moet vergemakkelijken. SVG is momenteel een kandidaat Recommendation25. ♦ SMIL (Synchronized Multimedia Integration Language) moet de eenvoudige aanmaak van op televisiebeelden gelijkende multimediapresentaties (zoals een online cursus) op het WWW mogelijk maken. De SMIL-taal is een gemakkelijk te leren HTML-achtige taal. Op die manier kunnen presentaties geschreven worden met een simpele teksteditor. Een SMIL-presentatie kan dan samengesteld zijn uit tekst en/of multimedia.
5| Het nut van de XML Standaards "The Semantic Web is a vision: the idea of having data on the web defined and linked in a way that it can be used by machines not just for display purposes, but for automation, integration and reuse of data across various applications." [Semantic Web Activity, www.w3org/2001/sw]
24
http://www.w3.org/TR/1998/NOTE-PGML
25
http://www.w3.org/Graphics/SVG/Overview.htm8
-standaards
♦ VML (Vector Markup Language) en PGML (Precision Graphics Markup Language): zijn
40
waaraan gewerkt wordt:
5.1 Algemene toetsing XML kan ten dienste staan van een aantal belangrijke activiteiten met betrekking tot digitale informatie zoals: ♦ de uitwisseling van digitale informatie ♦ het publiceren van digitale informatie op maat en bestemd voor diverse kanalen (webbrowsers, papieren publicatie...) ♦ het produceren van meerdere documenten vanuit één informatiebron ♦ het waarborgen van de lange levensduur van digitale informatie (omzetting van een prorietary document-formaat naar een XML-formaat) ♦ het verbeteren van information retrieval door het voorzien van contextuele informatie via metadata ♦ de communicatie bij processen zoals de uitwisseling van informatie tussen samenwer-
lecteren26 ♦ het uitwisselen van informatie over de taal- en culturele grenzen heen o.m. door het gebruik van UNICODE [Van der Steen] De massale doorbraak van XML en aanverwante standaards is gebonden aan een aantal elementen: 1. Grote en kleine gebruikers Het staat buiten kijf dat XML zeker zijn nut zal hebben bij grote projecten zoals een website van een internationaal bedrijf waarbij verschillende teams zich elk op een aspect toeleggen: het vastleggen van de eigenlijke inhoud, het vastleggen van de opmaak, het vastleggen van de structuur en de links tussen de verschillende componenten... Het mooie aan XML is hier dat het niet alleen in een webcontext kan worden gebruikt, maar ook in een veel bredere context van data-overdracht. In de bedrijfswereld wordt al geruime tijd gewerkt met EDI (Electronic Data Interchange) als standaard voor de elektronische uitwisseling van zakelijke informatie (bijvoorbeeld facturen). EDI is echter auteursrechtelijk beschermd en systemen moeten compatibel zijn ermee. Deze bezwaren vallen weg met XML. Nu is er trouwens al XML/EDI (www.xmledi.net) ontwikkeld waarbij XML wordt gebruikt om de gegevens te beschrijven, zonder dat hiervoor specifieke
26
Een programma dat informatie verzamelt of verwerkt op de achtergrond. Meestal gaat het om zeer kleine en
goed afgebakende taken.
-standaards
♦ het gebruik van XML-gemarkeerde informatie door intelligente "agents" die informatie se-
41
kende systemen via een netwerk
software vereist is. Binnen het bankwezen werd OFX (Open Financial Exchange) ontwikkeld dat eveneens XML gebruikt voor de beschrijving van financiële gegevens. XML heeft een groot nut als drager van data. De ontvangen data kunnen immers volledig lokaal door bijvoorbeeld een webbrowser behandeld en verwerkt worden. Het zelfde resultaat kan men verkrijgen door gebruik te maken van CGI-scripts of Active Server Pages die de data opvragen uit een databank; beiden moeten echter vanuit de server en dus niet lokaal bij de client een HTML pagina genereren die deze data bevat. De server moet zich m.a.w. bezighouden met de opmaak van de HTML-pagina, terwijl zijn eigenlijke taak het leveren van data zou moeten zijn. Hetzelfde probleem stelt zich wanneer men een zoekactie uitvoert: in plaats van enkel de nodige gegevens op te zoeken, moet de server opnieuw een HTML-pagina doorsturen met de aangepaste informatie. In het geval van XML nu, kan de server de data leveren en kan de webbrowser zich toeleggen op de pagina-opmaak en het uitvoeren van lokale zoekacties op de data. Het is de client die de presentatie naar de gebruiker toe verzorgt via
grote tijdsbesparing op in het client-serververkeer. Wat de kleine gebruiker betreft, zal het gebruik van HTML zeker nog niet zo snel verdwijnen. Er zijn immers een aantal redenen waarom HTML nog steeds zoveel succes kent: ♦ De manier waarop webbrowsers met fouten omgaan: die worden in verregaande mate getolereerd. Slordigheid is toegestaan. ♦ Er bestaan momenteel al gigantisch veel HTML-gemarkeerde documenten. ♦ XML is bij de kleine gebruiker nog niet ingeburgerd: er zijn meer gebruiksvriendelijke toepassingen nodig waarbij een zeer technische kennis van de XML standaards niet vereist is. ♦ De XML standaards liggen nog niet alle volledig vast om wijdverspreid gebruik mogelijk te maken. ♦ Iemand die XML webpagina's wil maken moet ook de ermee geassocieerde specificaties XSL, XLink en XPointer onder de knie hebben, hetgeen complex is. Warwick stelt zich de vraag waarom er zo nodig twee volledige specificaties voor linking moesten geschreven worden. Dit zou minder technisch onderlegde gebruikers kunnen ontmoedigen om ze te leren gebruiken: "Many information providers who might have liked to use two-way linking in basic HTML documents may be daunted by this heavy handed approach to the additional specifications." Het verwijt is dat XLink en XPointer zeer complexe talen zijn voor de oplossing van eenvoudige problemen. [Warwick, 178] Het gebruik van HTML door de modale gebruiker zal dus wellicht nog een hele tijd blijven voortduren. Dit heeft natuurlijk implicaties op de ontwikkeling XSL/XLink en XPointer die niet met HTML bruikbaar zijn. Het is goed mogelijk dat naarmate de HTML+CSS oplossing meer en meer gesofistikeerd wordt, de kleine gebruker het nut niet in ziet van een overstap naar
-standaards
eens de data geleverd, geen verdere interactie meer nodig met de server. Dat levert een
42
een stijlblad. Indien de gebruiker dan wil sorteren op "titel" in plaats van op "auteur" is er,
XML. Vanuit XML is weliswaar de impuls gekomen tot de creatie van XHTML als toepassing van XML, maar juist de striktheid van XHTML kan een reden zijn voor veel mensen om, uit tijdsbesparing en gemakzucht, bij HTML te blijven. Vandaar dat XML en HTML elkaar momenteel in de praktijk meer en meer beginnen aan te vullen. Indien men een document in MS Word 2000 omzet naar een HTML-bestand, dan bevat die HTML-codering een hele boel "XML-eilanden" (zie voorbeeld in bijlage) die dan door andere (Microsoft) toepassingen kunnen gebruikt worden. 2. Moeizaam standaardiseringsproces SGML standaards zijn ISO-standaards. Daaraan gaat een langdurig standaardisatieproces aan vooraf. Het voordeel is dan dat deze standaards voor minimum vijf jaar ongewijzigd blijven hetgeen de stabiliteit van de software bevordert. De XML standaards daarentegen, worden bepaald door W3C en hebben het voordeel dat ze snel kunnen worden vastgelegd en toepassingen.
43
Een aantal van de XML-standaards is nog in volle ontwikkeling: belangrijke componenten als
-standaards
ook snel kunnen worden gewijzigd. Dat laatste kan nadelig zijn voor de levensduur van de
XSL, XLink en XPointer moeten nog de status krijgen van Recommendation. De moeizame en vrij chaotische ontwikkeling van deze standaards heeft natuurlijk veel te maken met het probleem dat men toekomstig gebruik moet voorzien zonder dat men ervaring heeft met deze nieuwe toepassingen. 3. XML versus webbrowsers en specifieke bestandsformaten Of XML echt massaal zal gebruikt worden hangt ook af van de respons van de grote webbrowserbouwers hierop (Microsoft en Netscape). De browsermakers hebben in ieder geval wel plannen om XML beter te gaan ondersteunen. Men kan alleen maar hopen dat ook bijvoorbeeld de XSL Formatting Objects binnenkort zullen ondersteund worden. Het gebruik van XML is uiteraard niet beperkt tot webbrowsers. XML zou kunnen instaan voor het leveren van gestandaardiseerde formaten voor databanken en spreadsheets of meer zelfs, de bestaande "proprietary formats", en op die manier bijvoorbeeld een volwaardig MS Word-document kunnen vervangen. Dit soort gestandaardiseerd gebruik van XML zal natuurlijk pas echt kunnen beginnen wanneer het mogelijk wordt om in de huidige populaire software bestanden op te slaan in XML (gecombineerd met XSL), hetgeen natuurlijk afhangt van commerciële factoren. Microsoft heeft XML alvast ingewerkt in zijn MS Office 2000-pakket, precies om de onderlinge bestandsuitwisseling tussen de verschillende Office-onderdelen (inclusief webpagina's) te vergemakkelijken. Het is hierbij wel zo dat Office XML-documenten niet probleemloos kunnen bekeken of uitgewisseld worden met software die niet van Microsoft afkomstig is! De vraag is dus in welke mate de grote spelers zoals Microsoft aan de verleiding zullen kunnen
weerstaan om commercieel voordeel te halen door XML aan te passen aan hun eigen software. Het is niet te voorspellen hoe dit zal evolueren. Het is duidelijk dat het gebruik van de "proprietary formats" nadelen heeft t.o.v. XMLdocumenten als "open documenten", zowel qua inhoud als qua vorm: ze kosten geld en zijn niet voor elk platform beschikbaar; ze kunnen een virus bevatten; de omvang van dergelijke documenten is meestal groot; ze zijn versiegevoelig; ze zijn niet "futureproof". In een meer ontwikkeld stadium kan XML in combinatie met de XML Standaards aan al deze problemen tegemoet komen. 4. Integratie met alle mogelijke media Belangrijk voor het welslagen van de XML standaards is uiteraard de integratie van XML met allerlei multimedia, zoals geluid en beeld. Hierrond zijn al een aantal initiatieven uitgewerkt. Een voorbeeld: het Duitse bedrijf Atlas.ti legt zich toe op het ontwikkelen van software voor de weergave van zo'n transcriptie kunnen opgenomen gesprekken perfect geïncorporeerd
44
worden:
-standaards
transcriptie van interviews binnen het kader van sociologische onderzoeken. In de XML-
<Speakers> <Speaker id="I" name="Interviewer"/> <Speaker id="B" name="Herr Schultz" dialect="bavarian"/> Wars doch eigentlich, ja da wars doch glaub ich erst ein oder zwei Tage, oder vielleicht einen Tag. [Atlas.ti]
5. Wondermiddel voor zoeken op WWW? Het is een enigzins 'afgezaagd' verhaal dat het WWW een jungle is waarin men slechts moeilijk en tot frustratie van menigeen de juiste, accurate informatie kan terugvinden. Dikwijls probeert men XML te verkopen als dé oplossing voor dergelijke problematiek. XML op zich kan daar natuurlijk weinig aan veranderen. Alles hangt af van de juiste toepassing van XML in het kader van een stringent metadatasysteem. Complementair aan het doorzoeken van de tekst van een hele HTML-pagina, zouden zoekmachines aldus inderdaad XMLmarkeringen kunnen gebruiken om te bepalen in welke delen van een document er precies moet worden gezocht (naar analogie met velden). Om dit mogelijk te maken moeten er een aantal grote aanpassingen gebeuren: ♦ Browsers moeten XML pagina's kunnen herkennen (momenteel is dit beperkt tot IE5 en Netscape 5-Gecko). Deze browsers zijn momenteel nog hoofdzakelijk gericht op de loutere weergave van XML-documenten (omzetting van XML via XSL naar HTML). ♦ Elk professioneel domein zal zijn eigen metadataraamwerk moeten opzetten. Dit is reeds het geval voor beperkte domeinen zoals in de wiskunde, de chemie, de genealogie, de
digitale teksten (TEI), de archivistiek (EAD-XML). Voor andere gebieden zal de ontwikkeling van dergelijke schema's veel moeilijker zijn. ♦ Zoekmachines zullen moeten gebruik maken van de XML-markeringen als metadata. Bovendien moeten zij om kunnen springen met de hiërarchische structuur van de documenten. De machines zullen elke standaardstructuur voor specifieke documentgroepen moeten kunnen doorzoeken. Dit is wellicht gemakkelijker op intranetten dan voor het gehele WWW.
5.2 XML en databanken
dan eender welk ander tekstbestand. Wanneer het wordt gebruikt in combinatie met de andere XML-standaards voorziet XML anderzijds in veel zaken die eigen zijn aan een databanksysteem: bewaring (het XML document), het gebruik van schema's (DTD's, XML Schema's), de mogelijkheid tot het zoeken in de data (XQuery, XQL), het gebruik van programmeerinterfaces (SAX, DOM), enz. Er ontbreken echter nog een aantal zaken die men in een echt databanksysteem aantreft: efficiënte bewaring, indexeringsmogelijkheden, waarborgen voor de veiligheid en de integriteit van transacties en data of nog het bieden van gelijktijdige toegang voor meerdere gebruikers. Het gebruik van XML en XML-standaards als een databank zal met andere woorden niet gemakkelijk verlopen in een omgeving met zeer veel gebruikers, strikte vereisten omtrent data-integriteit en de noodzaak aan goede performantie. Bourret stelt dat men een onderscheid moet maken tussen twee soorten XML-documenten: data-centrische en document-centrische. De eerste worden gekenmerkt door een vrij regelmatige structuur, fijnkorrelige data en weinig of geen gemengde inhoud. Voorbeelden zijn XML-documenten met bestellingsorders. Ze zijn meestal bestemd voor verwerking door machines en het gebruik van XML staat hier enkel ten dienste van het datatransport. In het algemeen kan iedere website die op een dynamische manier HTML-documenten aanmaakt door een sjabloon te vullen met databankdata, vervangen worden door data-centrische XMLdocumenten en een of meer XSL stijlbladen. Document-centrische of semi-gestructureerde documenten27 worden daarentegen gekenmerkt door een onregelmatige structuur, een minder diepgaande fijnkorreligheid en veel ge-
27
Semi-gestructureerde data zijn data die slechts een bepaalde graad van structuur hebben, zoals bijvoorbeeld
documenten die gemarkeerd zijn met waarden voor attributen als auteur, titel, onderwerp enz.
-standaards
het zonder bijkomende software die helpt om die data te verwerken niet meer een databank
45
Strikt genomen is XML op zichzelf geen databank: hoewel een XML-document data bevat, is
mengde inhoud. De volgorde waarin de elementen elkaar opvolgen is daarbij belangrijk. Voorbeelden zijn boeken, e-mails en bijna eenieder XHTML document. Document-centrische documenten zijn in het algemeen bestemd voor verwerking door mensen, niet door machines. Er zijn natuurlijk ook mengvormen waarbij het onderscheid tussen beide documenttypes niet kan gemaakt worden (een bestelorder kan bvb. een onderdeel "opmerkingen" bevatten). [Bourret] Dit onderscheid impliceert dat men moet bepalen of men een databank wil gebruiken voor het bewaren van data dan wel voor de opslag documenten. Indien men data wil bewaren dan zal men een databank nodig hebben die geschikt is voor data-opslag zoals een relationele of object-georiënteerde databank aangevuld met het gebruik van middleware28 om de data tussen de databank en de XML-documenten te transfereren29. Indien men echter documenten wil bewaren dan heeft men een content management system nodig. In tegenstelling tot een document management system laat een dergelijk systeem toe dat documenten in (aan elkaar gerelateerde) fragmenten kunnen opgebroken worden (hoofdstukken of metadata zoals
De bestaande oplossingen voor het bewaren en toegankelijk maken van HTML-documenten zijn document management systems en volstaan dus niet voor document-centrische XMLdata. Deze zijn namelijk te zeer gericht op het document en niet op het object. Contentmanagement biedt voorts meer mogelijkheden dan document management: ♦ hergebruik
van
informatie-onderdelen
(nieuwe
documenten
kunnen
worden
samengesteld uit losse informatiecomponenten) ♦ publiceren naar meerdere kanalen ♦ snellere en efficiëntere interactie tussen server en client. ♦ coördineren van het werk van meerdere auteurs die op een zelfde document werken ♦ samenstellen van geheel nieuwe documenten op te stellen op basis van bestaande componenten. Een content management system of XML-repository (= een informatiesysteem waarin XMLobjecten of -entiteiten in opgeslagen worden voor verdere verwerking en gebruik) moet aan verschillende eisen kunnen tegemoetkomen: ♦ Opname van zeer grote datavolumes (eventueel groter dan hetgeen een enkele computer of server aankan) die fysiek verspreid opgeslagen kunnen zijn. ♦ Het opslagsysteem moet heel flexibel kunnen zijn aangezien er binnen XML niet gewerkt wordt met vaste veld- en recordlengtes. Ook grote binaire bestanden moeten kunnen opgeslagen en onderscheiden worden. ♦ Validering van de XML markering binnen de databank volgens het/de XML schema('s) of
28
Software die twee aparte toepassingen met elkaar verbindt.
29
Een voorbeeld van een programma dat databankoutput automatisch kan omvormen in XML en vice-versa is
XML-DBMS dat gebaseerd is op Java Database Connectivity.
-standaards
46
auteursnamen, revisiedata, ...).
DTD('s) ♦ Kunnen gebruiken en herkennen van specifieke datatypes, multimedia objecten en BLOBs (Binary Large OBjects)30. ♦ Bieden van verregaande mogelijkheden voor ontsluiting, presentatie, navigatie, linking (ook van metadata met BLOBs en entiteiten) en information retrieval (men moet full text kunnen zoeken en dit op een hiërarchische manier, door het gebruikmaken van de inherente XML-structuur). ♦ Beheer op componentniveau van o.a. werkstroom, autorisatie en revisie. ♦ Ontwikkeling en onderhoud van de schema's en de specificaties voor presentatie, transformatie en taalgebruik. ♦ De XML data in de databank moeten op verschillende lokaties tegelijkertijd aanpasbaar kunnen zijn. ♦ De databank moet zowel fijnkorrelige elementen als de documentstructuur kunnen bewaren en indexeren.
Het is niet evident om een traditionele RDBMS te gebruiken als een XML content management system. De linkingmogelijkheid en de hiërarchische structuur van XML-documenten zorgen immers voor nieuwe vereisten waaraan relationele databanken moeite hebben om te beantwoorden. Om in een RDBMS XML documenten te kunnen opnemen zouden alle elementen moeten uit elkaar gehaald worden om ze onder te brengen in tabellen met verschillende velden. Dit maakt het moeilijk om de soms verregaande hiërarchie van XMLgemarkeerde informatie te bewaren. Het vertalen van XML naar en van (relationele) databankstrctuur vereist bovendien veel verwerking hetgeen nadelig kan zijn voor de performantie. Een oplossing kan zijn het bewaren van de XML-data in een RDBMS als BLOBs met "on the fly" parsen iedere keer als de XML-data nodig is. Dit gaat echter ten koste van de performantie door de herhaaldelijke parsing. Wanneer bovendien eens de data geparsed is, kan het systeem de vereiste complexe datamanipulatie niet meer uitvoeren (bijvoorbeeld nieuwe documenten creëren op basis van delen van bestaande documenten). De BLOB-aanpak ondermijnt ook de mogelijkheid tot linking binnen de informatie. Relationele databanken springen slecht om met een aantal zaken die nodig zijn in zo'n systeem: orde, hiërarchie, onregelmatige structuur en velden van zeer variabele lengte. Het is bovendien niet erg gemakkelijk om met SQL zoekvragen te formuleren als "geef alle
30
Een BLOB is een geheel van binaire data die opgeslagen is als een enkele entiteit in een databank (ze dienen
vooral voor het opslaan van multimedia of code).
-standaards
♦ Ondersteuning bieden voor scriptalen en objectgeoriënteerde programmeertalen
47
♦ Bieden van verregaande taalondersteuning (UNICODE).
hoofdstukken waarin de eerste paragraaf de eerste twee delen op die manier gemarkeerd heeft". Toch zijn een aantal grote content management systemen (zoals BladeRunner van Interleaf) gebaseerd op relationele databases. Bourret stelt niettemin vast dat de tekstverwerkingsmogelijkheden van relationele databanken zijn toegenomen met full-text indexering en de mogelijkheid om gespecialiseerde zoekopdrachten uit te voeren (bijvoorbeeld het gebruik van naburigheidsoperatoren of zoekopdrachten die thesauri gebruiken om synoniemen te zoeken). [Bourret] XML leent zich het best tot de opslag in een object-georiënteerde databank (ODBMS). Een XML-element <artikel>… komt inderdaad overeen met een object van het type class artikel {…}, terwijl de in <artikel> hiërarchisch ondergebrachte XML elementen , , … overeenkomen met de velden titel, auteur van het object artikel. Misschien zal de doorbraak van XML dan ook leiden tot een revolutie in de databankwereld, waar meer en
♦ In plaats van een XML-document als een BLOB in de databank op te slaan kan een ODBMS de object-georiënteerde inhoud en de structuur van XML toegankelijk maken voor indexeren, zoeken en manipuleren. ♦ Een ODBMS laat de meer eenvoudige creatie en beheer van gedistribueerde partities hetgeen belangrijk is voor het waarborgen van de (niet te voorziene) aangroei van de databank. ♦ Het object georiënteerde model laat zowel hiërarchische navigatie toe en snelle doorkruising van de boom van de XML knooppunten, waardoor de verwerkingstijd vermindert en de performantie stijgt. Een XML-linking mechanisme maakt het bovendien in dat model mogelijk om een BLOB te verbinden met een set XML-data die ze beschrijft. ♦ Een ODBMS is ontworpen om goed te kunnen omspringen met arbitraire, in lengte variërende en vaak met elkaar verbonden datatypes. Dat is natuurlijk erg belangrijk voor XML-gestructureerde data. Microsoft, Oracle en IBM hebben al XML extensies toegevoegd aan hun relationele databanken. In mei 2000 lanceerde Oracle het Internet File System (iFS) dat automatisch relationele databanken kan creëren van een XML DTD. Er zijn ook al object databanken zoals Tamino dat werkt met XPath als zoektaal31.
5.3 XML en bibliotheken 31
http://www.softwareag.com/tamino/
-standaards
XML-opslag in een ODBMS biedt volgende voordelen:
48
meer zal overgestapt worden op object databanktechnologie. [Hogan]
"XML does mean plenty for academic librarians. XML will not only affect the future of digital libraries; in many respects, it seems likely that XML is the future of digital libraries." [Sperberg-McQueen] "Due to Unicode and platform neutrality, XML offers the greatest promise of data longevity (or futureproofing), as hardware, software, and network protocols continue to change. And, XML provides for the unambiguous identification of complex data structures, that can be treated as objects, well suited for bibliographic data." [Miller3]
Uit hetgeen voorafgaat is al duidelijk geworden dat XML een interessante (en cruciale?) rol kan spelen in het bibliotheek- en informatiewezen. De meeste bibliotheken bewaren hun data nog altijd in specifieke formaten eigen aan diverse integrated library systems (ILS), waarbij uitwisseling dan gebeurt in het complexe MARC-formaat (ISO 2709). MARC is echter allerminst compatibel met het World Wide Web. Dit zorgt voor veel moeilijkheden onder meer bij
flexibel uitwisselen van data. Reeds met SGML bleek dat het mogelijk is om MARC records te manipuleren met daarbij het perfecte behoud van hun complexiteit. Dat is ook met XML het geval. XML Marc (http://xmlmarc.stanford.edu/), uitgevaardigd in december 1999, converteert MARC-records naar XML-documenten. Een verregaande introductie van XML in het bibliotheekwezen kan heel wat voordelen bieden: ♦ De veldinformatie van een MARC-record kan rechtstreeks ingebed worden in iedere specifieke markering en deze informatie zou zo in een databank of OPAC kunnen geïmporteerd worden, waarbij de markeringen het programma duidelijk maken hoe de veldnamen en de data in elk veld te interpreteren. [Bradley] ♦ Bij het toegankelijk maken en leveren van full-text elektronische documenten binnen de digitale bibliotheek (in het kader van TEI bijvoorbeeld). ♦ Voor de exploitatie van bibliografische data: het tot stand brengen van collectieve catalogi, het beheren van orders, het voorzien in current awareness-diensten. ♦ Voor het gelijktijdig ondervragen van verschillende catalogi: een Z39.50 server kunnen aan XML-bestanden gekoppeld worden om de extractie van bepaalde elementen toe te laten ♦ XML-gemarkeerde bibliografische records zouden meteen kunnen gelezen worden door webbrowsers zonder bijkomende nood aan conversie en aldus gemarkeerde bibliografische data zouden kunnen hergebruikt worden in verschillende omgevingen ♦ XML kan zeer goed omspringen met verschillende schriftsoorten en met authority control. Met UNICODE kan XML diacritische tekens, speciale en niet-Romeinse karakters behandelen zoals gewone tekst.
-standaards
aanwinstenlijsten in verband met een specifiek topic (internetbronnen inbegrepen) of nog het
49
het produceren van bibliografische citaties uit MARC-data, het automatisch genereren van
♦ In tegenstelling tot MARC is in de markering zelf de aanbreng van gesofistikeerde hyperlinkings mogelijk. ♦ De transparantie neemt toe: XML-gecodeerde bibliografische data is gemakkelijk verstaanbaar (in tegenstelling tot programmacode). XML op zichzelf is natuurlijk niet de enige evolutie die bibliotheken en informatiecentra aandachtig zullen moeten volgen. Dit geldt evenzeer voor RDF en Dublin Core. In die omgevingen moet men zich trouwens realiseren dat ook steeds meer webdocumenten zullen moeten "gecatalogiseerd" worden. Indien de bibliotheekbronnen en webbronnen niet aan elkaar kunnen "gelijmd" worden, dan wordt de rijke informatie die in een bibliotheekcatalogus opgeslagen is, ondergebruikt door de volledige scheiding ervan met de op het WWW beschikbaar informatie. Sommigen vrezen zelfs voor een totale marginalisering. Gebruikers staan immers van nature weigerachtig tegenover het doorzoeken van meerdere bronnen. In de medische bibliotheek van Stanford University werd duidelijk vasstgesteld dat eerst Medline werd geconsulteerd en de menswetenschappen, om eerst te kijken wat er op het internet te rapen valt en pas dan
50
de catalogi te consulteren.
-standaards
pas dan de catalogi van de bibliotheek [Miller3]. Het is een natuurlijke reflex van velen, ook in
Veel bibliotheeksystemen, zelfs die die beweren "open" te zijn, hebben volgens Eric Miller een te beperkte "interface flexibility", waardoor het moeilijk wordt om catalogusinformatie in andere webcontexten te gebruiken. Volgens hem zullen gebruikers meer en meer bronnen die niet onmiddellijk raadpleegbaar zijn in de gewone webinterfaces naast zich laten liggen. Indien bibliotheeksystemen en MARC op XML zouden gebaseerd zijn, zou er veel efficiënter kunnen gewerkt worden aan "cross-system" integratie: "This single change to an open, universal format, which includes a role for library system vendors, can transform the timehonored MARC format to prevent its obsolescence and put librarians in the mainstream - better positioned to serve our users." Productie- en beheerstools zullen voor XML-data bovendien breder en goedkoper beschikbaar zijn dan voor MARC-data. Volgens Miller moet het binnen drie tot vijf jaar mogelijk zijn om een op XML-gebaseerd bibliotheeksysteem te creëren. Hij stelt voor dat de American Library Association alvast zou beginnen met de creatie van DTD's of schema's om de modules van een dergelijk systeem te ondersteunen (modules voor holdings, gebruikers, bestelorders, IBL enz.). [Miller3] Binnen het archiefwezen speelt zich eenzelfde scenario af. Op basis van SGML werd vanuit de Berkeley universiteit in California EAD ontwikkeld, Encoded Archival Description, dat de uniforme publicatie van archiefinventarissen op diverse media moet mogelijk maken32. Een tijdje geleden werd binnen deze groep reeds de overstap gemaakt naar XML in combinatie met een DTD in de plaats van SGML en momenteel is men bezig aan het ontwerp van een XML Schema voor deze finding aids. XML is uiteraard zeer goed geschikt voor de digitale ter
32
Officiële website: http://lcweb.loc.gov/ead/
beschikking stelling van dergelijke inventarissen met de hiërarchische structuur die hun ei-
-standaards
51
gen is33.
33
Een collectie van dergelijke EAD-gestructureerde inventarissen vindt men op
http://sunsite.berkeley.edu/FindingAids/
6| Conclusie "De metafoor van een universele computer nodigt uit om informatiesystemen die tot nu toe een lokaal bestaan leidden te promoveren tot gedistribueerde systemen die communiceren via het web. Begeleidende XML standaarden worden ontwikkeld om bijvoorbeeld meerdere auteurs op afstand te laten werken aan één document en om het werkstroombeheer via het Web te regelen." [Van der Steen, 13] "It is not hard to imagine your Web-enabled microwave oven consulting the frozen-food manufacturer's Web site for optimal cooking parameters." [Berners-Lee3]
lijk dat HTML als markeertaal niet meer volstaat, precies omdat het eerder een presentatiedan een echte uitwisselingstaal is. Het doen van gestructureerde bewerkingen met HTMLopgemaakte data verloopt zeer moeilijk en kan zich enkel afspelen op documentniveau in plaats van op componentniveau. Het "on the fly" aanmaken van HTML vanuit een databanksysteem zoals nu massaal wordt gedaan kent duidelijk zijn grenzen en is overbodig belastend voor het dataverkeer. Met de gegevens die aldus worden gegenereerd, heeft men enkel de presentatie, men kan er weinig anders mee aanvangen. Ook zaken als de huidige hyperlinkingmogelijkheden en webformulieren met HTML zijn te beperkt. Daarnaast is het duidelijk dat XML meer is dan alleen maar een verbetering ten opzicht van HTML. Samen met de krachtige XSL-FO's zou een gesloten formaat als een Worddocument inderdaad perfect kunnen vervangen worden door een XML-document waarop complexe XSLFormatting Objects voor de opmaak worden toegepast. Een dergelijke implementatie samen met de aanwezigheid van aangepaste gebruiksvriendelijke software (zodat de modale gebruiker zich niets van die markeringen hoeft aan te trekken), zou terreinverlies betekenen voor het quasi universele Word-formaat. De reactie van de grote softwareproducenten zal dus zeker en vast bepalend zijn voor een op XML-gebaseerd "open formaat". De halfslachtige implementatie van XML door Microsoft (invoeging van "XML-eilanden" specifiek bestemd voor andere Officetoepassingen) is in ieder geval maar een flauw afkooksel van de echte open bestandsuitwisseling die aldus zou kunnen bekomen worden. De scheiding tussen de presentatie- en de datalaag is een zeer groot voordeel van XML. In het voorbeeld van een universitaire instelling zou dan op dataniveau wetenschappelijke inhoud door universitaire medewerkers kunnen geleverd worden (bijvoorbeeld een wetenschappelijk artikel), terwijl de opmaak van deze enorme hoeveelheid informatie door een daarin gespecialiseerd team zou kunnen gebeuren. Hetzelfde geldt voor de transformatie van
-standaards
hergebruik en de uitwisseling die men wenst verwezenlijken van die informatie, is het duide-
52
In het licht van de massale hoeveelheid informatie die op het web wordt aangeboden en het
de data: een document (bijvoorbeeld een beschrijving van de verschillende departementen in het kader van een digitale informatiebrochure) zou kunnen opgebouwd worden uit verschillende losse XML-entiteiten waarvoor ieder op een welbepaald niveau een bepaalde verantwoordelijkheid draagt. Dergelijke gestructureerde processen kunnen voor veel meer tijdswinst en efficiëntie zorgen. Een "informatieprofessional" kan dit soort processen in goede banen leiden. Zoals aangetoond, kan XML voor bibliotheken en informatiecentra een zeer goed middel zijn om de volledige integratie met het WWW te verwezenlijken en onder meer te verhelpen aan de problematiek van de "dark data" die in tal van bibliotheekcatalogi aanwezig is om de eenvoudige reden dat het MARC-formaat niet compatibel is met de huidige informatieuitwisseling op het World Wide Web. Een gelijkschakeling van digitale informatie op het web met een record uit een bibliotheekcatalogus dringt zich echter op, aangezien bibliotheken bijvoorbeeld in het kader van selective dissemination of information-dienstverlening in staat en gebruiksvriendelijke manier aan de geïnteresseerde aan te bieden.
53
Een dergelijke integratie kan met XML als uitwisselingstaal verwezenlijkt worden. RDF als
-standaards
zullen moeten zijn om informatie van verschillende media op een uniforme, gestructureerde
metadataraamwerk en de Dublin Core-elementen als metadataset kunnen daarbij gebruikt worden, al dan niet aangevuld met eigen specifieke metadata-elementen. Specifieke groepen kunnen aan de hand van namespaces en binnen het kader van XML Schema markeersets ontwikkelen, zodat er binnen bepaalde disciplines (zoals bijvoorbeeld de archivistiek met de EAD-standaard voor archiefinventarissen) meer uniformiteit en meer integratie mogelijk is. De ondersteuning door XML van vreemde karakters via UNICODE kom hier eveneens aan tegemoet. In combinatie met RDF past XML bijzonder goed in de evolutie naar een "Semantic Web", dat een extensie is van het huidige "domme" World Wide Web, waarin informatie een veel betere betekenis krijgt en computers en mensen veel beter toe laat om samen te werken. Tot nu toe was het Web vooral een medium van documenten voor mensen eerder dan voor informatie die automatisch kon verwerkt worden. De driehoek XML, RDF en een URI die namespaces identificeert kan hierin een erg krachtig concept zijn. Deze URI's verzekeren dat concepten verbonden zijn met een unieke definitie die op het WWW beschikbaar is. Aldus wordt tegemoet gekomen aan het huidige probleem van de afwezigheid van vergezellende data op het web die machines toelaten om de informatie van het web te "interpreteren". Daardoor zou het zoeken binnen XML+RDF-documenten veel verfijnder kunnen gebeuren of kan webcontent (in plaats van volledige documenten) verzameld worden van verschillende bronnen op verzoek van een gebruiker. Ook digitale handtekeningen en het valideren van "betrouwbare" bronnen zijn hierbinnen veel beter mogelijk. Tot slot dient nog eens onderlijnd te worden dat XML technologie bestaande technologieën
aanvult en niet vervangt. Wellicht zal er een zekere segmentatie ontstaan: voor het bewaren van hooggestructureerde tekst en getallen zijn relationele systemen nog steeds aangewezen, voor eenvoudige documenten die louter op presentatie gericht zijn, zal HTML wellicht nog een hele tijd succes kennen. Daar echter waar communicatie, uitwisseling en vervolgens verwerking de prioriteiten zijn, kan XML een belangrijke rol spelen, aangezien er dan niet meer met "proprietary data formats" gewerkt wordt. Men kan dus alleen maar hopen dat XML het einde
-standaards
54
inluidt van dergelijke formaten.
Bibliografie ATLAS.TI, "Atlasti goes XML", http://www.atlasti.de/ BERNERS-LEE (Tim) & Swick (Ralph R.), "FAQ about RDF", http://www.w3.org/RDF/FAQ BERNERS-LEE (Tim) (2), "Why RDF model is different from the XML model", http://www.w3.org/DesignIssues/RDF-XML.html BERNERS-LEE (Tim), HENDLER (James) & LASSILA (Ora) (3), "The Semantic Web", http://www.sciam.com/2001/0501issue/0501berners-lee.html
BOURRET (Ronald), "XML Database Products", http://www.rpbourret.com/xml/XMLDatabaseProds.htm BOURRET (Ronald) (2), "XML Namespaces FAQ", http://www.rpbourret.com/xml/NamespacesFAQ.html BRADLEY (Cara), "The XML Files: the Truth will be Out There", http://www.slis.ualberta.ca/538-99/cbradley/xml.htm BUELINCKX (Erik) & NIEUWENHUYSEN (Paul), "Uitkijken naar XML. Documenten verspreiden zowel via druk als via WWW", Informatieprofessional, 3, 1999, pp. 24-26. CONNOLLY (Dan), KHARE (Rohit), RIFKIN (Adam), "The Evolution of Web Documents: The Ascent of XML", http://www.cs.caltech.edu/~adam/papers/xml/ascent-of-xml.html COVER (Robin), "The XML Cover Pages - W3C XML Protocol", http://www.oasisopen.org/cover/xp-w3c.html DEROSE (Steven J.), "XML Linking: an Introduction", http://www.stg.brown.edu/~sjd/xlinkintro.html DUBLIN CORE METADATA INITIATIVE, "FAQ", http://purl.org/dc DUBLIN CORE METADATA INITIATIVE, "Guidance on expressing the Dublin Core within the Resource Description Framework", http://www.ukoln.ac.uk/metadata/resources/dc/datamodel/WD-dc-rdf HAROLD (E.R.), "XML Bible", http://www.ibiblio.org/xml/books/bible/ HOGAN (Mike), " XML: The Foundation for the Future", http://www.xml.org/whitepapers/xml_foundation_future.html
-standaards
BOSAK (Jon), "Media-Independent Publishing: Four Myths about XML", http://metalab.unc.edu/pub/sun-info/standards/xml/why/4myths.htm
55
BOSAK (Jon) & BRAY (Tim), "XML and the Second-Generation Web", http://www.sciam.com/1999/0599issue/0599bosak.html
HYTIME, "HyTime: ISO 10744 Hypermedia/Time-based Structuring Language", http://dmsl.cs.uml.edu/standards/hytime.html IANELLA (Renato), "An Idiot's Guide to the Resource Description Framework", http://archive.dstc.edu.au/RDU/reports/RDF-Idiot/ KIM (Hyun-Hee) & CHOI (Chang-Seok), "XML: how it will be applied to digital library systems", The Electronic Library, 18, 2000, 3, pp. 183-189 MALER (Eve) (2), "XLink and XPointer Overview", http://www.oasisopen.org/cover/xlinkMaler980402.html MALER (Eve), "XML Linking: an Executive Summary", http://www.sun.com/software/xml/developers/xlink.html
MILLER (Eric) (2), "An introduction to the Resource Description Framework", D-Lib Magazine, May 1998, http://www.dlib.org/dlib/may98/miller/05miller.html MILLER (Eric) (3), "XML: libraries' strategic opportunity", netConnect, Summer 2000, http://xmlmarc.stanford.edu/LJ/ MURATA, "Observations on Structured Document Query Languages", http://www.w3.org/TandS/QL/QL98/pp/murata-san.html ROBIE (Jonathan), "XQL Faq", http://www.ibiblio.org/xql/ ROBIE (Jonathan), LAPP (Joe) & SCHACH (David), "XML Query Language (XQL)", http://www.w3.org/TandS/QL/QL98/pp/xql.html ROSENFELD (Lou), "XML Text and Context", http://webreview.com/pub/1999/02/05/feature/index.html SCOTT (Damien), "XML: New Language of the Web", http://www.ecs.soton.ac.uk/~dcs196/xxzzy/xmlmain.htm SPERBERG-McQUEEN (C.M.), "XML and the Future of Digital Libraries", The Journal of Academic Librarianship, July 1998, pp. 314-317. TITTEL (Ed) & BOUMPHREY (Frank), XML voor dummies, Foster City, IDG Books, 2000, 404 p. UNICODE CONSORTIUM, "The Unicode Standard", http://www.unicode.org/unicode/standard/standard.html VAN AMSTEL (Patrick), VAN DER EIJK (Pim) & KUILMAN (David), "XML-ondersteuning in Internet Explorer 5", http://www.sgml-ug.nl/HTML/frame_element/1999/explorer/explorer5.htm
-standaards
MILLER (Eric), WEIBEL (Stuart), "Dublin Core: Building Blocks for the Semantic Web", http://www.xml.com/print/2000/10/25/dublincore/index.html
56
MANN (Margi) & ROBISCHON (Rose), "HTML Standards - History and Future", Serials Librarian, XXXVI, 1999, 1/2, pp. 51-57
VAN DER STEEN (Gert Jan), "Naar de menselijke maat: het perspectief van uitwisselingstalen", http://www.sgml-ug.nl/HTML/frame_leerstoel/fr_leerstoel.htm VAN DER STEEN (Gert Jan), "Wat zijn SGML en XML?" , http://www.sgmlug.nl/HTML/frame_sgml-xml/wat_is_sgml.htm W3C, "Extensible Markup Language (XML) 1.0 (Second Edition)", http://www.w3.org/TR/2000/REC-xml-20001006 "Extensible Stylesheet Language (XSL)", http://www.w3.org/Style/XSL/ "Modularization of XHTML", http://www.w3.org/TR/2001/PR-xhtml-modularization20010222/ "W3C Semantic Web Activity Statement", http://www.w3.org/2001
"XML Base", http://www.3c.org/ "XML Fragment Interchange", http://www.w3.org/TR/1999/WD-xml-fragment19990303.html "XML Schema", http://www.w3.org/XML/Schema "XML-Signature Syntax and Processing - W3C Candidate Recommendation 31October-2000", http://www.w3.org/TR/xmldsig-core/ "XML-Signature WG", http://www.w3.org/Signature/ "XQuery: A Query Language for XML", http://www.w3.org/TR/xquery/ "XSL Transformations (XSLT) Version 1.0 - W3C Recommendation 16 November 1999", http://www.w3.org/TR/xslt WALSH (Norman), "Understanding XML Schemas", http://www.xml.com/lpt/a/1999/07/schemas/index.html WARWICK (Claire) & PRITCHARD (Elliott), "'hyped' text markup language. XML and the future of web markup", Aslib Proceedings, LII, 2000, 5, pp. 174-184.
-standaards
"XForms 1.0 - W3C Working Draft 16 February 2001", http://www.w3.org/TR/xforms/ "XForms Requirements - W3C Working Draft 21 August 2000", http://www.w3.org/TR/xhtml-forms-req
57
"XForms - the next generation of Web forms", http://www.w3.org/MarkUp/Forms/
Bijlage 1: stand van zaken W3C De hierna volgende situatie is die van begin mei 2001. Er bestaan vier verschillende niveaus binnen de W3C-specificaties34: Recommendations De specificaties zijn stabiel en worden ondersteund door de partners die deel uit maken van mei 2001
XML 1.0 Specification (2nd Edition)
okt.2000
XML Path Language (XPath) 1.0
nov.1999
XSL Transformations (XSLT) 1.0
nov.1999
RDF Model and Syntax Specification
feb. 1999
Proposed recommendations De specificaties die nog door W3C leden bestudeerd worden XHTML 1.1
apr.2001
XML-Signature Syntax and Processing
apr.2001
XML Base
dec.2000
XML Linking Language (XLink) 1.0
dec.2000
XSL 1.0
nov.2000
Scalable Vector Graphics (SVG) 1.0
nov.2000
RDF Schema Specification 1.0
mrt.1999
Working Drafts De specificaties kunnen aangepast of vervangen worden op ieder moment. Ze zijn dus niet stabiel.
34
XML Protocol Requirements
mrt.2001
XForms 1.0
feb.2001
XQuery
feb.2001
XML Query Requirements
feb.2001
XPath Requirements 2.0
feb.2001
XSLT Requirements 2.0
feb.2001
Binnen het W3C wordt een bepaald voorstel een Working Draft die dan overgeleverd wordt aan een "Director".
Wanneer hij het als een Proposed Recommendation verklaart, wordt het bezorgd aan alle lidorganisaties, die bij stemming de voortgang van de Recommendation bepalen. De idee kan dan een Official Recommendation worden, of opnieuw een Working Draft. Dit proces neemt dan ook een hele tijd in beslag.
-standaards
XML Schema
58
W3C
XML Query Data Model
feb.2001
XML Query Algebra
feb.2001
XML Pointer Language (XPointer) 1.0
jan.2001
XSL Transformations (XSLT) 1.1
dec.2000
XML-Signature Requirements
okt.1999
Notes Losse informatie, ideeën, voorstellen of commentaren van de W3C staf, lidorganisaties of het breed publiek XML-QL Specification XML-Data Specification Schema for Object-Oriented XML (SOX)Specification
Overgenomen van Stanford University Library (http://xmlmarc.stanford.edu/)
-
-
-
-
-
-
61 -standaards
-
v. :ill (part col.) ;26-28 cm. - <note type="General"> <note-a>Founded and for many years edited by Sir J.N. Lockyer. - <note type="Supplement"> <note-a>Supplements accompany many numbers. - <note type="Local"> <note-a>Access to Ovid version restricted to Stanford community. Has spinoff: Nature genetics.Vol. 229-246, Jan. 1971-Dec. 1973, issued in three parts. Genome directory http://lml.stanford.edu/cgibin/ovid?300006056SerialPeriodicalComputer FileInternet ResourceFulltextScienceLockyer,Norman,Sir,1836-1920.Ovid Technologies. - naturePERCOPY2Check shelf.
Bijlage 3: MS Office 2000 Voorbeeld van de conversie van een bestand naar HTML binnen MS Word 2000 met de invoeging van "XML-eilanden":
-standaards
<meta http-equiv=Content-Type content="text/html; charset=windows-1252"> <meta name=ProgId content=Word.Document> <meta name=Generator content="Microsoft Word 9"> <meta name=Originator content="Microsoft Word 9"> Dit is een test <style>
62
<span lang=NL style='mso-ansi-language:NL'>Dit is een test.
-standaards
63
64 -standaards
II. XML Experiment
1| Opzet Het Belgisch Historisch Instituut te Rome geeft sinds 1919 een Bulletin uit waarin wetenschappelijke artikels worden gepubliceerd over (Belgisch) onderzoek met betrekking tot Italiaanse, kerkelijke en pauselijke geschiedenis. Zowel de Oudheid, de Middeleeuwen, de moderne en hedendaagse geschiedenis komen erin aan bod35. In de loop van 2001 werd er in het databankprogramma Microsoft Access 2000 een databank aangelegd met de volledige bibliografie van deze jaarlijkse Bulletins voor de periode 1919-2000 ofwel een totaal van meer dan
-standaards
65
650 verschillende artikels36.
Deze databank werd vervolgens geconverteerd naar een comma-delimited formaat en dan -
35
Over de geschiedenis van het Bulletin van het Belgisch Historisch Instituut raadplege men A. VUIJLSTEKE, "Bibli-
ografie Bulletin Belgisch Historisch Instituut te Rome 1919-2000", Bulletin van het Belgisch Historisch Instituut te Rome, LXXI, 2001 (eveneens digitaal te consulteren op http://www.academiabelgica.it/). 36
De bibliografie is volledig consulteerbaar op http://www.academiabelgica.it/
na diverse bewerkingen- gepresenteerd in: ♦ een groep van HTML-bestanden voor de presentatie op de website van de Academia Belgica ♦ een aantal Wordbestanden voor de uiteindelijke publicatie als artikel in een aflevering van het Bulletin zelf De bibliografie zelf bestaat uit twee presentaties van dezelfde data: ♦ een lijst van alle artikels alfabetisch gerangschikt op auteur ♦ een lijst van alle artikels geclassificeerd binnen een aantal onderwerpscategorieën, zoals in volgend voorbeeld:
Zowel in het MS Wordbestand als in de HTML-bestanden is deze laatste lijst "dynamisch":
binnen de inhoudstafel kan men klikken op elk van de classificatienummers (bvb. "6.3 Architectuur") en wordt men automatisch naar die sectie verwezen. Hoewel het natuurlijk om een relatief kleine verzameling van gegevens gaat, hebben zowel het MS Wordbestand als de HTML-versie gebreken als informatiedrager: ♦ Beide formaten bevatten opmaakelementen voor de presentatie van de eigenlijke informatie, waardoor de datalaag en de presentatielaag niet van elkaar kunnen gescheiden worden. ♦ Ondanks zijn quasi "universaliteit", kent MS Word alle nadelen eigen aan een "proprietary format" (zoals aangetoond in het theoretisch gedeelte); niemand kan voorspellen of een MS Wordbestand binnen twintig jaar nog leesbaar zal zijn. Voor platte tekst zoals HTML of XML is dat niet het geval. Met een XML-gemarkeerde versie van dezelfde gegevens en de toepassing van XSL, bereikt men daarentegen wel een optimale scheiding van inhoud en opmaak/presentatie. De voor♦ Door het gebruik van verschillende XSL-stijlbladen is het mogelijk om de data op verschillende manieren te presenteren, zonder dat de onderliggende laag (de data) daarvoor ook maar één keer hoeft gewijzigd te worden. ♦ De XML-data zijn "futureproof", want ze bestaan enkel uit platte tekst en niet uit binaire data. ♦ De XML-data moeten niet meer aangepast worden ten behoeve van presentatie, aangezien deze gescheiden op op de XML-data wordt toegepast.
2| XMLXML-conversie & DTD De volledige data van het HTML-bestand met de volledige bibliografie werden eerst omgezet naar één groot XML-gemarkeerd bestand. De conversie-operaties (via complex "zoeken en vervangen" en de omzetting van alle vreemde karakters naar UNICODE) en het testen van de werking van XSL/XML werden uitgevoerd met het programma XMLWriter 1.21. Dat is een populaire XML Editor die ook goed met XSL kan omspringen en waarin het uit-
-standaards
67
delen hiervan zijn duidelijk:
eraard mogelijk is om DTD's en XML Schema's te gebruiken alsook XML naar HTML te converteren via het gebruik van XSL- en CSS-stijlbladen. Eerst werd nagedacht over de structuur van de XML-data en hiërarchische indeling van de informatie: het element (Belgisch Historisch Instituut te Rome) groepeert een verzameling van artikels die telkens onder een auteur gegroepeerd zijn. Een dergelijke verzameling wordt door het element aangeduid en elk krijgt een classificatienummer. Onder bulletin valt dan een of meer auteurs en een of meer items. Elk bestaat uit zijn beurt uit een met taalidentificatie en -aanduiding. Binnen
De doctype-declaratie geeft aan welke DTD is gebruikt bij het maken van het document en welke elementen en attributen het systeem dus kan verwachten37. Deze structuur werd vastgelegd in de volgende DTD:
Elke declaratie begint met een ELEMENT-sleutelwoord dat aanduidt dat het een bepaald
37
Ook HTML-documenten beginnen met een DOCTYPE declaratie (bvb.. Geen van de bekende webbrowsers heeft er problemen mee als de DOCTYPE declaratie ontbreekt. Elementen en attributen die de browser niet kent, worden dan eenvoudig genegeerd. Dit kan uiteraard niet bij XML.
-standaards
Milis, LudoDispute and settlement in medieval cenobitical rulesBull. 60, 1990<paginering>pp.43-64Travellers of the southern Low CountriesBull. 61, 1991<paginering>pp. 7-36
68
ing> wordt dan nog eens de <paginering>-aangeduid.
element declareert. Elke declaratie bestaat uit een naam of een groep namen en een content model, dat altijd tussen haakjes geplaatst wordt. Het kan ofwel andere elementen bevatten ofwel eender welk karakter. Ook de attributen van de elementen worden erin gedeclareerd en hebben een eigen benaming38. Een indicator bepaalt de voorkomens van ieder element: ? (komt één keer voor, of helemaal niet), * (komt één of meerdere keren voor, of helemaal niet), + (komt één of meerdere keren voor), [niets] (komt exact één keer voor). De waarden die in ieder element worden bewaard kunnen van drie verschillende types zijn: ♦ PCDATA (Parsed Character Data), voor het bewaren van gemarkeerde platte tekst. ♦ CDATA (Character Data), voor het bewaren van gemarkeerde tekst waarbij geen rekening wordt gehouden met de markering. Dit kan zeer handig zijn om scripts in te noteren. ♦ PI (Processing instruction), zoals dat aan het begin van een XML-
Nog twee opmerkingen over de gebruikte DTD: 1. Het attribuut "xml:lang" in XML is overgenomen uit HTML 4.0 en is in overeenstemming met RFC 1766 waarmee tweeletterige taalcodes worden gespecifieerd. In de prolog van de XML-documenten zelf werd dan een verwijzing naar de namespace xml:lang aangebracht. Het attribuut "xml:lang" is facultatief (implied), in tegenstelling tot required (er moet een waarde zijn) of fixed (de waarde is op voorhand vastgelegd in de DTD). De notatie "NMTOKEN" beperkt de waarde van het attribuut tot een willekeurige geldige XMLnaam (i.e. de officiële taalaanduidingen). 2. In het geval van het element werd een gemengde inhoud bepaald () aangezien dit element zowel tekst als een onderliggend element bevat.
3| CSSCSS-stijlblad + XMLXML-documenten documenten Het is perfect mogelijk om op een XML-document een vrij complexe CSS (Cascading Style Sheet) toe te passen, zoals dat met HTML pagina's meer en meer wordt gedaan. Daardoor
38
Men kan zich hierbij de vraag stellen wanneer men data als een element dan wel als een attribuut bewaart. Het
algemene principe is dat metadata (bijvoorbeeld de taal waarin een bepaald artikel is geschreven) als attributen worden bewaard en de eigenlijke informatie als element.
-standaards
69
document aan de parser vertelt welke versie van XML het document bevat.
wordt er aan de onderliggende XML-data niet geraakt en wordt alle opmaak via dat CSSstijlblad geregeld. De mogelijkheden van CSS zijn echter exclusief op presentatie gericht, niet op transformatie. Dat laatste is precies de kracht van toepassing van XSL op XML. Met CSS alleen kan men de XML-data enkel op een bepaalde manier presenteren en bijvoorbeeld niet elementen sorteren of een filter toepassen. Het volgende CSS-stijlblad bijvoorbeeld, maakt de elementen "auteur" en "item" op volgens de aangegeven stijlkenmerken.
4| XSL+XMLXSL+XML- documenten Er werd vertrokken vanuit de bestaande XML-documenten om die aan de hand van een XSLTopmaakstijl telkens te transformeren in een normaal HTML-document, dat dan moest dienen voor de presentatie in een webbrowser. De opmaakstijl vervangt of wijzigt geen elementen in de brondata, maar maakt een nieuw bestand waarin de resultaten van de transformatie worden opgeslagen. Voor de gebruiker is er niets aan de hand: het is alsof hij een doordeweeks HTML-bestand bekijkt. Wanneer hij echter naar de broncode kijkt, zal hij vaststellen dat er geen spoor is van de minste opmaakinformatie.
Het basis XSL-stijlblad voor de auteurslijst, alfabetisch gerangschikt werd als volgt opgesteld:
<xsl:for-each select="item">
<xsl:value-of/>
tie voor het verklaren van de XSL namespace. Die XSL namespace is de URI "http://www.w3.org/TR/WD-xsl". Een XSL-document is zelf een XML-document waarbij de markeringen beginnen met "xsl:" om aan te tonen dat ze tot de XSL namespace behoren. Zo geeft <xsl:template> aan dat het element "template" wordt gedefinieerd door de XSLspecificatie. Op die manier worden conflicten in de markeringen vermeden, omdat voor iedere markering wordt aangegeven uit welke externe DTD zij afkomstig is. Deze sjablonen (templates) zijn instructies die bepalen hoe een element en de inhoud geconverteerd moeten worden. Een sjabloon bepaalt welk element moet gewijzigd worden en geeft aan hoe dit dient te gebeuren. Het sjabloon richt zich op een enkel element uit het brondocument hetgeen wordt aangegeven via het attribuut "match:", de waarde hiervan is een patroon. Het sjabloon wordt dan toegepast op alle elementen die met dit patroon overeenkomen. De syntaxis voor het specificeren van deze patronen is XPath. <xsl:for-each> lokaliseert een set van elementen in de XML data en herhaalt dan die actie voor ieder element. Het "select"-attribuut beschrijft hoe een set van elementen kan teruggevonden worden in het brondocument (dat gebeurt via de XSL Pattern-syntax). Dit werkt zoals navigeren in een bestandshiërarchie, waarbij een slash (/) subdirectories kiest die onder de huidige directory liggen. <xsl:value-of> selecteert dan een specifiek element en voegt de tekstinhoud van dat element in het sjabloon in. XSL werkt dus recursief: beginnend bij het wortelknooppunt wordt elk knooppunt onderzocht om na te gaan of er een sjabloonregel moet worden toegepast. Indien dat zo is, wordt de regel toegepast waarna ook de kinderen van dit knooppunt worden onderzocht.
-standaards
Het <xsl:stylesheet>-element verklaart dat het document een stijlblad is en voorziet een loka-
72
Enkele opmerkingen over dit stijlblad:
Naast de algemene presentatie (die daarvoor ook al met de combinatie van XML met XSL was verwezenlijkt), werden de XML-data gecombineerd met diverse XSL-stijlbladen met de bedoeling de vastgelegde informatie te extraheren en op een aantal verschillende manieren te presenteren: ♦ Sorteer alle item-elementen in dalende alfabetische volgorde op het onderliggende "titel"element en presenteer die dan als volgt.. ♦ Zoek enkel de artikels waarvan het -element de waarde x heeft en presenteer die als volgt... ♦ Wanneer het element aan voorwaarde x voldoet, presenteer het element dan als volgt, presenteer anders... ♦ Selecteer en presenteer enkel deze -elementen waarvan de titel in het Engels is. De DTD, de XML-hoofdbestanden en alle experimenten met de XSL-stijlbladen zijn beschikbaar op de volgende URL: http://www.uia.ac.be/u/s970765/xml/index.html. De XML-
4.1 Sortering Er is een stijlblad gemaakt om automatisch alle titels alfabetisch te rangschikken, door in het XSL-bestand de volgende aanpassing aan te brengen (het (+) of (-) attribuut staat voor oplopend of aflopend sorteren): <xsl:for-each select="item" order-by="+ titel">
Dit geeft inderdaad het gewenste resultaat:
4.2 Filtering Stel dat ik enkel die artikels die door Charles Verlinden zijn geschreven wil terugvinden. In het stijlblad schrijven we dan: <xsl:for-each select="bhir/bulletin[auteur='Verlinden, Charles']">
Het is ook mogelijk om te filteren op de waarde van een attribuut. Alle titels van de artikelbeschrijvingen hebben een automatisch door MS Word 2000 gegenereerde taalaanduiding die door ons vervangen werd door de standaard xml:lang namespace, zoals in:
-standaards
browser.
73
bestanden kunnen rechtstreeks bekeken worden met bvb. Internet Explorer 5.0 als web-
Aymard, MauriceDe la traite aux chiournes: la fin de l'esclavage dans la Sicile moderne Bull. 44, 1974<paginering>pp.1-22
Indien we enkel deze titels met de taalaanduiding "Engels" willen selecteren, schrijven we: <xsl:apply-templates select="bhir/bulletin[item/titel/@xml:lang= 'en']"/>
website> Volgende filteroperatoren zijn mogelijk: = (gelijk aan), =! (niet gelijk aan), <& (kleiner dan),
4.3 Voorwaardelijke operator In volgend voorbeeld wordt indien het -element de waarde "Art, Jan" heeft het auteur-element tegen een anderskleurige achtergrond gepresenteerd dan al de andere -elementen. <xsl:choose> <xsl:when match=".[auteur='Art, Jan']">