try {
Object val = this.value.getNode(objectModel);
if (!(val instanceof StartElement)) {
throw new Exception("macro invocation required instead of: " + val);
}
StartElement call = (StartElement) val;
//FIXME: eval does not allow to call macro providing macro body
MacroContext newMacroContext = new MacroContext( call.getQname(), null, null );
Invoker.execute(consumer, objectModel, executionContext,
newMacroContext, namespaces, call.getNext(), call.getEndElement());
} catch (Exception exc) {
throw new SAXParseException(exc.getMessage(), getLocation(), exc);
} catch (Error err) {
throw new SAXParseException(err.getMessage(), getLocation(), new ErrorHolder(err));
}