StringTemplateParser expressionCompiler = parsingContext.getStringTemplateParser();
this.var = expressionCompiler.compileExpr(attrs.getValue("var"), null, locator);
this.varStatus = expressionCompiler.compileExpr(attrs.getValue("varStatus"), null, locator);
this.begin = expressionCompiler.compileInt(attrs.getValue("begin"), name, locator);
this.end = expressionCompiler.compileInt(attrs.getValue("end"), name, locator);
this.step = expressionCompiler.compileInt(attrs.getValue("step"), name, locator);
if (items == null) {
if (select == null && (begin == null || end == null)) {
throw new SAXParseException("forEach: \"select\", \"items\", or both \"begin\" and \"end\" must be specified",
locator, null);