You are on page 1of 4

Hoofdstuk 7 : Gestructureerde informatie : XML

Doelstellingen :
 Inzicht in het gebruik en de positionering van XML
 Gelijkenis- en verschilpunten onderkennen tussen XML en HTML
 Weten hoe je XML-documenten kan visualiseren en hoe je afspraken kan
maken over de structuur van XML-documenten
 De begrippen 'namespaces', XML Schema, XSLT en 'webservices' kunnen
plaatsen
 De cruciale rol van XML inzien bij "business-to-business" communicatie

7.1.Waarom XML ?
7.1.1.HTML : Werking en beperkingen
Zoals gezegd in hoofdstuk 6 is HTML een markup taal die via <tags> de lay-out
van een document gaat bepalen. Deze tags zijn echter vast gedefinieerd binnen
HTML en bepalen maar 1 lay-out. Dankzij deze tags kunnen browsers een pagina
correct uitbeelden. Deze tags kunnen niet worden verandert. Het is alleen handig
voor mensen omdat het een overzichtelijke lay-out heeft, maar niet voor
machines want het is voor hen maar ongestructureerde tekst.

7.1.2.Wat is een XML-document?


 Metadata : gegevens over gegevens, geven de betekenis aan van de
individuele onderdelen in een gestructureerde tekst
Om deze beperkingen te omzeilen is er de eXtensible Markup Language (XML)
taal gemaakt, net als HTML een markup taal, maar met 3 belangrijke verschillen :
• Uitbreidbaarheid : men kan in XML zoveel tags invoegen en creëren als
hij wil.
• Structuur : Het bepaald ook een structuur en niet alleen een lay-out
• Validatie : Het is mogelijk documenten te vergelijken met een document
type-definitie, of beter gezegd : een XML-schema
Er zijn 2 stukken in een XML pagina :
– Een” processing instruction” tussen <? En ?> bijv. : <?xml
version=”1.0”?>
– Daarna elements, waaronder een root die al die elements gaat bevatten.
Bijv. : <naam>
We kunnen zeggen dat elke keer dat men een nieuw element introduceert er een
nieuw doosje komt in de root (bijv. een boek in de root bibliotheek). Elk doosje
gaat informatie geven over waar het over gaat, daarom spreek men van :
metadata. De content staat gewoon tussen de XML-tags.

Dankzij deze XML-tags gaat men een bomstructuur kunnen maken, met als
basiselement de data, en als takken de metadata. In deze boomstructuur spelen
de tags de takken. In XML kunnen deze tags door de gebruiker zelf bepaald
worden, in tegenstelling tot HTML waar ze vast liggen. Deze tags moeten een
paar regels volgen :
○ Een naam die bestaat uit ten minste 1 letter a-z, 1-Z of” _”of “:”
○ Na de 1ste leter, mogen er 1 of meerdere andere Unicode karakters komen
(buiten spatie en tab)
○ Het woord “XML” is niet te gebruiken
○ Een leeg element word <naam/> genoteerd
○ Commentaar staat tussen <!-- … -->
Bij XML, wanneer men het gewoon bekijkt, krijgt men een mappenstructuur zoals
in Windows.

7.1.Kwaliteitcontrole voor XML-documenten


Er bestaat een programma de XML-parser die in de structuur van de bladzijde
naar syntaxe fouten gaat zoeken. Als hij er geen vindt is het document “well-
formed” het volgt dan de volgende regels :
• Er is juist 1 root element
• Er is een begin- en eind-tag voor elk element
• XML is hoofdletter gevoelig. Hierin zijn geen fouten
• Er moet een goede structuur hebben <A><B>… </B></A> en niet
<A><B>…</A></B>
De eventuele fouten moeten door een XML-parser worden ontdekt wat voor de
computer betekend het niets wat er staat (zelfs juist. Het is chinees). Bijv.
Internet Explorer kan die fouten opzoeken, en zal ze dan ook tonen zodat het
simpeler te verbeteren is.

7.1.Tags en Namespaces
7.1.1.Tags en attributen
Er kunnen ook in XML attributen worden gestopt in tags. Deze staan zoals volgt in
de tekst : naam=”waarde”. Men kan zo alle informatie in attributen zetten (cf blz
154 cursus). Er bestaat geen regel over wat en wat niet als attribuut zetten,
alleen attributen moet altijd wel een waarde hebben.

7.1.2.Namespaces
Het nadeel wanneer iedereen zijn eigen tags kan maken is dat er soms
overlappingen zullen zijn van tags, maar die niet dezelfde mening zullen hebben.
(bijv. <goal> als doel in voetbal en doel in het bedrijf). Daarom worden er
namespaces geïntroduceerd zodat elke tag uniek blijft. Deze Namespaces zijn
vaak gekoppeld met de XML-schema’s. namespaces zijn eigenlijk een soort
woordenboek.
Om een element in een Namespace toe te kennen, gebruikt men een prefix voor
de naam. Bijv. <voet:goal> … </voet:goal>. Elke namespace gaan we dan aan
een URL vastkoppelen voor elke Namespace uniek te maken. Op die plaats gaat
er dan de informatie staan van de namespace. Het moet niet een URL zijn, maar
omdat die uniek is, vermijdt het sommige verwarring.
Sommige namespaces zijn wel belangrijk voor schema’s en XSLT transformaties
van XML document.

7.2.XML schema’s

Een XML schema is eigenlijk 2 documenten te samen : het “XML Schema” en het
“XML Instance Document”. Het eerste bevat de structuur van de 2de, die eigenlijk
alle de informatie bevat. Het schema duidt aan welke elementen en attributen
het XML bestand moet/mag hebben. Hier is wat een XML schema allemaal doet :
– Het legt de formele definitie van een documenttype vast (bijv. facturen)
– Het zegt welke namen voor elementen kunnen worden gebruikt, waar ze
mogen voorkomen en hoe ze samen passen
– Het is zelf een XML document
– Het is ook gelinkt aan een namespace zodat elke tag een speciale
betekenis heeft.
Deze schema’s zijn optioneel, ze dienen alleen de verschillende XML documenten
te classeren in :
 Well-formed document, d.w.z. documenten die aan de structuur en notati
van de XML-standaard voldoen
 Valid, als het well-formed is en ook aan een XML-schema voldoet.
Gecontroleerd door een validator.

We duiden aan in een document of het tot een schema behoord met :
<?xml version=”1.0”?>
<BookStore xmlns =”http://www.books.org “ (1)
Xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
(2)
Xsi:schemaLocation=”http://www.books.org/BookStore.xsd”
(3)
Met :
1 – de aanduiding dat de tags behoren tot de namespace http://www.books.org
2 – de aanduiding dat de structuur wordt gegeven door BookStore.xsd
3 – de aanduiding dat het schemaLocation-attribuut behoort tot de XML schema-
instance namespace

7.1.XML transformations : XSLT

De XLS (Extensible Stylesheet Language) taal is een taal dat een tagged
document (bijv. XML) om zet in een ander tagged document (bijv. HTML). Het
XLS-document bestaat eigenlijk uit een aantal vertaalregels die samen
verschillende templates vormen. Alle templates vormen een style sheet. De
transformatie gebeurt via een XSLT processor, die werkt op basis van dergelijke
style sheets.
Er zijn 2 belangrijke gebruiken van de XSLT :

7.1.1.Presentation Oriented Publishing


Omdat in XML, tot tegenstelling met HTML, de presentatie van de inhoud is
gescheiden, wordt deze presentatie gegevens in Style Sheets vastgelegd met
behulp van XSL taal. Door deze onderscheid tussen inhoud/presentatie, kan
hetzelfde XML doc. op veel verschillende manieren worden getoond afhangend
van de lezer of het medium (gsm, PC,…). Het kan ook dienen om alleen maar
bepaalde gegevens eruit te halen (accounting=/ personeelsbeleid), dit vermeid
hetzelfde document 25 keer op te slaan.

7.1.2.Message Oriented Middleware


Hier, werkt het XML bestand als bericht tussen servers. De ene stuurt een
bericht, en de andere verwerkt het bericht en stuurt al dan niet een bericht terug.
Hij gaat het bericht zelf gebruiken. Het nadeel is dat er tussen de 2 machines een
XML-schema moet bestaan zodat beiden het bestand op dezelfde manier kunnen
gebruiken. Het zal echter vaak eerst door een XSLT processor gaan zodat hij
alleen de interessante informatie krijgt. Daarbij, in tegenstelling tot POP-situatie,
is het MOM niet gericht op de visualisatie, het is een XML doc. met maar een stuk
van de gegevens.

7.2.XML als Business Lingua Franca


Er zijn in de wereld al verschillende standaarden vastgelegd voor specifieke
onderdelen. Dit komt omdat meer en meer het XML-formaat wordt gebruikt in
B2B-interactie.

7.2.1.De voorloper : EDI (Electronic Data Interchange)


EDI (Electronic Data Interchange) was de standard in B2B-interactie in de jaren
’70. Het legde alle elementen vast tot de elektrische stroompulsen. Het gebruikte
ook speciale communicatielijnen. Het was dus niet flexibel en zeer duur. Het werd
dus alleen gebruikt door grote ondernemingen met een vaste partnership.

7.2.2.XML als opvolger voor EDI


Met het komen van de structurele betekenis van de XML-tags, en de XML-
schema’s werd het ook mogelijk voor partners te communiceren via de XML taal.
Ze moesten alleen een schema vastleggen waar ze zich beiden aan gingen
houden. Het XML werkt dus zoals EDI maar zonder de complexe vastlegging, en
de dure en niet-flexibele technologie. Alles gebeurde via de WWW.
7.2.3.SOAP : Simple Object Access Protocol & Web services
Echter, na een tijdje, werd XML ook gebruikt als oproepen naar software
componenten (method Invocations). Het interactiemechanisme dat daarbij werd
gebruikt werd SOAP genoemd. Later sprak men over Het interactiemechanisme
dat daarbij werd gebruikt werd SOAP genoemd. Later sprak men over Web
services.
Bij SOAP, staat het XML-bericht als het aanroep naar een software en alle
parameters dat het moet gebruiken. Hij stuurt de aanroep over http als XML-
messages. Vandaag, groeit SOAP ook uit als dé standaard voor B2B interactie
over het Web.

7.2.4.Het publiceren van en zoeken naar Web services


 Web services : onafhankelijke softwarecomponenten die een welbepaalde
functionaliteit aanbieden op het Web en die door andere services of
applicaties kunnen aangeroepen worden.
Het voordeel van dit systeem is dat de interface niet gekopeld is met de
implementatie. Alles communiceert via XML berichten over het Web. Zo kunnen
web-services overal en op alle PC gebruikt worden. SOAP is dus een algemene
communicatietaal. Er zijn daarna 2 gebruiken van de interactie via SOAP :
 Method invocations : XML-tags omschrijven een methodeaanroep en
parameters
 Business documenten worden voorgesteld : bijv. bestelorders, facturen,...
Beiden worden vaak door elkaar gebruikt.

Naast SOAP bestaan er nog 2 andere standaarden waarop Web services zijn
gebaseerd : UDDI en WSDL. Zij vermelden waar alle service te vinden zijn en hoe
ze moeten worden aangesproken. UDDI (Universal Description, Discovery and
Integration) speelt hier de rol als “Gouden Gids”, d.w.z. een opzoeklijst met
advertenties voor een bepaalde service met beschrijving, en ook een zoekfunctie
naar bepaalde functionaliteiten die men nodig heeft.
We zien ook dat de UDDI repository een WSDL-beschrijving bevat van elke Web
service. WSDL (Web serivce Description Language) definieert een verzameling
XML-tags die aanduiden welke parameters men naar een service moet sturen, en
welk antwoord men zal krijgen. Dit is een toepassing van XML schema’s.
WSDL is dus een technische beschrijving.

You might also like