if(StringHelper.isBlank(sourceSql)) throw new IllegalArgumentException("sourceSql must be not empty");
String beforeProcessedSql = beforeParseSql(sourceSql);
// String unscapedSourceSql = StringHelper.unescapeXml(beforeProcessedSql);
String namedSql = SqlParseHelper.convert2NamedParametersSql(beforeProcessedSql,":","");
ParsedSql parsedSql = NamedParameterUtils.parseSqlStatement(namedSql);
String executeSql = new BasicSqlFormatter().format(NamedParameterUtils.substituteNamedParameters(parsedSql));
Sql sql = new Sql();
sql.setSourceSql(sourceSql);
sql.setExecuteSql(executeSql);