@Override
public List<XmlValidationError> validate() {
List<XmlValidationError> errors = new ArrayList<XmlValidationError>();
if (StringUtil.hasText(provider) && !StringUtil.hasText(dict)) {
errors.add(new XmlValidationError("select", "dict", XmlConstants.XML_TAG_EMPTY));
} else if (!StringUtil.hasText(provider) && StringUtil.hasText(dict)) {
errors.add(new XmlValidationError("select", "provider", XmlConstants.XML_TAG_EMPTY));
} else if (!(StringUtil.hasText(provider) && StringUtil.hasText(dict)) &&
// script == null &&
getValues().isEmpty() && !StringUtil.hasText(dictionaryAttribute)) {
errors.add(new XmlValidationError("select", "[dict & provider | values | dictionaryAttribute]", XmlConstants.XML_TAG_EMPTY));
// } else if (script != null) {
// errors.addAll(script.validate());
} else if (!getValues().isEmpty()) {
for (ItemElement ie : getValues()) {
errors.addAll(ie.validateElement());