I made initial Cocoon3 components wrapping it, perfomance to be analyzed.
XQuery external variables can be used easily and loaded from streams/URLs.
And it would be natural to use XQuery update with external variable, ala:
declare variable $x external;
for $a in $x/a
return
if( ... )
then(
insert
into collection('aaa')/a[ id = $a/id ]
)
else (
replace ...
)
It promises clear perfomance gains - parsed once in Sedna, no Java parsing-serialization.
And here comes pitty thing Sedna 3.3 doesn't supported "nested updates" - update can be only one and at the top of query. Ofcourse you can do some tricks still, but pitty.
Sedna team promises to implement XQuery update facility, but no timeline.
Anyway, I do not think this small thing will switch me to another XML DB :)