Hopp til innhold

XQuery

Fra Wikipedia, den frie encyklopedi

XQueryer etspørrespråkmed enkel programmeringsfunksjonalitet beregnet for å gjøre spørringer motXML-data. XQuery ersemantiskliktSQLogOQL.Språket støtter visse grunnelementer fra funksjonellprogrammering.

XQuery 1.0 ble utviklet avWorld Wide Web Consortiumsin arbeidsgruppe for XML Query og ble anbefalt standard i januar 2007. Arbeidet ble nært koordinert med utviklingen avXSLT2.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 mellomWorld Wide Webogdatabaser,og slik at samlinger av XML-dokumenter kan brukes som en database.[1]

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 iXSLT2.0. XPath har operatorer og funksjoner som kan brukes til å velge data på vilkår og sammenligne ulike oppføringer.[2]

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).

  • Forlager en sekvens av tupler
  • Letbinder en sekvens til en variabel
  • Wherefiltrerer tupler på et booleansk uttrykk
  • Order bysorterer tuplene
  • Returnundersøkes en gang for hvert tuppel
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)

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