1 / 82

Dataudveksling og XML

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!

emery
Download Presentation

Dataudveksling og XML

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Dataudveksling og XML

  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? RHS – Informationsteknologi

  3. Hvad udveksler vi? Dokumenter • 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! Lyd Billeder Video SMS 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? 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!!! 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” 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. RHS – Informationsteknologi

  8. Meta-data i sproget - 1 • Vi bruger formen med data og meta-data hele tiden i vores sprog • ”Skoene koster800 kroner” • ”Min hund hedderVagn” • ”Jonas’ bil er enOpel Kadett” • Data • Meta-data RHS – Informationsteknologi

  9. Meta-data i sproget - 2 • Men ofte er vi meget upræcise og indforståede i vores formuleringer • ”Skoene koster800 kroner” – hvilke sko? • ”Min hund hedderVagn” – ”min”, men hvem er du selv? • ”Jonas’ bil er enOpel Kadett” – hvem er Jonas, og hvilken type Opel Kadett er det? RHS – Informationsteknologi

  10. Computerer kan ikke lide indforståethed… Huh!?!? ”Syntax error detected at line 3, insufficient memory” Øhmm, start lige det der, øhhh, program-halløj til at lave regn-skab i, eller noget… 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… 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 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” 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 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. 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 RHS – Informationsteknologi

  17. What is XML…? • eXtensible • Markup • Language Lær det! 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 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 RHS – Informationsteknologi

  20. Adresse som XML <Adresse> <Vejnavn>Skolevej</Vejnavn> <Husnummer>12</Husnummer> <Postnummer>4000</Postnummer> <Bynavn>Roskilde</Bynavn> </Adresse> RHS – Informationsteknologi

  21. Ej, hvor ser det tosset ud… Suk – det hedder XML, din ¤#&!!@* bamsegøglerklovn… Nøj, Kylling, hvor ser det der ÆgsEmÆl altså mærkeligt ud… BORKK! 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) 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 RHS – Informationsteknologi

  24. Dataloger elsker rekursion… 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 RHS – Informationsteknologi

  26. Adresse som XML – igen, igen Adresse er en sammensat type: Består af Vejnavn, osv… <Adresse> <Vejnavn>Skolevej</Vejnavn> <Husnummer>12</Husnummer> <Postnummer>4000</Postnummer> <Bynavn>Roskilde</Bynavn> </Adresse> Postnummer er en simpel type: er bare et tal RHS – Informationsteknologi

  27. Person som XML Person er en sammensat type: består af Navn og Adresse <Person> <Navn> Hans Jensen </Navn> <Adresse> <Vejnavn>Skolevej</Vejnavn> <Husnummer>12</Husnummer> <Postnummer>4000 </Postnummer> <Bynavn>Roskilde</Bynavn> </Adresse> </Person> Adresse er en sammensat type: Består af Vejnavn, osv… 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) 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> 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… RHS – Informationsteknologi

  31. XML kontra HTML XML, jeg vælger deeeeej! • 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 skrive Det <b>andet</b> ord er med fed skrift • Her betyder markeringen, at det mellem <b> og </b> skal skrives med fed (eng.: bold) skrift 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 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! 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 RHS – Informationsteknologi

  35. Fordøjelse af XML Afsender af XML Modtager af XML XML Parser Noget XML… Data, som modtageren kan forstå Her er data bare noget tekst ”Ahh, det var noget XML der kom”, tænker parseren… RHS – Informationsteknologi

  36. Familie Medlem Medlem Medlem Navn Hobbyer Alder Og så videre… 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æ” 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… RHS – Informationsteknologi

  38. Nu kommer der noget smart… Kunne f.eks være et offentligt register Afsender af XML (ved alt muligt om personer) Modtager af XML (vil gerne udregne et gennemsnit for alder) Noget XML med persondata • Modtager ved kun at: • Hver person har én alder • Alder markeret med <alder> 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> Modtager behøver kun kende <person> og <alder> Afsender ved alt dette om en person 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 RHS – Informationsteknologi

  41. En afsender, mange modtagere System til alders-statistik XML Afsender af XML (ved alt muligt om personer) System til adresselister XML XML System til analyse af hospitalsindlæggelser XML Samme data sendes til alle modtagere System til (og så videre…) 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…? 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) 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 RHS – Informationsteknologi

  45. Løs kobling igen… • 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! 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å. 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> 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 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 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 RHS – Informationsteknologi

More Related