protected List<RwsAttribute> parseAttributes(List<Element> elements) {
        if (elements == null || elements.size() == 0) {
            return null;
        }
        List<RwsAttribute> rwsAttributes = new Vector<RwsAttribute>();
        for (Element ele : elements) {
            RwsAttribute rwsAttribute = new RwsAttribute();
            rwsAttribute.name = DatatypeHelper.safeTrimOrNullString(ele.getAttributeNS(null, "name"));
    log.debug("parseattribute: " + rwsAttribute.name);
            rwsAttribute.xPath = DatatypeHelper.safeTrimOrNullString(ele.getAttributeNS(null, "xPath"));
            rwsAttribute.maxResultSize = 1;
            if (ele.hasAttributeNS(null, "maxResultSize")) {
                   rwsAttribute.maxResultSize = Integer.parseInt(ele.getAttributeNS(null, "maxResultSize"));
            }
            boolean noResultsIsError = false;
            if (ele.hasAttributeNS(null, "noResultIsError")) {
                   rwsAttribute.noResultIsError = XMLHelper.getAttributeValueAsBoolean(ele.getAttributeNodeNS(null, "noResultIsError"));
            }
            rwsAttributes.add(rwsAttribute);
        }
        return rwsAttributes;
    }