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.

Læses lige nu

    Annonce

    Forsvarets Efterretningstjeneste

    Critical Operations Technicians (ITI) søges til FE’s nye datacentre

    Københavnsområdet

    Forsknings-, Uddannelses- og Digitaliseringsministeriet

    Vil du være med at udvikle sikkerhed og compliance i CPR?

    Københavnsområdet

    Computerworld Events

    Vi samler hvert år mere end 6.000 deltagere på mere end 70 events for it-professionelle.

    Ekspertindsigt – Lyt til førende specialister og virksomheder, der deler viden om den nyeste teknologi og de bedste løsninger.
    Netværk – Mød beslutningstagere, kolleger og samarbejdspartnere på tværs af brancher.
    Praktisk viden – Få konkrete cases, værktøjer og inspiration, som du kan tage direkte med hjem i organisationen.
    Aktuelle tendenser – Bliv opdateret på de vigtigste dagsordener inden for cloud, sikkerhed, data, AI og digital forretning.

    It-løsninger | Online

    ERP Insights 2026

    Webinaret giver et samlet overblik over, hvordan ERP-landskabet ændrer sig, og hvilke arkitekturvalg der får direkte betydning for forretningens evne til at tilpasse sig.

    Sikkerhed | København

    Cyber Security Festival 2026

    Mød Danmarks skrappeste it-sikkerhedseksperter og bliv klar til at planlægge og eksekvere en operationel og effektiv cybersikkerhedsstrategi, når vi åbner dørene for +1.700 it-professionelle. Du kan glæde dig til oplæg fra mere end 80 talere og...

    It-løsninger | København

    Dynamics 365 FO: Næste niveau for data, AI og forretning

    Få overblik over vejen fra Dynamics AX til Finance & Operations – eller løft værdien af Dynamics FO. Hør praksisnære cases om strategi, migration og optimering. Vælg spor, få dyb faglig indsigt, styrk beslutningerne. Tilmeld dig konferencen i...

    Se alle vores events inden for it

    Navnenyt fra it-Danmark

    Netip A/S har pr. 1. august 2026 ansat Thomas B. Steffensen som Seniorkonsulent ved netIP's kontor i Thisted. Han kommer fra en stilling som Senior IT/OT Network Consultant hos Frontmatec. Nyt job
    Netip A/S har pr. 1. september 2026 ansat Michelle Sørensen som Operation Coordinator ved netIP's kontor i Hernng. Hun kommer fra en stilling som Koordinator hos Norlys koncernen. Nyt job

    Michelle Sørensen

    Netip A/S

    IFS Danmark A/S har pr. 1. september 2026 ansat Gustav Olsen som Business Development Representative. Gustav skal især beskæftige sig med forretningsudvikling & identificering af muligheder med fokus på AI, automatisering og optimering af forretningsprocesser. Gustav kommer fra en stilling som Business Development Specialist hos SAP Danmark A/S. Gustav er uddannet Cand.merc Sales Management. Gustav har tidligere beskæftiget sig med forretningsudvikling og salgsstrategi inden for ERP-teknologi. Nyt job

    Gustav Olsen

    IFS Danmark A/S

    Softwarevirksomheden Idura, som udvikler løsninger til digital identifikation og autentifikation, har pr. 1. august 2026 ansat Maria Binger, 44 år,  som CFO. Hun skal især beskæftige sig med den finansielle styring i takt med Iduras vækst i Danmark og internationalt med fokus på blandt andet forecasting. Hun kommer fra en stilling som Director Business Finance hos Danelec. Hun er uddannet cand.merc.aud. fra Copenhagen Business School. Hun har tidligere beskæftiget sig med finance hos Agillic, Cobham SATCOM og Saxo Bank. Nyt job

    Maria Binger

    Softwarevirksomheden Idura, som udvikler løsninger til digital identifikation og autentifikation,