XQuery

fuksjonelt programmerings- og spørrespråk for XML

XQuery er et spørrespråk med enkel programmeringsfunksjonalitet beregnet for å gjøre spørringer mot XML-data. XQuery er semantisk likt SQL og OQL. Språket støtter visse grunnelementer fra funksjonell programmering.

XQuery 1.0 ble utviklet av World Wide Web Consortium sin arbeidsgruppe for XML Query og ble anbefalt standard i januar 2007. Arbeidet ble nært koordinert med utviklingen av XSLT 2.0, som er en lignende teknologi. XQuery 1.0 er en utvidelse av XPath 2.0.

Viktige mål for XML Query er å utvikle en fleksibel spørrefunksjonalitet for web-dokumenter slik at det blir mulig med effektiv kommunikasjon mellom World Wide Web og databaser, og slik at samlinger av XML-dokumenter kan brukes som en database.[1]

XPath rediger

XPath er et språk som brukes primært til å velge ut deler av et XML-dokument. For dette formålet modelleres XML-dokumentet som et tre av noder, og XPath kan velge noder gjennom den hierarkiske strukturen i treet. XPath er en del av XQuery 1.0 og brukes i XSLT 2.0. XPath har operatorer og funksjoner som kan brukes til å velge data på vilkår og sammenligne ulike oppføringer.[2]

FLWOR rediger

FLWOR er en betegnelse på uttrykkene som brukes i XQuery. FLWOR brukes til å gi XPath-spørringer mer funksjonalitet, for eksempel til å slå sammen sett av data (join).

  • For lager en sekvens av tupler
  • Let binder en sekvens til en variabel
  • Where filtrerer tupler på et booleansk uttrykk
  • Order by sorterer tuplene
  • Return undersøkes en gang for hvert tuppel

Eksempel rediger

   for $avd in doc("avdelinger.xml")//avdnr
   let $ans := doc("ansatte.xml")//ansatt[avdnr = $avd]
   where count($ans) >= 10
   order by avg($ans/lonn) descending
   return
     <storAvdeling>
        { $avd,
           <antallPersoner>{count($e)}</antallPersoner>,
           <snittLonn>{avg($ans/lonn)}</snittLonn>
        }
     </storAvdeling>

(Merk at '//' ikke starter en kommentar, men er en del av syntaksen)

Referanser rediger

  1. ^ XML Query (XQuery) Requirements. W3C Arbeidsgruppe-notat 23. mars 2007
  2. ^ XML Path Language (XPath) 2.0 W3C Anbefaling 23. januar 2007