// in all cases: or perhaps to a variant of string() that maps () to (). This would
// enable further optimizations.
SystemFunction fn = (SystemFunction)SystemFunction.makeSystemFunction(
"string", new Expression[]{new ContextItemExpression()});
fn.setContainer(getContainer());
ForEach map = new ForEach(nodeExp, fn, false);
map.setContainer(getContainer());
return map;
} else {
SystemFunction fn = (SystemFunction)SystemFunction.makeSystemFunction(
"string", new Expression[]{nodeExp});
fn.setContainer(getContainer());