Dataudveksling og XML

82
Dataudveksling og XML

description

Dataudveksling og XML. η επικοινωνία είναι δύσκολη. Udveksling af information er stort set det, IT (Informationsteknologi) drejer sig om! Mængden af information der udveksles, stiger eksplosivt Hvor meget information udveksler du på én dag?. Hvad udveksler vi?. Dokumenter. Alt muligt! - PowerPoint PPT Presentation

Transcript of Dataudveksling og XML

Page 1: Dataudveksling og XML

Dataudveksling og XML

Page 2: Dataudveksling og XML

RHS – Informationsteknologi 2

η επικοινωνία είναι δύσκολη

• Udveksling af information er stort set det, IT (Informationsteknologi) drejer sig om!

• Mængden af information der udveksles, stiger eksplosivt

• Hvor meget information udveksler du på én dag?

Page 3: Dataudveksling og XML

RHS – Informationsteknologi 3

Hvad udveksler vi?• Alt muligt!• Efter Internettes fremkomst

er mængden af udvekslet data blevet enorm

• Hvor meget data rummer Internettet…?

• Ingen ved det… Men det anslås, at det hvert år genereres 100 milliarder milliarder bytes!

Video

Billeder

Lyd

Dokumenter

SMS

Page 4: Dataudveksling og XML

RHS – Informationsteknologi 4

Hvad er dit forbrug?

• Hvor mange e-mails/dag?

• Hvor mange SMS/dag?

• Hvor mange MMS/dag?

• Hvor meget download/dag?

• Hvor meget kopiering/dag?

• Hvor meget surf/dag?

Page 5: Dataudveksling og XML

RHS – Informationsteknologi 5

Hvad er information egentlig?

• Information er data…

• Lidt mere detajleret, information er:

– Data selv

– Data om data

• Det sidste kaldes også for meta-data

Arrrhhh, sådan noget forbandet kommunist-sludder!!!

Page 6: Dataudveksling og XML

RHS – Informationsteknologi 6

Meta-data???

• ”Data om data” lyder lidt tåget…

• Forestil dig, at en person kommer hen til dig og siger ”44” – og ikke andet

• Hvad i alverden mener han!?

• Vedkommende har givet dig et stykke data, men har ikke fortalt meningen med data – han har ikke givet dig ”data om data”

Page 7: Dataudveksling og XML

RHS – Informationsteknologi 7

Meta-data???

• Data om data – meningen med data.

• Personen burde i stedet have sagt ”Mit skonummer er 44”

• ”44”: er data

• ”Mit skonummer er”: er meta-data

• Meta-data giver os en ”kontekst” for selve data, så vi kan forstå meningen med det.

Page 8: Dataudveksling og XML

RHS – Informationsteknologi 8

Meta-data i sproget - 1

• Vi bruger formen med data og meta-data hele tiden i vores sprog

• ”Skoene koster 800 kroner”

• ”Min hund hedder Vagn”

• ”Jonas’ bil er en Opel Kadett”

• Data

• Meta-data

Page 9: Dataudveksling og XML

RHS – Informationsteknologi 9

Meta-data i sproget - 2

• Men ofte er vi meget upræcise og indforståede i vores formuleringer

• ”Skoene koster 800 kroner” – hvilke sko?

• ”Min hund hedder Vagn” – ”min”, men hvem er du selv?

• ”Jonas’ bil er en Opel Kadett” – hvem er Jonas, og hvilken type Opel Kadett er det?

Page 10: Dataudveksling og XML

RHS – Informationsteknologi 10

Computerer kan ikke lide indforståethed…

Øhmm, start lige det der, øhhh, program-halløj til at lave regn-skab i, eller noget…

Huh!?!?”Syntax error detected at line 3, insufficient memory”

Page 11: Dataudveksling og XML

RHS – Informationsteknologi 11

Præcis kommunikation

• Hvordan kan vi fortælle en computer – eller rettere, et program til en computer – noget, så den kan regne meningen af det vi siger ud?

• Prøv at give et bud på, hvordan du entydigt kan fortælle en computer, hvilken adresse du bor på – du må kun bruge almindelig tekst…

Page 12: Dataudveksling og XML

RHS – Informationsteknologi 12

Markeringssprog (markup language)

• Hvis vi skal kunne fortælle en computer noget meningsfuldt, skal computeren have et vist ordforråd.

• For adresse kunne det være• Postnummer• By• Vejnavn• Husnummer

Page 13: Dataudveksling og XML

RHS – Informationsteknologi 13

Markeringssprog

• Hvis computeren har et vist ordforråd, kan vi sende meningsfyldt data (data + metadata) til den.

• Vi skal dog også blive enige om en syntaks for data, så computeren kan forstå data.

• Syntaks: Den sproglige opbygning, som data har

• Vi kan også bruge termen ”format”

Page 14: Dataudveksling og XML

RHS – Informationsteknologi 14

Markeringssprog

• I et markeringssprog anvender man en ”markering” til at fortælle noget om data selv.

• Eksempel; hvis jeg vil have et ord i en sætning til at blive skrevet med fed skrift, kunne jeg f.eks markere dette ved at skrive:Det FED(andet) ord er med fed skrift

• Markeringen FED(…) fortæller, at det inden i parentesen skal skrives med fed

Page 15: Dataudveksling og XML

RHS – Informationsteknologi 15

Typer af markeringssprog

• Mange programmer definerer sit eget, ”lukkede” markeringssprog, som ikke uden videre kan bruges af andre.

• Eksempel er (lidt ældre versioner af) Office-programmer; et word-dokument kan ikke bare åbnes med Notepad.

• Word-dokument er et eksempel på et binært format, hvor man bruger sin egen standard for at gemme meta-data.

Page 16: Dataudveksling og XML

RHS – Informationsteknologi 16

Enter the XML…

• Andre typer markeringssprog er mere ”åbne”, og kan nemmere benyttes af andre

• Meget stor fordel at have en standard for åbne markeringssprog– Kun en standard at lære (og følge)– Programmer kan meget nemmere kommunikere, selv

på tværs af ”platforme” (Windows, Mac, Linux,…)

• Den p.t. fremherskende standard for (åbne) markeringssprog er XML

Page 17: Dataudveksling og XML

RHS – Informationsteknologi 17

What is XML…?

• eXtensible

• Markup

• LanguageLær det!

Page 18: Dataudveksling og XML

RHS – Informationsteknologi 18

eXtensible Markup Language

• XML er – overordnet set – en meget simpel standard for definition af data og meta-data.

• XML er ikke ”født” med noget ordforråd som sådan – er ”bare” en beskrivelse af syntaks for data og meta-data

• Man kan selv definere sit ordforråd – men afsenderen skal være enig med modtageren om, hvad de enkelte ord betyder

Page 19: Dataudveksling og XML

RHS – Informationsteknologi 19

At få et fælles ordforråd er ikke altid så let…

..og Fluks Drog Jeg Min Økse med Tvende

Ægge, og Kløvede Hans Pandebrask, så Marsken Vædedes og Tidsel samt

Sorturt Besudledes

Omfg lolz u r0x0r m8 – u shd l2p cs asap for pwnage

Page 20: Dataudveksling og XML

RHS – Informationsteknologi 20

Adresse som XML

<Adresse>

<Vejnavn> Skolevej </Vejnavn>

<Husnummer> 12 </Husnummer>

<Postnummer> 4000 </Postnummer>

<Bynavn> Roskilde </Bynavn>

</Adresse>

Page 21: Dataudveksling og XML

RHS – Informationsteknologi 21

Ej, hvor ser det tosset ud…

Nøj, Kylling, hvor ser det der ÆgsEmÆl altså mærkeligt ud…

BORKK!

Suk – det hedder XML, din ¤#&!!@* bamsegøglerklovn…

Page 22: Dataudveksling og XML

RHS – Informationsteknologi 22

Adresse som XML - igen<Adresse> <Vejnavn> Skolevej </Vejnavn> <Husnummer> 12 </Husnummer> <Postnummer> 4000 </Postnummer> <Bynavn> Roskilde </Bynavn></Adresse>

Vi har:Data (det vi egentlig gerne vil fortælle)Meta-Data (meningen med det vi fortæller)Kontroltegn/Koder (for at skille data fra meta-data)

Page 23: Dataudveksling og XML

RHS – Informationsteknologi 23

Elementer i XML

• <noget> betyder: Nu begynder jeg på noget data af typen ”noget”

• </noget> betyder: Nu er jeg færdig med noget data af typen ”noget”

• Imellem <noget> og </noget>: her kommer selve data

• Selve data kan så have en simpel type, eller en mere sammensat type

Page 24: Dataudveksling og XML

RHS – Informationsteknologi 24

Dataloger elsker rekursion…

Page 25: Dataudveksling og XML

RHS – Informationsteknologi 25

Rekursion…?

• Rekursion betyder – løst sagt – at noget består af nogle dele, som selv kan være af samme type som helheden.

• I XML: En sammensat type kan bestå af dele, som selv er af en simpel type eller en sammensat type.

B.S. ville aldrig bruge ordet rekursion

Page 26: Dataudveksling og XML

RHS – Informationsteknologi 26

Adresse som XML – igen, igen<Adresse>

<Vejnavn> Skolevej </Vejnavn>

<Husnummer> 12 </Husnummer>

<Postnummer> 4000 </Postnummer>

<Bynavn> Roskilde </Bynavn>

</Adresse>

Adresse er en sammensat type: Består af Vejnavn, osv…

Postnummer er en simpel type: er bare et tal

Page 27: Dataudveksling og XML

RHS – Informationsteknologi 27

Person som XML<Person>

<Navn> Hans Jensen </Navn>

<Adresse>

<Vejnavn> Skolevej </Vejnavn>

<Husnummer> 12 </Husnummer>

<Postnummer> 4000 </Postnummer>

<Bynavn> Roskilde </Bynavn>

</Adresse>

</Person>

Person er en sammensat type: består af Navn og Adresse

Adresse er en sammensat type: Består af Vejnavn, osv…

Page 28: Dataudveksling og XML

RHS – Informationsteknologi 28

XML er hierakisk

• I XML beskrives ting i et hierarki: en ting (f.eks en Person) rummer dele (f.eks Navn, Adresse,…), som igen kan rumme ting, og så videre…

• Kan sammenlignes lidt med tabeller og felter i en database (hvis felter så selv kunne være tabeller)

Page 29: Dataudveksling og XML

RHS – Informationsteknologi 29

Øvelse i XML

• Prøv at beskrive din familie i XML• Du kan selv vælge det ordforråd du vil benytte• Tip; hvis flere elementer af samme type

forekommer, skrives de blot efter hinanden:<Familie>

<Familiemedlem> …</Familiemedlem>

<Familiemedlem> …</Familiemedlem>

</Familie>

Page 30: Dataudveksling og XML

RHS – Informationsteknologi 30

XML kontra HTML

• Hvad er HTML?• HyperText Markup Language• Dette er sproget, som langt de fleste web-sider

er skrevet i.• Hvis man laver en web-site i FrontPage, laver

FrontPage en masse HTML-kode for en• HTML kom før XML, men HTML er faktisk bare

en speciel type af XML…

Page 31: Dataudveksling og XML

RHS – Informationsteknologi 31

XML kontra HTML

• Hvad er så forskellen på HTML og XML?

• HTML bruges primært til at beskrive, hvordan data skal præsenteres.

• I HTML kan man f.eks skriveDet <b>andet</b> ord er med fed skrift

• Her betyder markeringen, at det mellem <b> og </b> skal skrives med fed (eng.: bold) skrift

XML, jeg vælger

deeeeej!

Page 32: Dataudveksling og XML

RHS – Informationsteknologi 32

XML kontra HTML

• Med andre ord – i HTML er der ingen information om meningen med data, kun information om præsentationen af data

Information om XML HTML

Selve data Ja Ja

Mening Ja Nej

Præsentation Nej Ja

Page 33: Dataudveksling og XML

RHS – Informationsteknologi 33

Hvem har spist min XML??

• Fint, jeg kan lave noget XML nu – men hvem skal jeg give det til…?

• Den som skal ”forbruge” det XML vi har lavet, skal– Forstå XML i det hele taget (syntaks)– Have et ordforråd, som gør det muligt at forstå

indholdet i vores XML– Men bemærk; modtageren behøver ikke have præcis

det samme ordforråd som os!

Page 34: Dataudveksling og XML

RHS – Informationsteknologi 34

Fordøjelse af XML

• Første trin i at fordøje noget modtaget XML, er at sende det gennem en parser

• Hvad er en parser? En stump program-kode, som laver det modtagne XML om til data inden i det modtagende program?

• Når modtageren modtager XML, er det jo bare et stykke tekst, derfor er dette første led i fordøjelsen nødvendigt

Page 35: Dataudveksling og XML

RHS – Informationsteknologi 35

Fordøjelse af XML

Afsender af XML

Noget XML…

Modtager af XML

XMLParser

Data, som modtageren

kan forståHer er data bare noget tekst ”Ahh, det var noget

XML der kom”, tænker parseren…

Page 36: Dataudveksling og XML

RHS – Informationsteknologi 36

XML ligger godt i maven…

• Parseren laver XML om til data, som modtageren kan forstå.

• Da XML er hierakisk, vil det data parseren laver have en tilsvarende hierakisk struktur

• Tænk på en hierakisk struktur som et slags ”træ”

Familie

Medlem Medlem Medlem

Navn Hobbyer Alder

Og så videre…

Page 37: Dataudveksling og XML

RHS – Informationsteknologi 37

Nu kommer der noget smart…

• Modtageren af vores XML kan nu løbe data igennem, og behandle de dele der er relevante for præcis denne modtager.

• Hvorfor er det smart? Fordi vi og modtageren kun behøver være enige om ordforrådet for netop denne del.

• Det er ikke forbudt at sende data til modtageren, som modtageren ikke ved hvad betyder…

Page 38: Dataudveksling og XML

RHS – Informationsteknologi 38

Nu kommer der noget smart…

Afsender af XML(ved alt muligt om personer)

Noget XML med persondata

Modtager af XML(vil gerne udregne

et gennemsnitfor alder)

Kunne f.eks være et offentligt register

Modtager ved kun at:1. Hver person har én alder2. Alder markeret med <alder>

Page 39: Dataudveksling og XML

RHS – Informationsteknologi 39

On a need-to-know basis

<person>

<navn>…</navn>

<adresse>…</adresse>

<alder>…</alder>

<børn>

<person>…</person>

<person>…<person>

</børn>

<job>…</job>

<hospitalshistorik>

<indlæggelse>…</indlæggelse>

</hospitalshistorik>

</person>

Afsender ved alt dette om en person

Modtager behøver kun kende <person> og <alder>

Page 40: Dataudveksling og XML

RHS – Informationsteknologi 40

Hvad er det smarte…?

• Det smarte er, at modtager og afsender ikke behøver vide særligt meget om hinanden– Afsender behøver ikke kende modtager– Mange modtagere kan bruge data fra samme

afsender, og bruge dem til forskellige formål– Afsender kan ændre på typen af data der afsendes,

uden at modtager skal bekymre sig om det

• Generelt anses det for en stor fordel mht udveksling af data, at systemerne er så ”løst koblede” som muligt

Page 41: Dataudveksling og XML

RHS – Informationsteknologi 41

En afsender, mange modtagere

Afsender af XML(ved alt muligt om personer)

System til alders-statistik

System til adresselister

System til analyse af hospitalsindlæggelser

System til (og så videre…)

XML

XML

XML

XML

Samme data sendes til alle

modtagere

Page 42: Dataudveksling og XML

RHS – Informationsteknologi 42

Præsentation af XML-data

• Hvis vi åbner en fil med XML-data i Internet Explorer, ser det nogenlunde sådan her ud:

• Men har vi ikke lige sagt, at XML ikke rummer oplysninger om præsentation af data…?

Page 43: Dataudveksling og XML

RHS – Informationsteknologi 43

Præsentation af XML-data

• XML beskriver ikke i sig selv, hvordan data skal præsenteres – måske skal det ikke præsenteres overhovedet!

• Der skal noget mere til…• Dette ”mere” er en samling regler for, hvordan

hver type element skal præsenteres• Sådan en samling regler beskrives ofte i et

sprog kaldet XSLT (eXtensible Stylesheet Language Transformations)

Page 44: Dataudveksling og XML

RHS – Informationsteknologi 44

Ingen panik!

• Vi skal ikke lære noget om XSLT – det er ret kompliceret…

• Hvad kan XSLT? Det kan trans-formere XML-data til en anden form, som specificeres ved hjælp af en samling regler.

• Denne ”anden form” kan være alt muligt, blandt andet HTML

Page 45: Dataudveksling og XML

RHS – Informationsteknologi 45

Løs kobling igen…

Information om

XML HTML XSLT XML + XSLT

Selve data Ja Ja Nej Ja

Mening Ja Nej Nej Ja

Præsentation Nej Ja Ja Ja

• Lad os udvide tabellen fra før med XSLT:

• Kombinationen af XML og XSLT giver os både mening og præsentation – men uafhængigt!

Page 46: Dataudveksling og XML

RHS – Informationsteknologi 46

<Vigtigt>

• I HTML kan vi for eksempel skrive en sætning på denne måde:

Brug <b>altid</b> sikkerhedsbriller!

• Altså har vi valgt, at vi benytter fed skrift (husk at <b> betyder bold (fed) i HTML) for at frem-hæve noget vigtigt…

• …men så har vi ”bundet” os til denne måde at fremhæve noget vigtigt på.

Page 47: Dataudveksling og XML

RHS – Informationsteknologi 47

Her er det vigtige

• I XML kan vi skrive samme sætning på denne måde:

Brug <vigtigt>altid</vigtigt> sikkerhedsbriller!

• Dette siger ikke noget om, hvordan vi vælger at noget vigtigt skal fremhæves

• I en XSLT kan vi så definere, at

<vigtigt> <b> eller <vigtigt> <i>

Page 48: Dataudveksling og XML

RHS – Informationsteknologi 48

</Vigtigt>

• Ved at skille data og præsentation ad, har vi meget større fleksibilitet med hensyn til, hvordan vi vil præsentere data

• På en meget simpel måde kan præsentation ændres radikalt.

• Leverandøren af data skal ikke bekymre sig om præsentationen af data

Page 49: Dataudveksling og XML

RHS – Informationsteknologi 49

En XML, mange XSLT

• En smart ting er således, at man ved hjælp af forskellige samlinger af regler (skrevet som XSLT) kan transformere samme XML-data til flere forskellige formater, alt efter formål

• Dette giver meget stor fleksi-bilitet i brugen af XML data til flere former for præsentation

Page 50: Dataudveksling og XML

RHS – Informationsteknologi 50

Eksempel: Facebook-data

• De data der vises på Facebook, ligger i en (meget stor) database.

• Når data for en person trækkes ud fra data-basen, skal det laves om (transformeres) til HTML, så det kan vises i en browser (f.eks Internet Explorer)

• Denne transformation kunne meget vel være lavet i XSLT

Page 51: Dataudveksling og XML

RHS – Informationsteknologi 51

Eksempel: Facebook-data

Database med Facebook-data

Data som XML

Data som HTML

ForespørgselTransformation

(XSLT)

Præsentation af Facebook-data som vi kender det

Databasen rummer meget information om hver person

Page 52: Dataudveksling og XML

RHS – Informationsteknologi 52

Eksempel: Facebook-data

• Dette er alt sammen fint; vi får alt data om personen præsenteret i browseren.

• Selv når informationen vises i en browser på en almindelig computer, er der så meget informa-tion, at den er delt op på mange sider

• Hvad hvis vi vil vise Facebook-data på en mobil-telefon, hvor skærmen er meget mindre…?

Page 53: Dataudveksling og XML

RHS – Informationsteknologi 53

Eksempel: Facebook-data

Database med Facebook-data

Data som XML

Data som HTML

ForespørgselTransformation

(XSLT)

Den genererede HTML-kode er nu tilpasset en mobil-telefon (kun en lille mængde data vises)

Kun selve trans-formationen er ændret!

Page 54: Dataudveksling og XML

RHS – Informationsteknologi 54

Med andre ord (og billeder)

Database med Facebook-data

ForespørgselData som

XML

Transfo

rmatio

n til

Inte

rnet E

xplore

r

Transformation til mobiltelefon

Transformation til

Word dokument

Data som HTML(til Internet Explorer)

Data som Worddokument

Data som HTML(til mobil)

Transformationen behøver ikke kun være til præsentation!

Page 55: Dataudveksling og XML

RHS – Informationsteknologi 55

Til at tænke over…

1) Det blev tidligere sagt, at ”Afsender kan ændre på typen af data der afsendes, uden at mod-tager skal bekymre sig om det” – er det nu også helt rigtigt?

2) Hvis man kunne få Facebook-data som XML, hvordan skal de, som vil benytte dette data til noget, vide hvilket ordforråd de skal benytte?

3) En parser kontrollerer, at et givent stykke tekst er XML, altså at det overholder reglerne for XML-syntaks. Kan man så være sikker på, at data altid vil give mening?

Page 56: Dataudveksling og XML

RHS – Informationsteknologi 56

Lidt flere XML-detaljer

• Der er en smule mere at vide om XML– Attributter– Prolog– Navnegrupper (namespace)

Page 57: Dataudveksling og XML

RHS – Informationsteknologi 57

Attributter

• Hvis vi har et XML-element med en simpel type, kan vi skrive værdien som en såkaldt attribut i stedet:

<Adresse> <Vejnavn> Skolevej </Vejnavn> <Husnummer> 12 </Husnummer> <Postnummer> 4000 </Postnummer></Adresse>

<Adresse Vejnavn=”Skolevej” Husnummer=”12” Postnummer=”4000” />

bliver til

Page 58: Dataudveksling og XML

RHS – Informationsteknologi 58

Attributter

• En attribut-værdi står inde i selve koden for elementet.

• Værdien skal stå i ”” (gåseøjne)• Man kan godt have flere attributter for et element• Man kan godt benytte attributter for simple typer

i et element, og så derudover have sammen-satte typer i elementet

• Hvad er bedst? Svært at sige, men attributter gør XML-koden lidt mere kompakt

Page 59: Dataudveksling og XML

RHS – Informationsteknologi 59

Prolog• Prolog betyder ”start” eller

”indledning”• For XML er prologen en ind-

ledende beskrivelse af, hvilken type XML der følger

• Den kan rumme information som– XML version– Sprog-opsætning– Anden information, som gælder for

hele det XML-data som følger

Page 60: Dataudveksling og XML

RHS – Informationsteknologi 60

Prolog

• En meget simpel prolog kunne være:

<? xml version=”1.0” encoding=”windows-1258” ?>

• Bemærk at– Prologen står i koden <? … ?>– Værdierne står som attributter– ”encoding” attributten angiver sprog (her Dansk)

Page 61: Dataudveksling og XML

RHS – Informationsteknologi 61

Navnegruppe (Namespace)

• Husk på, at afsender og modtager skal være enige om ordforrådet.

• Man kan sagtens forestille sig, at forskellige afsendere bruger det samme ord om forskellige typer data, hvis konteksten er forskellig

• Tænk f.eks på reklamerne for Oddset.– I konteksten Fodbold betyder ”klippet” at blive ulovligt

nedlagt af en modstander– I konteksten Frisør betyder ”klippet” at få klippet hår

Page 62: Dataudveksling og XML

RHS – Informationsteknologi 62

Navnegruppe (Namespace)

• For at forhindre sammenfald mellem typer, kan man bruge navnegrupper (eng. namespace)

• En navnegruppe er et ”efternavn” for en samling af typer, som bruges i den samme kontekst

• Vi kunne f.eks definere en navnegruppe kaldet HHFag, som rummer typerne (IT, afsætning, dansk, tysk, matematik,…)

• En navn på en type skrives så som f.eks HHfag::dansk, altså navnegruppe::typenavn

Page 63: Dataudveksling og XML

RHS – Informationsteknologi 63

Navnegruppe (Namespace)

<Fag klasse=”2d08”>

<HHFag::dansk lærer=”…” />

<HHFag::IT lærer=”…” />

<HHFag::afsætning lærer=”…” />

</Fag>

For s…. da for noget christianit-sludder!!

Page 64: Dataudveksling og XML

RHS – Informationsteknologi 64

Navnegruppe (Namespace)

• Før man bruger en navnegruppe, skal man indsætte en henvisning til den i sin XML

• Henvisningen kan være til en anden fil, eller til en web-side.

• Dette kan hjælpe parseren til at afgøre, om der er brugt lovlige navne på typerne.

Page 65: Dataudveksling og XML

RHS – Informationsteknologi 65

Meningsfyldt XML

• Hvis vores XML-data kan komme forbi parseren, har den en korrekt syntaks.

• Derfor kan det godt være noget sludder alligevel…

• ”…Jeg stod højre ved giraffen om snoren, men fire efterfølger to værre cementsten…”

• Sikkert ”syntaktisk korrekt” dansk, men giver ingen mening

HVA’ BA’ !?

Page 66: Dataudveksling og XML

RHS – Informationsteknologi 66

Mere end syntaks

• Vi må udføre yderligere kontrol, for at sikre at vores XML er meningsfyldt.

• Hvad skal vi kontrollere meningen imod…?

• Man kan definere regler for opbygningen af XML-data – dette gøres i en såkaldt XSD.

XML

XSLT

XSD

HTML

Page 67: Dataudveksling og XML

RHS – Informationsteknologi 67

XSD

• XML Scheme Definition (flere forkortelser…)• Ligesom XSLT er det (bare) en samling regler,

denne gang for opbygningen af XML-data• Eksempel: typen Navn er opbygget af:

– Netop ét Fornavn– Nul, ét eller flere Mellemnavn– Netop ét Efternavn

Page 68: Dataudveksling og XML

RHS – Informationsteknologi 68

Rigtigt og forkert<Navn> <Fornavn> Per </Fornavn> <Mellemnavn> Storgaard </Mellemnavn> <Mellemnavn> Lillevang </Mellemnavn> <Efternavn> Laursen </Efternavn></Navn>

<Navn> <Fornavn> Per </Fornavn> <Fornavn> Bent </Fornavn> <Mellemnavn> Lillevang </Mellemnavn> <Efternavn> Laursen </Efternavn></Navn>

To fornavne…

Page 69: Dataudveksling og XML

RHS – Informationsteknologi 69

Fordøjelse af XML – nu med XSD

Afsender af XML Noget XML…

Modtager af XML

XMLParser

Data, som modtageren

kan forstå

XML Kontrol(XSD)

XML præsen-tation (XSLT)

HTML – f.eks vist i Internet

Explorer

Page 70: Dataudveksling og XML

RHS – Informationsteknologi 70

Og hvad skal vi så huske?• XML

– eXtendible

– Markup

– Language

• XML er en åben standard for at beskrive data, samt meta-data (data om data)

..and remember, XML will be with you,

always…

Page 71: Dataudveksling og XML

RHS – Informationsteknologi 71

Og hvad skal vi så mere huske?• En afsender og modtager skal være enige

om, hvilket ordforråd der kan benyttes, samt meningen med de specifikke typer

• XML rummer kun meningen med data, ikke præsentationen

• Værktøjer som XSLT og XSD hjælper os med at fortolke og bearbejde XML data.

Page 72: Dataudveksling og XML

RHS – Informationsteknologi 72

Flere ting at tænke over…

1) XML er en åben standard, men…hvem beslutter så, hvordan reglerne for XML er?

2) Hvilke ulemper kan der være ved XML, sammenlignet med et binært format?

3) I XML er data hierakisk, mens det er relationelt i en (relationel) database som f.eks Access. Hvilke problemer kan dette give, hvis man vil repræsentere data fra en database som XML?

Page 73: Dataudveksling og XML

RHS – Informationsteknologi 73

Dataudveksling i den virkelige verden

• I den virkelige verden udveksles der information på mange formater, XML er kun et af dem…

• Dog ses der en tendens til mere og mere udbredt brug af XML

• Skal XML benyttes til dataudveksling, skal afsender og modtager være enige om ordforrådet – dette gøres ved at lave en specialisering af XML til et specifikt formål.

Page 74: Dataudveksling og XML

RHS – Informationsteknologi 74

XML specialisering

• At specialisere XML til et specifikt formål betyder blot, at der defineres– Et ordforråd– Regler, som den specialiserede XML skal

følge (f.eks ved definition af en XSD)

• I praksis er der defineret et stort antal specialiserede versioner af XML.

Page 75: Dataudveksling og XML

RHS – Informationsteknologi 75

XML specialisering - eksempler

• XBRL – eXtensible Business Reporting Language• MathML (XML til matematik)• CML – Chemistry XML• XAML – eXtensible Application Markup Language• OIO-XML (Offentlig Information Online XML)• Se også http://en.wikipedia.org/wiki/List_of_XML_markup_languages

• Den sidste er interessant – det er en version af XML beregnet til dataudveksling i det offentlige Danmark

Page 76: Dataudveksling og XML

RHS – Informationsteknologi 76

OIO-XML

• Intentionen med OIO-XML er at (elektronisk) udveksling af data mellem offentlige inistitutioner – samt det offentlige og private – skal følge denne standard

• Citat fra vejledning fra IT- og telestyrelsen:

Kravet om at anvende OIOXML gælder, når der foregår regelmæssig og systematisk udveksling af data fra eller til en myndighed. Eksem-pelvis når en styrelse stiller krav om regelmæssige indberetninger fra kommunale myndigheder.

Page 77: Dataudveksling og XML

RHS – Informationsteknologi 77

Offentlig data- udveksling eksempel

• En virksomhed kaldet KMD (Kommunedata) laver systemer til den offentlige sektor i Danmark

• Et (ud af mange) af disse systemer bruges til sagsadministration i landets kommuner

• Dette ene system foretager udveksling med andre systemer mere end 40 millioner gange årligt (mere end en pr. sekund, året rundt)

• Datamængden kan variere, men i alt adskillige Terabytes pr. år

Page 78: Dataudveksling og XML

RHS – Informationsteknologi 78

e-Faktura

• Der er nu tillige krav om, at leverandører til det offentlige skal sende deres faktura på elektronisk form (e-Faktura)

• Hvad skal nu den lille ikke-så-computer-kyndige hånd-værksmester nu gøre…?

Page 79: Dataudveksling og XML

RHS – Informationsteknologi 79

e-Faktura løsninger

• Læs-ind bureau– Der findes nu bureauer, som mod betaling ”over-

sætter” gammeldags papir-fakturaer til elektronisk form, og indberetter dem til det offentlige

• Faktura-portal– Via en ”portal” på nettet kan man indtaste og afsende

sine fakturaer, ved hjælp af en slags faktura-editor

• Eget system– Man køber et program, hvori man både kan oprette

og afsende fakturaer elektronisk (C5, XAL, …)

Page 80: Dataudveksling og XML

RHS – Informationsteknologi 80

e-Boks

• e-Boks er en slags e-mail konto, hvor offentlige (og andre) institutioner kan sende information til borgeren.

• Dette kan være– Skatteopgørelser– Lønsedler (for offentligt ansatte)– Ejendomsvurderinger– …og så videre…

Page 81: Dataudveksling og XML

RHS – Informationsteknologi 81

e-Boks

• En del virksomheder har også tilsluttet sig e-Boks, f.eks mange banker, forsikringsselskaber, med videre, så de kan sende– Kontoudtog– Pensionsoversigter– Forsikringsoplysninger– …og så videre…

• Hvilket format skal alle disse data mon sendes på…?

Page 82: Dataudveksling og XML

RHS – Informationsteknologi 82

Opgaver1) Din bedstefar er meget

skeptisk ved at bruge e-Boks – hvilke argumenter kunne måske overbevise ham?

2) Hvilke fordele og ulemper er der ved at bruge e-Boks og e-Faktura, både set fra den enkelte, og fra hele samfundets, synspunkt?

3) Hvilke nye krav stiller brugen af e-Boks og e-Faktura til borgeren og til virksomheder?

Arhh, sådan noget nymodens

pjank…