Thanks, Jonathan, for the code snippet.
> replace value of node $ketiv/@type with fn:string-join(($ketiv/@type, "x-ketiv"), " ")
This statement should be completely safe, no matter which options you
have set. If you want to avoid if/then/else, you can also do the
following (but it’s not much shorter):
delete node $ketiv/@type,
insert node attribute type { string-join(($ketiv/@type, "x-ketiv"),
" ") } into $ketiv