XML

Ulemper ved XML

XML, eXtensible Markup Language, har fået flere øgenavne i tidens løb, såsom eXtravagant Markup Language, eller eXtra Mange Lag. Tager de tekniske briller på, er det ikke uden grund: XML er på mange måder en ret klodset og ineffektiv måde at overføre data. Strukturen i et XML-dokument fylder ofte lige så meget som de data der transporteres, og det er en langsom og ineffektiv måde at skrive og læse data. Kigger man på XML som virksomhed, så kunne det måske også virke lidt bekymrende, at der ikke står et firma bag XML, og man har måske endda hørt om konflikter i XML-baserede dataformater.

Dette lyder jo ikke umiddelbart som en vinder man burde satse på, men der er rigtig gode grunde til, at man ikke bare skal satse på det, men at man også bør vide hvad XML er - også selvom man ikke er teknikker, udvikler eller arkitekt.

Når data skal udveksles mellem systemer, har det fra tidernes morgen været en udfordring. I dag taler man meget om at komme tilbage til bemandede missioner til månen, og senere til Mars. Det er rigtig længe siden NASA sendte folk til månen, og man opsamlede dengang uhyre vigtige data omkring alt fra styring af fartøjerne, til data om de astronauter der var deroppe - data, som kunne være rigtig spændende at få fat i i dag. Man har stadig mange af de opsamlede data, men de er reelt ulæselige. Dels er de fysiske medier svære at læse, fordi man skal bruge det oprindelige udstyr. Men selv når man får data ud, er det meget svært at fortolke data, idet formaterne for disse ikke er tilgængelige mere, og de computere og programmer der skal behandle dem, ikke er tilgængelige mere. Det samme vil sandsynligvis gøre sig gældende, hvis man vil prøve at læse andre data fra systemer der er over 25 år gamle. Vi behøver ikke at komme ind på WordPerfect og DSI Tekst - mange gamle systemer, der stadig bruges i dag, anvender proprietære dataformater, der kun vil være tilgængelige for de programmer der oprindeligt skrev dem. Dette kan give en til tider dyr og upålidelig tilgang til både data og programmer.

Microsoft Windows MetaFile (WMF)

Eksempel på et proprietært dataformat, Microsoft Windows MetaFile (WMF). Uden at kende det præcise format, er det næsten umuligt at ændre indholdet, eller konvertere det til et andet format.

Fordele ved XML

Andre dataformater kan være upålidelige af andre årsager. Mange systemer har i tidens løb udvekslet data med kommaseparerede filer (CSV eller TSV -filer). Det “virker” som sådan, men her har man andre udfordringer. CSV-formatet er som sådan simpelt nok til, at data altid vil kunne læses - også selvom der kan være udfordringer med tegnsæt (Unicode, UTF-8, Windows-1252), eller separatorer (bruges komma som decimal-separator, eller anvendes et semikolon eller tabulator?). Givet tid og ressourcer kan man programmere sig uden om den slags. Det er imidlertid værre når det kommer til selve indholdet og dataintegriteten: Er alle linjer kommet med? Hvilken version af formatet anvendes? Hvordan udvides formatet, hvis der kommer flere ting til? Hvordan håndteres mere strukturerede data? CSV har den fordel, at data kan let vises i et program, enten blot som tekst, eller i et regneark. Det er som sådan tilgængeligt for alle, der vil inspicere data.

CSV-format

Simpelt eksempel på et CSV-format. Hvordan er reglerne for indholdet, og hvordan fil formatet se ud, hvis der var flere biler for hver person, eller hvis man også ønsker at angive farve og registreringsnummer?

Når man ser på ovenstående problemstillinger, kommer XML virkelig til sin ret. XML er et sprog til at beskrive data, og sekvenser af data. Data kan i XML indeholde hvad som helst, så længe det overholder nogle simple regler. Dette kan jo i sig selv være godt, og er allerede her bedre end bl.a. CSV-filer, idet data i XML beskriver både start, indhold, og afslutning af data. Man ved altså, om datasættet er komplet, når man har læst det. XML er som CSV-filer tekstbaseret, og indholdet kan altså vises i en teksteditor eller i en browser.

Hvis to systemer skal udveksle data på tværs, måske mellem to afdelinger, eller eksternt mellem to firmaer, så er det ikke helt nok at man bare sender data til hinanden. Man skal også være enig om andre regler for indholdet, typen af data, rækkefølge, osv. Her tilbyder XML et sprog, hvor man kan give en mere præcis beskrivelse af indholdet. En overordnet beskrivelse af dataindholdet hedder også en metabeskrivelse, og formatet for dette indhold hedder en XSD, XML Schema Definition. Dette format er også skrevet i XML, og har naturligvis sin egen XSD!

XML Schema Definition (XSD)

En XML Schema Definition (XSD) beskriver indholdet af et XML-dokument. Bemærk at modsat CSV, så er formatet hierarkisk, og felter kan indeholde beskrivelser og regler for indhold.

World Wide Web Consortium

XML er i dag nok det absolut vigtigste format til udveksling af data mellem alle mulige løsninger på tværs af produkter og firmaer. Selve XML-formatet er ikke ejet af et firma, men af W3C, eller the World Wide Web Consortium, der er støttet af alle betydende firmaer indenfor IT. Medlemmerne tæller bl.a. Google, Apple, Microsoft, IBM, Alibaba, Adobe, for blot at nævne nogle få. Disse medlemmer arbejder for at få ensartede standarder, så man frit kan udveksle data.

Hvis du arbejder med IT, udveksling af data, opsamling af data, integration mellem forskellige systemer, så bør du som et minimum kende en lille smule til de muligheder XML giver for at standardisere data.

Mere om XML

Læs mere om XML her. Har du behov for et XML Foundation kursus eller et XML Advanced kursus?

Om forfatteren:

Povl Kvols

Povl Kvols

Povl Kvols er ekstern konsulent for Lund&Bendsen, og er tilknyttet som instruktør på to XML kurser, (XML foundation og XML advanced). Begge kurser er åbne for tilmelding.

XML

About the Author -

Povl Kvols