Open source XML-database

Exist er en tysk Java-baseret XML-database, som kan give udvikleren et indtryk af mulighederne ved at kombinere databaser med XML. Sproget til forespøgsler hedder XPath, og databasen kan benyttes via en række forskellige grænseflader.

Hvorfor XML-databaser

Når XML-datasættene hober sig op, melder der sig et behov for at gemme dem på en fornuftig måde. Men relationsdatabaser er ikke det oplagte valg til at lagre XML-data. Det er især normalisering, som er problemet i forbindelse med XML. Enten kan man normalisere sine data til element-niveau, hvorved man mister XML-strukturen, eller man kan vælge blot at putte hele datasættet ned i en celle, og så er der ikke megen fidus i at anvende en relationsdatabase i modsætning til for eksempel flade filer.

Derfor er der et behov for egentlige XML-databaser, der klarer de problemer, som databaser er sat i verden for at løse: Strukturering af store datasæt, hurtig adgang til data og mulighed for at søge. XML-databaser vil hyppigt basere sig på XPath som søgesprog i modsætning til relationsdatabasernes SQL. XPath formulerer et sprog, som benyttes til at navigere rundt i et XML-dokument på grundlag af dokumentets struktur.

Det tyske firma Software AG er den ledende kommercielle producent af XML-databaser, men der findes også open source alternativer, som kan benyttes til eksperimenter, før man kaster sig ud i større investeringer.

Wolfgang M. Meier fra Darmstadts tekniske universitet i Tyskland har udviklet en open source database, med navnet Exist, som bygger på Java i lighed med mange andre XML-implementeringer.

Test selv

Arkitekturen i Exist.

 

Indtil den seneste version af Exist har databasen bygget oven på en relationsdatabase, men i version 0.6 kan databasen benytte sit eget interne lager. Softwaren kan give en fornemmelse for mulighederne i XML-databaser og gøre udvikleren bekendt med de spørgsmål, som opstår omkring implementeringen. XML-databaser ligger nemlig langt fra den begrebsverden, som kendes fra relationsdatabaser. XPath er ikke en slags SQL, og data indsættes i basen ved at scanne elementerne i et XML-dokument - ikke ved at indsætte primitive værdier i celler.

Test selv
Man behøver ikke engang at downloade Exist for at lege lidt med XPath-udtryk og mulighederne i databasen. På Exists hjemmeside kan man teste virkningen af forskellige XPath-udtryk på eksempeldatabasen, der ganske fornemt består af et udvalg af Shakespeares stykker i XML.

Det er ikke hele XPath-specifikationen, som er implementeret i Exits 0.6, og sproget er udvidet på en række punkter. Et eksempel på en XPath-forespørgsel, hentet fra hjemmesiden, ser således ud:

document(*)//SPEECH[starts-with(SPEAKER, 'LORD')]

De to vigtigste udvidelser til XPath er funktionerne document() og collection(), som henholdsvis benyttes til at pege på et bestemt dokument eller alle dokumenter, angivet ved en asterisk som i eksemplet herover. collection() udpeger en samling af dokumenter.

Det ovenstående eksempel udpeger således alle dokumenter, som indeholder elementet SPEECH, hvor det første indlejrede element, som følger efter, er SPEAKER, og dette element skal indeholde strengen "LORD" i sin tekst-node. Det matcher for eksempel følgende datasæt:

<SPEECH exist:id ="19727" exist:source ="/shakespeare/plays/hamlet.xml" >
<SPEAKER > LORD POLONIUS </ SPEAKER >
<LINE > He hath, my lord, wrung from me my slow leave </ LINE >
<LINE > By laboursome petition, and at last </ LINE >
<LINE > Upon his will I seal'd my hard consent: </ LINE >
<LINE > I do beseech you, give him leave to go. </ LINE >
</ SPEECH >

Nemt at komme i gang

Exist kan downloades fra projektets hjemmeside, og det er ganske nemt at komme i gang med. Softwaren kræver Java Development Kit 1.3 (JDK1.3 )eller 1.4, og den er testet under Windows 2000 og nyere Linux-distributioner samt Solaris.

Softwaren kommer som en zip-fil, der pakkes ud. Softwaren kræver at JAVA_HOME-miljøvariablen er sat, og under Windows gøres det ved at åbne et DOS-vindue, og taste

set JAVA_HOME=C:\JDK1.3.1_01

hvor den sidste del skal udskiftes med stien til mappen, hvor JDK'et ligger.

Derefter køres scriptet build.bat (og der er også et tilsvarende shell-script til Unix-folket), og så er Exist parat til brug. Til at starte med kan man via et kommandolinieprogram, exist.bat (exist.sh til Unix), prøve de eksempler til henholdsvis indeksering og forespørgsler, som medfølger i dokumentationen. Kommandolinieprogrammet befinder sig i mappen bin.

Derudover kan Exist integreres på forskellige måder. En måde er grænsefladen XML:DB API til integrering i Java-applikationer, og det er udmærket dokumenteret med eksempler i den medfølgende Developer's Guide. Derudover kan man benytte XML-RPC, som er en udbredt XML-protokol, der er understøttet i mange programmeringssprog, så man er altså ikke bundet til Java. HTTP-metoderne POST og GET kan også benyttes. En sidste spændende mulighed er at benytte Exist via Cocoon, et XML-baseret webscriptingsprog, som vi tidligere har skrevet om.

Event: Computerworld Cloud & AI Festival 2026

Digital transformation | Ballerup

Eksplosiv udvikling i cloud og AI kræver overblik og viden. Computerworld samler 3.000 it-professionelle, 70+ leverandører og 120+ talere om AI, infrastruktur, data, compliance og sikkerhed. To dage med viden og netværk. Tilmeld dig nu.

16 & 17 september 2026 | Gratis deltagelse

Navnenyt fra it-Danmark

Steen Marquard,  Jabra, er pr. 15. juni 2026 udnævnt som Regional President for Norden og UK. Han er uddannet HD(O). Han beskæftiger sig med I sin nye rolle får Steen ansvar for at videreudvikle salget af virksomhedens professionelle lyd- og videoløsninger, samt styrke samarbejdet med channel teams og partnere på tværs af regionen. Udnævnelse
Trafikstyrelsen har pr. 1. maj 2026 ansat Nihad Hodzic som IT og Digitaliseringschef. Han skal især beskæftige sig med med IT-projekter og digital transformation, herunder især det strategiske løft af Trafikstyrelsens digitale niveau. Han kommer fra en stilling som Kontorchef hos Udviklings og Forenklingsstyrelsen. Han er uddannet i statskundskab og har en lederuddannelse fra MIT Sloan, samt en igangværende Master i IT-Ledelse. Han har tidligere beskæftiget sig med IT-udvikling og større projekter på momsområdet, hvor han har ledet et projekt- og udviklingskontor. Nyt job

Nihad Hodzic

Trafikstyrelsen

Pinksky ApS har pr. 1. maj 2026 ansat Dan Toft, 29 år,  som Rådgivende konsulent, Partner. Han skal især beskæftige sig med digitalisering med Microsoftplatformen. Han kommer fra en stilling som Microsoft 365 & SharePoint Specialist hos Evobis ApS. Han er uddannet datamatiker. Han har tidligere beskæftiget sig med Microsoft 365 og SharePoint udvikling. Nyt job

Dan Toft

Pinksky ApS

IFS Danmark A/S har pr. 2. marts 2026 ansat Marlene Gudman som HR Business Partner. Hun skal især beskæftige sig med HR i Danmark og Norden og lede udvalgte internationale HR-projekter. Hun kommer fra en stilling som Nordic Lead HR Business Partner hos Salesforce. Hun har tidligere beskæftiget sig med international HR med fokus på udvikling af og udfordringer i HR ud fra et forretningsperspektiv. Nyt job

Marlene Gudman

IFS Danmark A/S