HTML, XML en SGML: Markup Languages voor Gegevensuitwisseling

SGML maakt het mogelijk om informatie inclusief de structuur die het inhoudt over Internet en intranetten te sturen. Markup is een term afkomstig uit de uitgeversindustrie, waarmee wordt bedoeld dat inhoud (bijvoorbeeld een tekst) van verklarende stijlinformatie wordt voorzien zoals titel, auteur, hoofdstuk- en paragraafkopjes. In SGML wordt deze markup of notering in de vorm van tags weergegeven, herkenbare labels voor en na het stuk markup-tekst. SGML bevat echter niet alleen de inhoud en de markup, het bevat tevens de beschrijving van de markup in de vorm van de Document Type Definition (DTD).
Voorbeeld van een stukje DTD.
Diverse verschillende documenten, uitgevers en toepassingen vergen evenzoveel verschillende soorten markup. Doordat SGML een standaard vormt voor de structuur voor de inhoud van DTD's, is de markup-taal sterk gegeneraliseerd kunnen worden: DTD's mogen sterk in inhoud variëren, door de gelijke structuur werken ze allemaal hetzelfde, waardoor de snelle implementatie van systemen een effectieve verwerking van SGML-documenten mogelijk maakt.
Door de uitgebreide eisen van de gebruikers zijn DTD's in de praktijk na verloop van tijd steeds complexer geworden. De relatief kleine specialistische markt voor SGML systemen heeft daarbij nog niet de slimme software voortgebracht, waarmee SGML documenten automatisch met verschillende DTD's gelezen kunnen worden.
HTML
HTML (HyperText Markup Language) is een DTD van SGML. Het is zeer beperkt in het gebruik en georiënteerd op het tonen van tekst en illustraties en het verschaffen van hypertekst navigatie- functionaliteit op het Internet World Wide Web. Om precies te zijn is elke versie van HTML een nieuwe DTD. Door de creatie van deze beperkte subset van SGML is de implementatie in uniforme lees-software wereldwijd mogelijk geworden in de vorm van de browser software.
Het World Wide Web is gebouwd rondom dit relatief primitieve, open, zich snel ontwikkelende en publiek toegankelijke fundament, bestaande uit HTML, HTML browsers en HTTP servers. De concurrentie tussen leveranciers van browsersoftware, het gebrek aan mogelijkheden van HTML, de openheid van browsersoftware-broncode (met name Mosaic) waarop superieure versies gebouwd kon worden, resulteerde in de standardisatie van HTML door het World Wide Web Consortium (W3C).
Commerciële leveranciers conformeerden hun browsersoftware aan deze standaard, maar voegden extra functionaliteit toe waardoor HTML door de browsers verschillend werden geïnterpreteerd. Als gevolg hiervan is het noodgedwongen een goed gebruik geworden om de de gebruikte DTD-versie in de HTML-bestanden te benoemen, zodat de browser weet welke interpretatie juist is. HTML 3.2 eist een dusdanige benoeming. Echter, browsers zullen enkel die DTD's kunnen lezen die ze kennen en dus niet uitbreidbaar zijn met onbekende DTD's.
Databasegeoriënteerde navigatie
Voor 1995 waren hypertextlinks de enige manier om over het WWW te navigeren, hetgeen voor onderzoeksinstellingen en universiteiten voldoende was. Het jaar dat de zoekmachine AltaVista gelanceerd werd veranderde de kijk op WWW-navigatie meer richting databaseoriëntatie. Altavista levert een doorzoekbare index die bijna automatisch wordt gevoed met informatie uit zogenaamde meta-tags, onzichtbare indexeringsinformatie bovenin HTML- bestanden. Netscape introduceerde deze functionaliteit die later werd gestandaardiseerd in HTML 2.0. Later werden de primitieve CGI-programma's, waarmee electronische formulieren met eenvoudige tekstbestanden werden gekoppeld, vervangen door Java applets. Deze applets werden van de server naar de gebruiker "gestuurd" en maakten meer complexe database-koppelingen mogelijk. Tegen deze achtergrond onstond de vraag naar flexibel uitbreidbare uitwisselingsmogelijkheden van gestructureerde informatie tussen clients en servers. Het antwoord hierop is XML(Extended Markup Language).
XML
In 1996 ontwikkelde de XML werkgroep van het W3C Extended Markup Language, een toepassingprofiel en subset van SGML.
XML is niet alleen een DTD maar ook een generieke vereenvoudigde versie van SGML. Auteurs en uitgevers mogen hun eigen stijl definiëren in hun eigen DTD, zolang het maar conform de standaardafspraken is en de uniforme lees-software er dus raad mee weet. De specificaties van XML-leessoftware (ook wel parsers genoemd) behelzen de regels over het valideren van data in documenten op basis van de structuur zoals die in de bijbehorende DTD is beschreven. Hiermee kunnen data-fouten worden gesignaleerd voordat ze schade kunnen aanrichten in programmatuur die de data dient te verwerken.
Deze eigenschappen maken complexe data-uitwisseling mogelijk tussen client en server; de dataverwerking aan de client-kant ontlast de servers en het netwerk op significante wijze, waarbij er tevens een grotere beheersbaarheid ontstaat over de wijze waarop de gegevens worden bekeken en/of door de bijgeleverde functionaliteit gemanipuleerd. Er wordt wel gezegd dat XML Java iets om handen geeft. XML vervangt HTML niet, maar is complementair en geeft de browser uitbreidbare functionaliteit. XML-data kan verschijnen als een extra pakketje binnen het HTML-bestand, maar ook zelfstandig naar de browser worden verstuurd.
Voorbeeld van XML-code.
Toepassingen
XML gecombineerd met Java applets zou kunnen worden toegepast ten behoeve van de toegang tot databanken met volledige functionele interfaces. XML functioneert als middleware en breidt het client/server zodanig uit dat elke denkbare databank gekoppeld kan worden met een HTTP server, en de browser als thin client (zie ook Cold Fusion en WDDX).
Enkele voorbeelden:
De online trainingsoplossing SWIFT:
SWIFT is een op SGML gebaseerde ontwikkelmethodiek waarmee auteurs cursusmateriaal kunnen ontwikkelen voor computer based training. Daarmee biedt het bedrijf haar werknemers de mogelijkheid om onafhankelijk van plaats en tijdstip trainingen te volgen en examens te doen. Omdat SGML in veel technische bedrijfstakken al jaren wordt toegepast bij het maken en beheren van product- en procesdocumentatie, is het relatief eenvoudig om met behulp van de SWIFT DTD (document type definition) een online training samen te stellen. In tegenovergestelde richting is deze winst natuurlijk ook mogelijk, waardoor ontwikkeld trainingsmateriaal kan worden hergebruikt voor verschillende andere doeleinden, zoals online help, presentaties en documentatie.
Het ziekenhuis:
Het medische dossier van een patiënt die tussen afdelingen heen en weer gaat, kan niet op electronische wijze achter de patient aan reizen vanwege het ontbreken van een standaard electronisch formaat voor de opslag en uitwisseling van de dossiers. Een SGML DTD zou het probleem van het formaat kunnen oplossen, maar met XML is deze DTD niet alleen eenvoudiger te definiëren, tegelijkertijd is de uitwisselings- mogelijkheid met behulp van de wijdverspreide browsersoftware verwezenlijkt. Ziekenhuizen zullen met XML niet alleen hun gegevens eenvoudiger kunnen aanmaken, andere gebruikers zoals de specialisten in andere ziekenhuizen, de huisartsen en de ziektekostenverzekeraars zullen de gegevens snel kunnen toepassen voor hun doeleinden.
Halfgeleidersindustrie:
Sommige industrieën hebben eigen specifieke SGML DTD's vastgelegd ten behoeve van een betere beheersing van gemeenschappelijke informatie. De DTD van de Pinnacles group van halfgeleidersfabrikanten is hiervan een goed voorbeeld. De doelstelling is om onderling rijke data te kunnen uitwisselen voor de integratie in technische ontwerpen.
XML vooruitzichten
Het ziet ernaar uit dat de Netscape/Microsoft browseroorlog over HTML ooit een keer ten einde zal zijn en pure HTML als fundament voor informatie-uitwisseling zal resulteren. Er is een reële kans dat er dan een nieuwe oorlog over XML en de diverse push technologieën zal ontstaan. Om de ontwikkeling van
XML-toepassingen te vereenvoudigen, zou het handig zijn om een API (Applications Programming Interface) te hebben. Deze bestaat nog niet en zal door de belangenstrijd tussen de leden van de XML working group niet eenvoudig tot stand komen. Dit geldt evenzeer voor de compatibiliteit van de XML-parsers.
Een andere bedreiging: als een leverancier voor XML kiest, zal hij zichzelf een kans op individueel gewin via eigen (exotische en exclusieve) software ontnemen. Echter, aangezien dit soort exotische oplossingen per definitie niet gewenst zijn en XML-gereedschap (net zoals met HTML) in grote diversiteit, betaalbaar en gebruikersvriendelijk beschikbaar zullen zijn, zal elke XML oplossing op den duur beter zijn dan niets. U kunt meer informatie vinden over SGML en XML op de volgende sites:
Basis SGML
The SGML/XML Web Page