Hello --
Using BaseX 10.6, the test query
let $test as xs:string := "And O Lord the pride of man, broken in the dust
again"
let $syntax1 as xs:string :=
analyze-string($test,'\p{Lu}')/(fn:match/concat('[',.,']'),fn:non-match/string())
=> string-join('')
let $syntax2 as xs:string :=
analyze-string($test,'\p{Lu}')/*/(self::fn:match/concat('[',.,']'),self::fn:non-match/string())
=> string-join('')
return ($syntax1,$syntax2)
produces
[A][O][L]nd ord the pride of man, broken in the dust again
[A]nd [O] [L]ord the pride of man, broken in the dust again
I'm surprised by this, because I expected document order to apply to the
result of analyze-string and for syntax1 to work in the sense of having the
results emerging in the same order as the input.
Have I miscomprehended something? Anyone care to have a go at explaining
why syntax1 doesn't maintain the order of the input? (I'm possibly
mistakenly confident that I understand why syntax2 does.)
Thanks!
Graydon
--
Graydon Saunders | graydonish(a)fastmail.com
Þæs oferéode, ðisses swá mæg.
-- Deor ("That passed, so may this.")