@SuppressWarnings("unchecked")
    public void parseSqlMap(String classPath) {
        Document document = null;
        Map<String, Sql> sqlMap = new HashMap<String, Sql>();
        Map<String, Map<String, String>> resultMap = new HashMap<String, Map<String, String>>();
        Map<String, String> typeAliasMap = new HashMap<String, String>();
        URL url = this.getClass().getResource(classPath);
        if (url != null) {
            try {
                document = reader.read(url);
            } catch (DocumentException e) {
                logger.error(e.getMessage());
            }
        } else {
            logger.error("*****" + classPath + ": is not find!*****");
            return;
        }

        Element sqlMapE = document.getRootElement();
        // String tableName = root.attribute("namespace").getText().trim();
        Iterator<Element> baseIt = sqlMapE.elementIterator();
        while (baseIt.hasNext()) {
            Element e = baseIt.next();
            if (e.getQName().getName().equals("select")) {
                doSelectSqlMap(e, sqlMap);
            } else if(e.getQName().getName().equals("insert")){
                doInsertSqlMap(e, sqlMap);
            } else if(e.getQName().getName().equals("update")){
                doUpdateSqlMap(e, sqlMap);
            } else if(e.getQName().getName().equals("delete")){
                doDeleteSqlMap(e, sqlMap);
            } else if (e.getQName().getName().equals("resultMap")) {
                doResultMap(e, resultMap);
            } else if (e.getQName().getName().equals("typeAlias")) {
                doTypeAliasMap(e, typeAliasMap);
            }
        }

        this.delegate.getSqlMapConfig().setSqlMap(sqlMap);
        this.delegate.getSqlMapConfig().setResultMap(resultMap);
        this.delegate.getSqlMapConfig().setTypeAliasMap(typeAliasMap);
    }