Variant value = expr.eval(sourceNode, context);
if (value instanceof ResultFragmentVariant) {
((ResultFragmentVariant)value).append(result);
}
else if (value.isNodeSet()) {
copyNodes(context, value.convertToNodeSet(), result);
} else {
result.characters(value.convertToString());
}
}