code: private BeanDefinitionBuilder parseSqlQueryAction(Element element, Element scriptValidationElement, 
              List<Element> validateElements, List<Element> extractElements) {
          BeanDefinitionBuilder beanDefinition = BeanDefinitionBuilder.rootBeanDefinition(ExecuteSQLQueryAction.class);
  
          // check for script validation
          if (scriptValidationElement != null) {
              beanDefinition.addPropertyValue("scriptValidationContext", getScriptValidationContext(scriptValidationElement));
          }
          
          Map<String, List<String>> controlResultSet = new HashMap<String, List<String>>();
          for (Iterator<?> iter = validateElements.iterator(); iter.hasNext();) {
              Element validateElement = (Element) iter.next();
              Element valueListElement = DomUtils.getChildElementByTagName(validateElement, "values");
              
              if (valueListElement != null) {
                  List<String> valueList = new ArrayList<String>();
                  List<?> valueElements = DomUtils.getChildElementsByTagName(valueListElement, "value");
                  for (Iterator<?> valueElementsIt = valueElements.iterator(); valueElementsIt.hasNext();) {
                      Element valueElement = (Element) valueElementsIt.next();
                      valueList.add(DomUtils.getTextValue(valueElement));
                  }
                  controlResultSet.put(validateElement.getAttribute("column"), valueList);
              } else if (validateElement.hasAttribute("value")) {
                  controlResultSet.put(validateElement.getAttribute("column"), Collections.singletonList(validateElement.getAttribute("value")));
              } else {
                  throw new BeanCreationException(element.getLocalName(), 
                          "Neither value attribute nor value list is set for column validation: " + validateElement.getAttribute("column"));
              }
          }
          
          beanDefinition.addPropertyValue("controlResultSet", controlResultSet);
          
          Map<String, String> extractVariables = new HashMap<String, String>();
          for (Iterator<?> iter = extractElements.iterator(); iter.hasNext();) {
              Element validate = (Element) iter.next();
              extractVariables.put(validate.getAttribute("column"), validate.getAttribute("variable"));
          }
          
          beanDefinition.addPropertyValue("extractVariables", extractVariables);
          
          return beanDefinition;
      }
docs: Parses SQL query action with result set validation elements.
  @param element the root element.
  @param scriptValidationElement the optional script validation element.
  @param validateElements validation elements.
  @param extractElements variable extraction elements.
  @return