When Mr. Bilbo Baggings of Bad End...
When Mr. Bilbo Baggings of Bad End...
J.R.R. Tolkien
When Mr. Bilbo Baggings of Bad End... When Mr. Bilbo Baggings of Bad End... When Mr. Bilbo Baggings of Bad End... When Mr. Bilbo Baggings of Bad End...
8
en dan in XML: Overzicht 6: Tolkien in XML.
In het HTML-deel zijn de voorgedefinieerde (Engelse) labels gebruikt en moeten labelgebruik en document zich voegen naar de beschikbaarheid van deze voorgedefinieerde (Engelse) labels. Met XML worden de (Nederlandse) labels gemaakt naar (Nederlandse) behoefte. Daarom kent het XML-document de begrippen auteur en hoofdstuk en bestaan die niet in de HTML-versie van het document.
Document Type Definition Zoals we hebben gezien, kent XML instrumenten om deze structuur formeel te beschrijven, de Document Type Declaration (DTD). De gebruikte syntax is specifiek voor een DTD maar is niet te moeilijk te begrijpen. De structuur van het boek uit overzicht 6 is als “boom” weergegeven in figuur 5. Deze “boom” visualiseert dat het boek enige informatie en hoofdstukken bevat. Deze informatie bestaat uit: titel en auteur, etc. DTD-syntax van deze “boom” in overzicht 7 weergegeven. Overzicht 7: Document Type Definition van een boek.
9
Figuur 5: De structuur van het boek
Ieder element is gedefinieerd door middel van een element-declaratie. Deze declaratie kent de naam van het element toe aan het elementmodel. Het model van een element bestaat uit het overzicht van de (andere) elementen waaruit het een element kan/moet zijn samengesteld. Het is mogelijk het gebruik van een of meer elementen als optioneel aan te merken of te doen herhalen. Het is ook mogelijk aan te geven en dus af te dwingen in welke volgorde elementen kunnen of moeten worden gebruikt. Connectoren, gebeurtenis (occurence) indicatoren en groeperingstekens bieden daatoe de formele hulpmiddelen.
Connectoren:
, beide elementen in de volgorde als weergegeven
¦ de één of de andere, niet beide
Gebeurtenis indicatoren:
? één keer of niet
* nul of meer
+ meer dan eens
Groeperingstekens:
( ) samen
Het gebruik van een DTD is optioneel. Daarom bestaan er twee klassen van XMLdocumenten:
well-formed (goed gevormde) dat wil zeggen: syntactisch correcte documenten;
valid (geldige), syntactisch correcte documenten die bovendien voldoen aan een in een DTD gedefinieerde structuur.
Een DTD wordt aan een geldig document gerelateerd door middel van een document type declaratie. Verwar die niet met een Document Type Definition.
10
In wezen is deze declaratie een URL, of - anders geformuleerd - de verwijzing naar een DTD- bestand. Overzicht 7: Toevoeging van een document type declaratie
Een DTD vergemakkelijkt het schrijven van nieuwe documenten omdat door gebruik ervan wordt afgedwongen dat alle documenten voldoen aan dezelfde in de DTD beschreven (structuur)regels. Dit is vooral handig als een grote hoeveelheid documenten worden gecreëerd en deze documenten naar inhoud en structuur moeten voldoen aan formeel in DTD’s vastgelegde vereisten.
XML Namespaces Ook biedt XML het namespace-machanisme. De namespace identificeert eenduidig de eigenaar van een document. Dit maakt het mogelijk om een onderscheid aan te brengen in een verschillend gebruik van hetzelfde element. Bij voorbeeld: een element titel kan worden gedefinieerd als de titel van een boek (The Lord of the Ring) of als titel van een mens. (“Sir”) Het gebruik van namespaces bevordert dus zowel hergebruik als uitbreidbaarheid. Het is daarom verantwoord het titel-element her te gebruiken omdat eenvoudig en eenduidig bepaald is welke rollen hetzelfde element in verschillende documenten speelt. Het namespace-mechanisme functioneert door het toekennen van prefixen aan elementen. Deze prefixen worden toegekend aan een, de element-eigenaar identificerende, URL. In overzicht 8 is als voorbeeld een nieuw kernwoord-element toegevoegd aan het document. Het element is een bijzondere namespace en daarom is verwarring uitgesloten.
11
Overzicht 8: Toepassing van namespace
XML gebruiken Het gebruik van XML richt zich op structuur. Dat is ook verstandig omdat structuur een van de meer duurzame kwaliteiten is van een document. De structuur overleeft de tijd ook al vindt een herdruk plaats in een fraaiere uitvoering. Structuur maakt het mogelijk informatie te organiseren en met behulp van een computer te bewerken. Zoals geïllustreerd in figuur 6, is het met XML mogelijk allerlei toepassingen af te leiden van één XML-document.
Figuur 6: Verschillende toepassingen afgeleid van één XML-document.
Maar, de XML syntax alléén is niet voldoende. We hebben “iets” nodig als schakel tussen het XML-document en de verschillende toepassingen. Ter ondersteuning hiervan heeft het W3C een breed scala van zogenoemde begeleidende standaarden ontwikkeld (companion standards). Deze standaarden zijn complementair aan de XML-standaard en voorzien in bijzondere, aan het toepassen XML gerelateerde, behoeften. 12
De belangrijkste begeleidende standaarden maken deel uit van figuur 7.
Definiëren DTD
Schema
XSL Tonen en Transformeren
DOM XML
Manipuleren
CSS
XQL
XLink
RDF
Relateren
Figuur 7: XML en begeleidende standaarden.
Document Object Model Aan de XML –parser gerelateere begeleidende standaarden komen als eerste aan de orde. Maar: wat is een parser? Een parser is een software component (bibliotheek) en:
leest een bestand;
controleert de syntax ervan op juistheid;
past vervangingsregels erop toe;
draagt elementen ervan over aan een toepassing;
vereenvoudigt het werk van programmeurs;
stelt het document aan het computergeheugen beschikbaar.
Met andere woorden, de parser is software waardoor de correctheid van de XMLsyntax wordt bewaakt. Programmeurs kunnen daardoor toepassingen voor manipulatie van XML-documenten c.q. XML-structuren schrijven, gebaseerd op de zekerheid dat een XML-syntax daarvoor beschikbaar én correct is. Het moge duidelijk zijn dat parsers belangrijke functies vervullen. Parser maken deel uit van iedere XMLtoepassing.
13
Er bestaan twee typen XML-parsers. Zij verschillen in de wijze waarop de communicatie met een toepassing plaatsvindt. Object-gebaseerde parsers maken in het geheugen objecten aan voor ieder element van een document. Figuur 8 illustreert dit. De parser creëert een met de documentstructuur overeenkomende boomstructuur in het (computer)geheugen.
element
element
element
element
element
element
Figuur 8: Creatie van een met de documentstructuur overeenkomende verzameling objecten.
Object-gebaseerde XML-parsers volgen meestal de DOM standaard. DOM staat voor Document Object Model en is een eenvoudige standaard hiërarchie van objecten waarvan een parser gebruik kan maken. Met andere woorden: DOM “zegt” dat Element, XML-elementen moet representeren. DOM werd ontwikkeld door het W3C. De andere klasse van parsers is event-based (gebeurtenis -gebaseerd) Door deze parsers “vloeit” een document als het ware heen. Als de parser iets bijzonders waarneemt, bij voorbeeld een beginlabel, dan genereert de parser een bericht om de toepassing daarvan in kennis te stellen. De gebeurtenissen zijn vergelijkbaar met die binnen grafische toepassingen (zoals Windows). Dán zijn de gebeurtenissen echter gerelateerd aan gebruikersactiviteiten (bij voorbeeld: een muisklik) terwijl de door de parser gegenereerde gebeurtenissen hun oorsprong kennen in het XML-document (document begin, element begin, etc). Dit proces is gerepresenteerd in figuur 9.
Figuur 9: De parser genereert gebeurtenissen als het document er door heen vloeit .
Voor dit type parser bestaat de standaard SAX (Simple Application Programming Interface voor XML). SAX werd ontwikkeld door een groep XML-ontwikkelaars. De standaard is zeer populair in Java-toepassingen.
XML Editor Voor het bewerken van XML-documenten bestaan twee mogelijkheden. De eerste bestaat uit het gebruik van een specifieke XML/SGML-editor. Deze editors lijken op 14
bekende tekstverwerkers maar het bestandformaat is niet een “eigen” formaat als dat van Word of WP maar het open XML-formaat. Het gebruik van deze specifieke editors geniet de voorkeur indien grote hoeveelheden XML-documenten moeten worden geproduceerd en onderhouden. Deze editors voorzien namelijk in het toepassen van in DTD’s vastgelegde regels en documentstructuren. Dit type editor is echter veelal onbekend. Het gebruik ervan moet daarom worden geleerd. Figuur 10 bestaat uit een schermafbeelding van een SGML/XML-editor, Adept 8.0.
Figuur 10: Een schermafbeelding van een SGM/XML-Editor, Adept 8.0
De tweede mogelijkheid is het gebruik van een normale tekstverwerker om vervolgens het document te converteren naar XML. Het belangrijkste voordeel is dat gebruik kan worden gemaakt van een wijd verbreid en populair instrument. Tekstverwerkers vangen echter niet alle (syntax- en structuur)fouten van documenten af die XMLeditors juist wel afvangen. Dit is vooral vervelend indien conversies niet goed verlopen en het document door de tekstbewerker aan de auteur voor correctie wordt teruggegeven.
Bekijken en afdrukken Om een XML-document te kunnen bekijken en af te drukken moet het document worden geconverteerd naar een geschikt formaat. Voor het op het scherm (on line) bekijken wordt HTML veelal als conversiedoel gekozen. Voor het afdrukken op papier vindt conversie naar Postscript plaats. Postscript is de standaard taal voor het beschrijven van hoe (voorzien van welke opmaakkenmerken) een pagina moet worden afgedrukt door een printer. Zoals alles binnen XML zijn ook deze conversies gebaseerd op de documentstructuur. Deze conversies zijn echter “destructieve” operaties in die zin dat alle structuurinformatie er door uit een document wordt verwijderd. Terwijl het originele XML-document structuurinformatie bevat over titels, kernwoorden etc., biedt het resulterende Postscript-document informatie over opmaakkenmerken en formaat. (vet en A4)
15
Het is niet eenvoudig de “omgekeerde" weg te bewandelen, dus vanuit het Postscriptdocument een zeer gestructureerd XML te genereren. Het is immers bijna ondoenlijk om processor-gestuurd een onderscheid te maken tussen enerzijds vetgedrukte titels en anderzijds woordaccentueringen door gebruik van de vette variant van een lettertype. Het is om deze reden dat wordt gezegd dat conversies destructief zijn, zie figuur 11.
<
> <
> <
>
<
>
<
>
<
> <
>
<
>
<
>
<
>
Figuur 11: Converteren van structuur naar afdruk.
Er zijn twee standaarden om XML on line te bekijken:
Cascading Style Sheets (CSS) werden ontworpen voor gebruik in combinatie met HTML maar werken evenzo goed in combinatie met XML. CSS kent aan ieder label een presentatie-instructie toe.
XML Stylesheet Language (XSL) is een krachtiger style sheet taal, speciaal ontwikkeld voor gebruik in combinatie met XML. XSL is een dubbele standaard: 1. XSLFO biedt dezelfde instructiemogelijkheden voor presentatie als CSS. Tot nu toe is XSLFO niet populair gebleken. De meeste ontwikkelaars geven vooralsnog de voorkeur aan CSS. 2. XSLT (XSL transformation) ondersteunt de transformatie van een XMLdocument. Daardoor is het bijvoorbeeld mogelijk een XML-document volledig te transformeren naar HTML of slechts een onderdeel daarvan, bij voorbeeld de inhoudsopgave.
16
Figure 12 biedt een samenvatting van de drie mogelijkheden om XML-documenten zichtbaar te maken, namelijk door gebruik van: 1. Cascading Style Sheets; 2. transformatie en Cascading Style Sheets. 3. XSLFO.
HTML CSS
XML XML
XSLFO XSLT
Figuur 12: Mogelijkheden om XML te presenteren op het scherm.
XML en Intranet Er bestaan vele definities van een intranet. In de context van dit rapport gebruiken we de volgende: een intranet is een intern netwerk gebaseerd op internettechnologie. XML is zeer geschikt voor intranetgebruik omdat het is ontworpen als internettechnologie. XML is in het bijzonder geschikt voor gebruik binnen dynamische websites, dit zijn websites waarin een documenten dynamisch worden gegenereerd door het bevragen van een database. In figuur 13 is de mate van interactiviteit aangegeven van verschillende Internettechnologieën. In de oorsprong van het assenstelstel bevindt zich HTML, een zeer statische oplossing. HTML-pagina’s veranderen namelijk nooit gedurende de levensduur van een toepassing. De enige interactiviteit ontstaat door het gebruik van hyperlinks. Dit is een zeer beperkte vorm van interactiviteit.
17
CGI, ASP Java, XML
server
CORBA
Java Script HTML
Plugin
client Figuur 13: Toevoegen van interactiviteit aan het internet.
Linksboven bevinden zich CGI , ASP en andere server-zijde technologieën. Deze technologieën maken het genereren dynamisch webcontent uit databases mogelijk. Daardoor neemt de interactiviteit toe omdat de gebruiker, afgestemd op zijn behoefte, informatie kan (op)vragen. Dit illustreert figuur 14. De webserver maakt een specifieke webpagina aan als antwoord op een verzoek van de gebruiker. De logica om de pagina samenstellen is aan de server-zijde ondergebracht.
Internet
Figuur 14: Server-zijde technologieën
Rechtsonder zien we de plugins en Javascript. Dit zijn client-zijde technologieën. Deze voegen interactiviteit toe aan de browser door het downloaden van code of logica. De browser kan daardoor “zelf” een pagina wijzigen als antwoord op een verzoek van de gebruiker. Dit illustreert figuur 15. De logica om de pagina aan te passen is ondergebracht aan de client-zijde. Rechtsboven bevinden zich Java en XML , technologieën die op client- en serverzijde hun toepassing vinden. Het zijn complementaire technologieën. Java is een programmeertaal en wordt gebruikt voor software-ontwikkeling voor zowel de serveromgeving (servlets, Enterprise JavaBeans) als clientomgeving (applets).
18
Internet
Figuur 15: Client-zijde technologieën
XML wordt gebruikt om grote hoeveelheden documenten te maken en te beheren. Dankzij de vele begeleidende standaarden is het mogelijk gebruikers veel interactiviteit te bieden, ondersteunt door servers en/of browsers. Bij voorbeeld, door gebruik te maken van XSL is het mogelijk precies die informatie dynamisch te transformeren en te tonen (tot op het niveau van alinea’s en zinnen) die een gebruiker op enig moment binnen de context van gebruiksprofiel of schermactiviteit nodig heeft. De gebruiker kan ook via de browser een XML-document actualiseren door de wijziging te sturen naar de server/database. Deze actualisering is desgewenst onmiddellijk beschikbaar voor de gehele organisatie. XML in combinatie met intranet voorziet in:
onderhoud en beheer van grote documentverzamelingen:
effectieve, op maat gesneden documentdistributie;
efficiënte documentbewerkingen;
zeer dynamische documenten;
informatiebehoeften op maat van de gebruiker.
XML voorziet in:
automatische multimediale uitlevering van informatie; op papier, CD-ROM, DVD of op het scherm van draagbare telefoons.
19
Samenvatting XML/SGML verschaffen document management dezelfde instrumenten als traditioneel worden gebruikt voor onderhoud en beheer van gestructureerde informatie, namelijk: een formeel schema voor de informatiestructuur. Niemand zou een bedrijfskritische financiële applicatie gebruiken zonder goede ondersteuning van databases. Niemand zou bedrijfskritische documentatieprojecten moeten uitvoeren zonder document management systeem dat hetzelfde (hoge) niveau van ondersteuning biedt als gebruikelijk voor bedrijfskritische financiële applicaties.
20
Bijlage: figuren en overzichten Figuur 1: Gestructureerde versus ongestructureerde informatie.......................................................................... 3 Figuur 2: Gestructureerde informatie.................................................................................................................... 4 Figuur 3: Ieder document heeft een structuur. ..................................................................................................... 5 Figuur 4: Van documentstructuur naar het elektronische equivalent. ................................................................. 7 Overzicht 1: Twee XML-elementen. ..................................................................................................................... 7 Overzicht 2: Een uitgewerkt XML-document ........................................................................................................ 7 Overzicht 3: Unicode verbijzonderen.................................................................................................................... 8 Overzicht 4: Lege elementen kennen een bijzondere syntax............................................................................... 8 Overzicht 5: Tolkien in HTML. .............................................................................................................................. 8 Overzicht 6: Tolkien in XML.................................................................................................................................. 9 Overzicht 7: Document Type Definition van een boek. ....................................................................................... 9 Figuur 5: De structuur van het boek ................................................................................................................... 10 Overzicht 7: Toevoeging van een document type declaratie ............................................................................. 11 Overzicht 8: Toepassing van namespace .......................................................................................................... 12 Figuur 6: Verschillende toepassingen afgeleid van één XML-document. .......................................................... 12 Figuur 7: XML en begeleidende standaarden. ................................................................................................... 13 Figuur 8: Creatie van een met de documentstructuur overeenkomende verzameling objecten....................... 14 Figuur 9: De parser genereert gebeurtenissen als het document er door heen vloeit . ..................................... 14 Figuur 10: Een schermafbeelding van een SGM/XML-Editor, Adept 8.0........................................................... 15 Figuur 11: Converteren van structuur naar afdruk. ............................................................................................ 16 Figuur 12: Mogelijkheden om XML te presenteren op het scherm..................................................................... 17 Figuur 13: Toevoegen van interactiviteit aan het internet. ................................................................................. 18 Figuur 14: Server-zijde technologieën................................................................................................................ 18 Figuur 15: Client-zijde technologieën ................................................................................................................. 19
21