The thing is that in a quick search on this I did not find a reference implementation of this to compare against.
"dsn" is only relevant when the scheme is ODBC.
In a situation where an application (like Drupal) get connect string (URI) it should be able to find the right driver to use. In case with of ODBC, a dsn (Data Source Name) is needed.