hallo ik heb het volgende probleem (vereenvoudigd weergegeven) met twee input xml files:
trefwoorden.xml
trefwoorden_informatieobjecten.xml
Deze wil ik converteren met de volgende xquery functie:
Dit lukt goed (omdat de files flink verkleind zijn) en met de volgende output:
echter bevat trefwoorden_informatieobjecten.xml al iets van 20.000 entries en trefwoorden.xml iets van 1000 entries. Nu duurt het dan ook minstens een paar uur voordat deze functie output geeft.
Kan mijn Xquery efficienter? Want moet ook op andere vlakken i.c.m. andere files nog uitgebreid gaan worden en zo wordt testen een ramp...
trefwoorden.xml
XML:
1
2
3
4
5
| <trefwoorden> <trefwoord id="8433" woord="bibliotheken"/> <trefwoord id="8439" woord="criminaliteit"/> <trefwoord id="8444" woord="energievoorziening"/> </trefwoorden> |
trefwoorden_informatieobjecten.xml
XML:
1
2
3
4
5
| <trefwoorden_informatieobjecten> <trefwoord_informatieobject trefwoord="8444" informatieobject="79927"/> <trefwoord_informatieobject trefwoord="8444" informatieobject="76192"/> <trefwoord_informatieobject trefwoord="8444" informatieobject="61253"/> </trefwoorden_informatieobjecten> |
Deze wil ik converteren met de volgende xquery functie:
XQuery:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| declare function local:trefwoorden( $d, $e ) { for $t in ($d//trefwoord) order by ($t/@id) return ( element Trefwoord { attribute woord { $t/@woord }, for $w in ($e//trefwoord_informatieobject) where ($t/@id = $w/@trefwoord) return ( element isTrefwoordVan { attribute informatieobject {$w/@informatieobject} } ) } ) }; local:trefwoorden( doc("trefwoorden.xml"), doc("trefwoorden_informatieobjecten.xml")) |
Dit lukt goed (omdat de files flink verkleind zijn) en met de volgende output:
XML:
1
2
3
4
5
| <Trefwoord woord="energievoorziening"> <isTrefwoordVan informatieobject="61253" /> <isTrefwoordVan informatieobject="76192" /> <isTrefwoordVan informatieobject="79927" /> </Trefwoord> |
echter bevat trefwoorden_informatieobjecten.xml al iets van 20.000 entries en trefwoorden.xml iets van 1000 entries. Nu duurt het dan ook minstens een paar uur voordat deze functie output geeft.
Kan mijn Xquery efficienter? Want moet ook op andere vlakken i.c.m. andere files nog uitgebreid gaan worden en zo wordt testen een ramp...