boolean needsNamespaceContext = (formatExpression != null);
NameChecker checker = exec.getConfiguration().getNameChecker();
NamespaceResolver namespaceResolver = getStaticContext().getNamespaceResolver();
for (IntIterator it=serializationAttributes.keyIterator(); it.hasNext();) {
int fp = it.next();
Expression exp = (Expression)serializationAttributes.get(fp);
if (exp instanceof StringLiteral) {
String s = ((StringLiteral)exp).getStringValue();
String lname = getNamePool().getLocalName(fp);
String uri = getNamePool().getURI(fp);
try {
ResultDocument.setSerializationProperty(localProps, uri, lname, s,
namespaceResolver, false, checker);
fixed.add(fp);
} catch (XPathException e) {
if (NamespaceConstant.SAXON.equals(e.getErrorCodeNamespace())) {
compileWarning(e.getMessage(), e.getErrorCodeLocalPart());
} else {
compileError(e);
}
}
} else {
String lname = getNamePool().getLocalName(fp);
if (lname.equals("method") || lname.equals("cdata-section-elements") ||
lname.equals("suppress-indentation")) {
needsNamespaceContext = true;
}
}
}
for (IntIterator it=fixed.iterator(); it.hasNext();) {
serializationAttributes.remove(it.next());
}
ResultDocument inst = new ResultDocument(globalProps,
localProps,
href,
formatExpression,
getBaseURI(),
validationAction,
schemaType,
serializationAttributes,
(needsNamespaceContext ? namespaceResolver : null));
Expression b = compileSequenceConstructor(exec, iterateAxis(Axis.CHILD), true);
if (b == null) {
b = new Literal(EmptySequence.getInstance());
}
inst.setContent(b);
return inst;