Hvad hulen er XML?

Efter HTML kommer XML. Her er en hurtig og let definition på hvad det er, og hvorfor det er værd at beskæftige sig med.

I HTML har mærkerne som regel noget med udseendet af dokumentet at gøre. Ord mellem <b> og </b> bliver skrevet med fed.

I XML kan man lave sine egne mærker, og proppe data imellem.

<forfatternavn>Steven Snedker</forfatternavn>
<artikeltitel>Hvad hulen er XML?</artikeltitel>

XML kan, som HTML, læses med en almindelig browser og et almindeligt tekstredigeringsprogram.

Men det nyttige er, at folk på den anden side af kloden kan hive forfatternavn og artikeltitel ud af Vertikal uden at anstrenge sig det mindste.

Hvor bor XML? <

XML kan snildt bo i et almindeligt HTML-dokument. En almindelig artikelside her på Vertikal kan sagtens indeholde den HTML som browserne (og læserne) kan lide. Og den XML som andre tjenester kan lide.

Man kan også lægge XML i egne dokumenter. Ser du på dem med din browser, ser de kedelige ud. Men vælger du vis kilde i browseren, ser de straks pænere ud. Prøv med denne cd-samling 🏛️ (åbn den i et nyt vindue med et højreklik).

"Åh nej," siger du måske. "XML er måske nok fedt, fordi programmer kan læse det. Men det ser jo ud af helvedes til. Så skal jeg både lave en HTML-version... Og så skrive det hele XML-formateret igen."

Ikke nødvendigvis. Man kan lave en formateringsfil, der bestemmer hvordan XML-filen skal præsentere sig i en vanlig browser. Tilsætter man denne formaterings-fil 🏛️ til ovenstående cd-katalog, får man noget der både er læsbart for maskiner og mennesker 🏛️. Prøv selv at se.

Men her er tre gode grunde til at holde sig fra at bruge denne formateringsmetode kaldet CSS:

  • Den er ved at blive erstattet af en anden metode, XLS 🏛️.

  • Der er ikke rigtig nogle browsere, der sommeren 2002 understøtter CSS (eller XLS) på nogen betryggende måde.

  • XML+XLS er måske nok bedre end HTML. Men det er ikke nær så lækkert som en gammeldags SQL-database (om det senere).

Sådan gør vi nu <

På Vertikal har vi en tjeneste, der aflæser antallet af indgående links til dit site. Vi kalder den for Så populær er du 🏛️. Den henter sine tal ude på søgemaskinerne.

Google siger i skrivende stund, at vertikal.dk får 322 indgående links.

Når vi hiver data ud af Google bliver vi nødt til at skrive "tag det tal (i den blå bjælke øverst) der står mellem Results 1-10 of about og . Search took"

Vi skraber skærmen.

Det er usikkert og svært. Hvad nu hvis Google laver om på layoutet? Så mister vi alt. Vi skal til at ændre i vores program.

Bruger Google i stedet et XML-mærke, <resultcount>322</resultcount> (dansk: <antalresultater>), kan de lave lige så tosset om på deres layout de ønsker. Alle der bruger deres data, får dem stadig i klokkeren kvalitet.

Hvad kan vi bruge XML til på vertikal.dk? <

Der er ikke så meget, vi kan bruge XML til på vertikal.dk. Men her er nogle eksempler:

  • Vi kan lave en liste over alle vores artikler (med forfatternavn, titel, URL, synopsis, dato osv.) og kalde den artikler.xml (du kan faktisk allerede nu se den i HTML 🏛️). Men hvem gider sætte en indholdsfortegnelse fra Vertikal.dk på deres side? Næppe mange.

  • Hvis vi et øjeblik tager os sammen og udskifter <artikeltitel>Hvad hulen er XML?</artikeltitel> med <title>Hvad hulen er XML?</title> kan vi komme med i et samarbejde hvor folk over hele verden kan proppe vores artikeltitler og URL'er på deres hjemmesider. En typisk overskrift vil være "Nyt fra vertikal.dk".

    Samarbejdet kaldes for RSS 🏛️. Det er forholdsvis udbredt og populært.

  • Al tekst, alle billeder og al lyd på vertikal.dk ligger i (SQL-)databaser og bliver skubbet ind HTML-dokumenter. Vi kunne flytte hele baduljen over i XML-dokumenter 🏛️ og så lade folk (og programmer på andre folks hjemmesider) bladre i og opstille vores data - tekst, lyd, billeder - efter behag. Via sproget/standarden XML Query 🏛️. Der er en interessant teknologidemo i et sådant projekt. Men beskeden praktisk nytteværdi.

Vertikal.dk drejer sig i væsentlig grad om at give mennesker læselig tekst og billeder. Til det brug er HTML meget velegnet. Var vi Danmarks Statistik 🏛️ eller en stor butik á la Home 🏛️ eller DPReview 🏛️ ville det være sjovere at kaste XML-dokumenter på vores server som folk kunne skrabe fra, sortere i og bruge på deres egne sider. Reglen er:

Jo flere data og jo mere attraktive de er, jo større grund er der til at bruge XML.

Hvis der kun er fem produkter, er der næppe nogen, der gider downloade din XML-datafil og lave magi med den. Mejetærskere, artikler og beskrivelser af rengøringstjenester kan heller ikke hamle op med "alle data om alle digitalkameraer i hele verden" eller "billeddatabase med 10.000 billeder", når det drejer sig om at tiltrække brugere af ens XML-formaterede data.

Og mere skal der ikke siges om XML som dataudvekslingsformat idag.

XML som dataopbevaringsformat <

Henne hos Open Office er de ved at besvime af lykke over XML. At gemme sine dokumenter som XML betyder kort sagt at de kan holde længere og bruges i flere sammenhænge 🏛️. XML er mere fremtidssikret og snakker bedre sammen med databaser end Word-dokumenter, tekstdokumenter eller hvad man eller kan finde på.

Men XML er dokumenter. Data hører ikke til i dokumenter. Data hører til i databaser. Fra databaser kan man så sætte tekster, billeder, måledata og lyde sammen til HTML, PDF- eller XML-dokumenter alt efter behov.

Databaser kan dog være lidt tunge at danse med. Det er ikke alle, der kan sætte en databaseserver op eller designe en database, der passer til deres opgave. Det er ikke alle, der kan finde programmer (eller lave websider), der kan sætte mennesker i stand til at fylde databasen med data. Derimod kan alle finde ud af at bruge et XML-redigeringsprogram 🏛️ til at skrive strukturerede data ind med. Det er også meget let og intuitivt at klistre alle filer sammen til én stor fil og så sidde og trække data ud fra den centralt - f. eks. med programmet Quip 🏛️. Skulle man endelig begynde at savne en SQL-database er vejen fra XML til SQL ikke så stenet. Med lidt eksperthjælp er det ikke umuligt at fylde XML-data på SQL-databaser 🏛️.

Er XML så kommaseparerede filer overlegne som første inddateringsformat? Ja. Det er lettere at enes om strukturen af et XML-dokument og så hælde data i det.

Er XML-redigeringssoftware så også bedre at hælde data i end Excel 🏛️? Hvis man ikke har Exel, er det billigere med XML. Har man Excel er det forholdsvis enkelt at puste data fra Excel til Access 🏛️.

Laver du dokumenter, er XML det eneste fornuftige valg. Skal du indskrive eller opbevare data kan det være nyttigt.

Men kræver du avancerede dataudtræk er relationelle databaser, SQL-databaser, at foretrække. SQL er med sine 25 år moden teknologi og værktøjerne er kraftfulde. XML træder stadig sine barnesko.

Hvad bruger I selv? <

Vi bruger ikke XML. Vi har sat en webserver (Apache) op, sat en databaseserver (MySQL) op, designet databasen (med værktøjet PHP/MyAdmin), og lavet et skræddersyet webinterface (med scriptsproget PHP)til at hælde data i databasen.

Det har taget hundredevis af timer og krævet ekspertise! Til gengæld kan vi proppe data i den centrale database via enhver browser på en Internet-forbunden maskine. Og vi kan trække dem ud på meget avancerede måder. Se f. eks.

Alle vore værktøjer er solide, resultatet af mange udviklingsår, afprøvede og gratis. Havde vi ikke været kræsne, kunne vi have downloadet et gratis publiceringssystem og været i gang på 5-6 timer.

Jeg har sommeren 2002 endnu ikke set en dansk XML-succeshistorie. Men jeg kan forestille mig, at XML er udmærket i rollen som kommasepareret fil på syre. Til enkle opgaver.

Der findes et Dansk XML-forum 🏛️. Efter at have fulgt 20 links fandt jeg én (1) demo, der angiveligt skulle vise XMLs nytte 🏛️. Demoen viser, at man kan lave en printervenlig udgave ved at ændre på formateringen af sidens data. Det er hverken unikt eller fantastisk eller et argument for at bruge XML. Det kan alle databasebaserede publiceringssystemer.

XML (og SOAP og .Net og Java og...) ser i høj grad ud til at bruges 90% til blændværk og stillen af nørdnysgerrighed og 10% til at lave løsninger, der rent faktisk er hurtigere at udvikle, mere stabile, mere skalérbare og billigere for kunden end en SQL-databasebaseret løsning.

XML er nyttig når den bruges som erstatning for skærmskrabning 🏛️, altså deling af data med folk man ikke vil have til at sidde og lege direkte med ens database. Det er vist også hvad Software AG siger på en indviklet måde 🏛️.

Hvad er dine erfaringer med XML? <

De to seneste XML-benyttende projekter, jeg har deltaget i, har heller ikke brugt XML til noget særligt.

I det ene, et publiceringssystem, gemte vi artiklerne i XML. I forhold til Vertikals publiceringssystem gav det cirka 400% flere <mærker> inde i den tekst, brugerne skulle redigere i. Og mange flere fejlmeddelelser. Flere <mærker>, flere fejl, flere fejlmeddelelser. Det var artikler, der kun skulle bruges ét sted og publiceres af ét publiceringssystem. Gråspurve med kanoner.

I det andet projekt skulle vi gemme en crawle- og skærmskrabe-opskrift til en søgerobot (nej, kunden var ikke heltene fra Newsbooster 🏛️). Opskrifterne blev gemt som XML-dokumenter. Hvorfor ikke i SQL-tabeller i en database? Tja. SQL er ikke så stærkt et salgsargument som XML. XML er officielt "næste generation webservices", "standard", "fremtidssikret" og - uofficielt - "noget der imponerer kunderne". Før du lader dig imponere, så se lige til XMLsucks.org 🏛️. Det eneste sted, der tør sige, hvor mange klæder kejseren har på.

Hvad kan jeg ellers bruge XML til? <

Er du sikker på, at du virkelig vil vide, hvad kan jeg ellers bruge XML til? Lad være. Det er helt klart lettest hvis du tænker på det som dataudveksling og dataopbevaring.

Men lad gå.

Som vi har set, var det dumt at skrive <artikeltitel>Hvad hulen er XML?</artikeltitel> når tusinder af andre mennesker har et system kørende hvor det hedder <title>Hvad hulen er XML?</title>. Rundt omkring på nettet (altså i verden) sidder folk og forsøger at finde på standarder for <mærker>. "Lad os kalde det samme. Så kan vi bruge hinandens data let og ubesværet," lyder den gode idé:

Man har fundet på Dublin Core 🏛️ for at have en fælles terminologi for hvad der nu er i dokumenter. Det kan udtrykkes på XMLsk 🏛️.

Man har fundet på XML Namespaces 🏛️ for at undgå konflikter. Man kan med en URL fortælle at man i sine XML-dokumenter mener "navn, som i forfatternavn (se [URL])" eller "navn, som i deltagernavn (se [URL])".

Man har fundet på XML Schemas 🏛️ for at dokumentere indholdet af XML-dokumenterne (Eisenbergers eksempel er ganske pædagogisk).

Man har fundet på SOAP, en måde programmer kan kalde hinanden på ved at smide XML-dokumenter i hovedet på hinanden. Se f. eks. denne (sporadisk fungerende) demo med en webtjeneste, der kalder Google.

Det er ikke din skyld, at det er så indviklet. Strukturerede tekstformater kan bruges til mange ting.

Yderligere læsning ude i verden <

XMLsucks.org 🏛️. Det eneste sted, der tør sige, at det er for svært og for umodent at hoppe ud i.

Godt XML-eksempel: Amazon Light. Alle butikker burde håbe på at folk gratis ville lave og drive udstillingsvinduer for dem.

Som om du ikke havde software nok i forvejen: en liste over XML-relateret software. XMLEditPro kan gå an.

Om XML og databaser

Et pædagogisk (og desværre forældet) lysbilledforedrag fra IBM, der handler om hvordan man kommer i gang med at skrive XML. I de fleste tilfælde vil det dog være mere fremtidssikret at fylde i en relationel database. Jeg kom til samme konklusion efter at have læst Sådan bruger du XML.

XML.com er et af de bedst opdaterede steder om XML og dets mange og glimtvis nyttige anvendelsesmuligheder.

XML i det offentlige er godt <

Offentlig Information Online, OIO, er det hidtil mest lovende danske XML-initiativ, jeg har set.

Datakommunikationen imellem forskellige IT-systemer er i dag vanskeliggjort af uensartede systemer og dataformer. Dette betyder, at det er vanskeligt at søge samt udveksle data mellem systemer.

Med XML som fælles offentlig standard sikres dels, at data som skabes, behandles og udveksles i den offentlige sektor, lettere end i dag kan overføres på tværs i den offentlige sektor, og dels sikres maksimal genanvendelse af allerede indsamlede data. Dermed understøtter XML standarden ikke alene i effektiviseringsgevinster, men også kvalitetsforbedringer til gavn for både medarbejdere, virksomheder og borgere.

Alle webansvarlige i offentlige virksomheder burde læse XML-kogebogen fra OIO. Det er et yderst prisværdigt mål at gøre det muligt for de offentlige sider at krydsbefrugte hinanden.

Med XML vil nyttige tjenester som Pressroom og Blogbot (der begge hænger på skærmskrabning) være meget lettere at udvikle og meget billigere i drift.

Er du webansvarlig i det offentlige må du endelig se på OIO (og RSS 🏛️ for at se en aktualiseret succes).

Anbefaling <

XML er værd at beskæftige sig med. Download et værktøj. Prøv det af. Find nogen at tale med om det. Men husk at det er umoden teknologi.

Har du konkrete opgaver, hjælper vi gerne.

Har vi på Vertikal noget data/indhold, du gerne vil have leveret i XML, så skriv.

Vi sælger skamløst viden og assistance vedrørende