sql:connect creates a database connection. It has attributes driver, database, user, password, and auto-commit all of which are attribute value templates (so the values can be passed in as parameters).

The driver attribute names the JDBC driver class to be used. The database name must be a name that JDBC can associate with an actual database.

The auto-commit attribute, if present, should take the value "yes" or "no". This causes a call of connection.setAutoCommit() on the underlying JDBC connection.

The sql:connect instruction returns a database connection as a value, specifically a value of type "external object", which can be referred to using the type java:java.sql.Connection. Typically the value will be assigned to a variable using the construct:

<xsl:variable name="connection" as="java:java.sql.Connection" xmlns:java="http://saxon.sf.net/java-type"> <sql:connect database="jdbc:odbc:testdb" driver="sun.jdbc.odbc.JdbcOdbcDriver" xsl:extension-element-prefixes="sql"/> </xsl:variable>

This can be a global variable or a local variable; if local, it can be passed to other templates as a parameter in the normal way. The connection is used on instructions such as sql:insert and sql:query with an attribute such as connection="$connection"; the value of the connection attribute is an expression that returns a database connection object.