com.ddtek.xquery3.xqj
Class DDXQDataSource

java.lang.Object
  extended bycom.ddtek.xquery3.xqj.DDXQDataSource
All Implemented Interfaces:
Externalizable, Referenceable, Serializable, XQDataSource

public class DDXQDataSource
extends Object
implements XQDataSource, Externalizable, Referenceable

DDXQ implementation of XQDataSource.

See Also:
Serialized Form

Field Summary
static String ALLOWJAVAFUNCTIONS
           
static String BASEURI
          property names
static String COLLATION
           
static String COLLECTIONURIRESOLVER
           
static String DOCUMENTURIRESOLVER
           
static String JDBCISOLATIONLEVEL
           
static String JDBCNAME
           
static String JDBCOPTIONS
           
static String JDBCSQLXMLFOREST
           
static String JDBCSQLXMLIDENTIER
           
static String JDBCTEMPTABLECOLUMNS
           
static String JDBCTEMPTABLESUFFIX
           
static String JDBCURL
           
static String MAXPOOLEDQUERIES
           
static String MODULEURIRESOLVER
           
static String MULTIVALUE_ADAPTERS
           
static String OPTIONS
           
static String PASSWORD
           
static String SPYATTRIBUTES
           
static String USER
           
 
Constructor Summary
DDXQDataSource()
          Creates new DDXQDataSource, merely used for Externalizability.
DDXQDataSource(InputStream configuration)
          Creates new DDXQDataSource using the supplied configuration file.
DDXQDataSource(String valuePairs)
          Creates new DDXQDataSource using the supplied key value pair with all the datasource options.
 
Method Summary
 String getBaseUri()
          Get the default BaseUri.
 String getCollation()
          Get the default Collation.
 String getCollectionUriResolver()
          Gets the default CollectionUriResolver.
 XQConnection getConnection()
          XQuery standard methods *
 XQConnection getConnection(Connection con)
          Attempts to create a connection to an XML datasource using an existing JDBC connection.
 XQConnection getConnection(String username, String passwd)
          Attempts to establish a connection to an XML datasource using the supplied username and password.
 DDXQJDBCConnection[] getDdxqJdbcConnection()
           
 DDXQJDBCConnection getDdxqJdbcConnection(int position)
          Returns the DDXQJDBCConnection at the specified position.
 String getDocumentUriResolver()
          Get the default DocumentUriResolver.
 int getJdbcAdapters()
          Get the number of adapters defined in this datasource
 String getJdbcName()
          Get the JdbcName of the first SQL Adapter.
 String getJdbcOptions()
          Get the JdbcOption for the first SQL Adapter.
 boolean getJdbcSqlXmlForest()
          Gets the forest property specifies the format of the XML result that fn:collection() returns of the first SQL Adapter.
 String getJdbcSqlXmlIdentifierEscaping()
          Gets the property controls how DataDirect XQuery handles escaping of identifiers, which is needed because of mismatches that occur when characters in SQL identifiers are mapped to XML of the first SQL Adapter.
 String getJdbcTempTableColumns()
          Gets the string representation of the temp table column-type pairs, or null if not set of the first SQL addapter.
 String getJdbcTempTableSuffix()
          Gets the prefix used for temp tables of the first SQL adapter.
 int getJdbcTransactionIsolationLevel()
          Gets the transaction isolation level, one of the following values:
 String getJdbcUrl()
          Get the JdbcUrl for connecting to the first SQL Adapter.
 int getLoginTimeout()
          Gets the maximum time in seconds that this datasource can wait while attempting to connect to a database.
 PrintWriter getLogWriter()
          Retrieves the log writer for this XQDataSource object.
 int getMaxPooledQueries()
           
 String getModuleUriResolver()
          Get the default ModuleUriResolver.
 String getOptions()
          Get the options.
 String getPassword()
          Get the password.
 String getProperty(String name)
          Returns the current value of the named property if set, else null.
 Reference getReference()
           
 String getSpyAttributes()
           
 String[] getSupportedPropertyNames()
          Returns an array containing the property names supported by this XQDataSource.
 String getUser()
          Get the user name.
 boolean isAllowJavaFunctions()
           
 void readExternal(ObjectInput in)
           
 void setAllowJavaFunctions(boolean allowJavaFunctions)
           
 void setBaseUri(String baseUri)
          Set the default BaseUri.
 void setCollation(String collation)
          Set the default Collation.
 void setCollectionUriResolver(String collectionUriResolver)
          Sets the default CollectionUriResolver.
 void setCommonHandler(XQCommonHandler hdlr)
          Sets the default common handler to be used for converting items to and from Java objects in the getObject methods on an item.
 void setDdxqJdbcConnection(DDXQJDBCConnection[] ddxqJdbcConnection)
           
 void setDdxqJdbcConnection(int position, DDXQJDBCConnection ddxqJdbcConnection)
          Sets the DDXQJdbcConnection at the specified position.
 void setDocumentUriResolver(String documentUriResolver)
          Set the default DocumentURIResolver.
 void setJdbcName(String jdbcName)
          Set the Jdbcname for the first SQL Adapter.
 void setJdbcOptions(String jdbcOption)
          Set the JdbcOptions string for the first SQL Adapter.
 void setJdbcSqlXmlForest(boolean forest)
          Sets the forest property specifies the format of the XML result that fn:collection() returns of the first SQL Adapter.
 void setJdbcSqlXmlIdentifierEscaping(String mapping)
          Sets the property controls how DataDirect XQuery handles escaping of identifiers, which is needed because of mismatches that occur when characters in SQL identifiers are mapped to XML of the first SQL Adapter.
 void setJdbcTempTableColumns(String jdbcOption)
          Set the string representation of the temp table column-type pairs of the first SQL adapter.
 void setJdbcTempTableSuffix(String jdbcOption)
          Set the prefix used for temp tables of the first SQL adapter.
 void setJdbcTransactionIsolationLevel(int level)
          Sets the transaction isolation level, one of the following values: java.sql.Connection.TRANSACTION_READ_UNCOMMITTED java.sql.Connection.TRANSACTION_READ_COMMITTED java.sql.Connection.TRANSACTION_REPEATABLE_READ java.sql.Connection.TRANSACTION_SERIALIZABLE
 void setJdbcUrl(String jdbcUrl)
          Set the JdbcUrl for the first SQL Adapter.
 void setLoginTimeout(int seconds)
          Sets the maximum time in seconds that this datasource will wait while attempting to connect to a database.
 void setLogWriter(PrintWriter out)
          Sets the log writer for this XQDataSource object to the given java.io.PrintWriter object.
 void setMaxPooledQueries(int maxPooledQueries)
           
 void setModuleUriResolver(String moduleUriResolver)
          Set the default ModuleURIResolver.
 void setOptions(String options)
          Set the options
 void setPassword(String password)
          Set the password.
 void setProperties(Properties props)
          Sets the data source properties from the specified Properties instance.
 void setProperty(String name, String value)
          Sets the named property to the specified value.
 void setSpyAttributes(String spyAttributes)
           
 void setUser(String user)
          Set the user name.
 void writeConfiguration(OutputStream os)
          Saves this DDXQDataSource to an outputStream which can later be used with the constructor.
 void writeExternal(ObjectOutput out)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

BASEURI

public static final String BASEURI
property names

See Also:
Constant Field Values

JDBCURL

public static final String JDBCURL
See Also:
Constant Field Values

JDBCNAME

public static final String JDBCNAME
See Also:
Constant Field Values

JDBCOPTIONS

public static final String JDBCOPTIONS
See Also:
Constant Field Values

COLLATION

public static final String COLLATION
See Also:
Constant Field Values

OPTIONS

public static final String OPTIONS
See Also:
Constant Field Values

SPYATTRIBUTES

public static final String SPYATTRIBUTES
See Also:
Constant Field Values

DOCUMENTURIRESOLVER

public static final String DOCUMENTURIRESOLVER
See Also:
Constant Field Values

MODULEURIRESOLVER

public static final String MODULEURIRESOLVER
See Also:
Constant Field Values

COLLECTIONURIRESOLVER

public static final String COLLECTIONURIRESOLVER
See Also:
Constant Field Values

MAXPOOLEDQUERIES

public static final String MAXPOOLEDQUERIES
See Also:
Constant Field Values

ALLOWJAVAFUNCTIONS

public static final String ALLOWJAVAFUNCTIONS
See Also:
Constant Field Values

USER

public static final String USER
See Also:
Constant Field Values

PASSWORD

public static final String PASSWORD
See Also:
Constant Field Values

JDBCSQLXMLFOREST

public static final String JDBCSQLXMLFOREST
See Also:
Constant Field Values

JDBCSQLXMLIDENTIER

public static final String JDBCSQLXMLIDENTIER
See Also:
Constant Field Values

JDBCISOLATIONLEVEL

public static final String JDBCISOLATIONLEVEL
See Also:
Constant Field Values

JDBCTEMPTABLESUFFIX

public static final String JDBCTEMPTABLESUFFIX
See Also:
Constant Field Values

JDBCTEMPTABLECOLUMNS

public static final String JDBCTEMPTABLECOLUMNS
See Also:
Constant Field Values

MULTIVALUE_ADAPTERS

public static final String MULTIVALUE_ADAPTERS
See Also:
Constant Field Values
Constructor Detail

DDXQDataSource

public DDXQDataSource()
Creates new DDXQDataSource, merely used for Externalizability.


DDXQDataSource

public DDXQDataSource(InputStream configuration)
               throws XQException
Creates new DDXQDataSource using the supplied configuration file.

Throws:
XQueryException
XQException

DDXQDataSource

public DDXQDataSource(String valuePairs)
               throws XQException
Creates new DDXQDataSource using the supplied key value pair with all the datasource options.

Throws:
XQueryException
XQException
Method Detail

setBaseUri

public void setBaseUri(String baseUri)
Set the default BaseUri.

Parameters:
baseUri - the default BaseUri or null if none

getBaseUri

public String getBaseUri()
Get the default BaseUri.

Returns:
the default BaseUri, or null to clear.

getJdbcAdapters

public int getJdbcAdapters()
Get the number of adapters defined in this datasource

Returns:

setJdbcUrl

public void setJdbcUrl(String jdbcUrl)
Set the JdbcUrl for the first SQL Adapter.

Parameters:
jdbcUrl - the JdbcUrl for connecting to the first SQL Adapter or null if none

getJdbcUrl

public String getJdbcUrl()
Get the JdbcUrl for connecting to the first SQL Adapter.

Returns:
the JdbcUrl for connecting to the first SQL Adapter, or null if not set.

setJdbcName

public void setJdbcName(String jdbcName)
Set the Jdbcname for the first SQL Adapter.

Parameters:
jdbcName - the JdbcName for connecting to the first SQL Adapter or null if none

getJdbcName

public String getJdbcName()
Get the JdbcName of the first SQL Adapter.

Returns:
the JdbcName of the first SQL Adapter

setJdbcOptions

public void setJdbcOptions(String jdbcOption)
                    throws XQException
Set the JdbcOptions string for the first SQL Adapter.

Parameters:
jdbcOption - the JdbcOption for the first SQL Adapter or null if none
Throws:
XQException

getJdbcOptions

public String getJdbcOptions()
Get the JdbcOption for the first SQL Adapter.

Returns:
the JdbcOptions for the first SQL Adapter, or null if not set.

setJdbcTempTableSuffix

public void setJdbcTempTableSuffix(String jdbcOption)
                            throws XQException
Set the prefix used for temp tables of the first SQL adapter.

Throws:
XQException

getJdbcTempTableSuffix

public String getJdbcTempTableSuffix()
Gets the prefix used for temp tables of the first SQL adapter.

Returns:
the prefix of temp tables.

setJdbcTempTableColumns

public void setJdbcTempTableColumns(String jdbcOption)
                             throws XQException
Set the string representation of the temp table column-type pairs of the first SQL adapter.

Throws:
XQException

getJdbcTempTableColumns

public String getJdbcTempTableColumns()
Gets the string representation of the temp table column-type pairs, or null if not set of the first SQL addapter.

Returns:
Throws:
XQException

setCollation

public void setCollation(String collation)
Set the default Collation.

Parameters:
collation - the name of the default Collation.

getCollation

public String getCollation()
Get the default Collation.

Returns:
the default Collation.

setOptions

public void setOptions(String options)
                throws XQException
Set the options

Throws:
XQException - when the option value has the wrong format.

getOptions

public String getOptions()
Get the options.

Returns:
the string representation of the options, or null if not set

setUser

public void setUser(String user)
Set the user name.

Parameters:
user - the name of the user used to connect to all SQL adapters.

getUser

public String getUser()
Get the user name.

Returns:
the name of the user used to connect to all SQL adapters.

setPassword

public void setPassword(String password)
Set the password.

Parameters:
password - the password used to connect to all SQL adapters.

getPassword

public String getPassword()
Get the password.

Returns:
the password used to connect to all SQL adapters.

setDocumentUriResolver

public void setDocumentUriResolver(String documentUriResolver)
Set the default DocumentURIResolver.


getDocumentUriResolver

public String getDocumentUriResolver()
Get the default DocumentUriResolver.

Returns:
the default DocumentUriResolver, or null if not set

setModuleUriResolver

public void setModuleUriResolver(String moduleUriResolver)
Set the default ModuleURIResolver.


getModuleUriResolver

public String getModuleUriResolver()
Get the default ModuleUriResolver.

Returns:
the default ModuleUriResolver, or null if not set

isAllowJavaFunctions

public boolean isAllowJavaFunctions()
Returns:
Returns the allowJavaFunctions.

setAllowJavaFunctions

public void setAllowJavaFunctions(boolean allowJavaFunctions)
Parameters:
allowJavaFunctions - the allowJavaFunctions to set.

getMaxPooledQueries

public int getMaxPooledQueries()
Returns:
Returns the maxPooledQueries.

setMaxPooledQueries

public void setMaxPooledQueries(int maxPooledQueries)
Parameters:
maxPooledQueries - the maxPooledQueries to set.

getSpyAttributes

public String getSpyAttributes()
Returns:
Returns the spyAttributes.

setSpyAttributes

public void setSpyAttributes(String spyAttributes)
Parameters:
spyAttributes - the spyAttributes to set.

setDdxqJdbcConnection

public void setDdxqJdbcConnection(DDXQJDBCConnection[] ddxqJdbcConnection)
Parameters:
ddxqJdbcConnection - the Array of DDXQJdbcConnections

setDdxqJdbcConnection

public void setDdxqJdbcConnection(int position,
                                  DDXQJDBCConnection ddxqJdbcConnection)
Sets the DDXQJdbcConnection at the specified position.

Parameters:
position - the position to store the DDXQJDBCConnection at
ddxqJdbcConnection - the DDXQJDBCConnection to be stored at the specified position
Throws:
IndexOutOfBoundsException - if position is out of range

getDdxqJdbcConnection

public DDXQJDBCConnection[] getDdxqJdbcConnection()
Returns:
the array of DDXQJDBCConnections.

getDdxqJdbcConnection

public DDXQJDBCConnection getDdxqJdbcConnection(int position)
Returns the DDXQJDBCConnection at the specified position.

Parameters:
position - the position of the DDXQJDBCConnection to return.
Returns:
the DDXQJDBCConnection at the specified position.
Throws:
IndexOutOfBoundsException - when the position is out of range.

getCollectionUriResolver

public String getCollectionUriResolver()
Gets the default CollectionUriResolver.

Returns:
the default CollectionUriResolver, or null if not set

setCollectionUriResolver

public void setCollectionUriResolver(String collectionUriResolver)
Sets the default CollectionUriResolver. A Java class that implements the com.ddtek.xquery.CollectionURIResolver interface to resolve URIs in fn:collection(). For example, you may want to create a Java class to resolve custom URLs that point to a proprietary repository that stores your XML documents such as an XML database.

Parameters:
collectionUriResolver - the default CollectionUriResolver or null if none

setJdbcSqlXmlForest

public void setJdbcSqlXmlForest(boolean forest)
Sets the forest property specifies the format of the XML result that fn:collection() returns of the first SQL Adapter. Valid values are true and false. The default is true.


getJdbcSqlXmlForest

public boolean getJdbcSqlXmlForest()
Gets the forest property specifies the format of the XML result that fn:collection() returns of the first SQL Adapter.

Returns:
the forest property of the first SQL Adapter

setJdbcSqlXmlIdentifierEscaping

public void setJdbcSqlXmlIdentifierEscaping(String mapping)
Sets the property controls how DataDirect XQuery handles escaping of identifiers, which is needed because of mismatches that occur when characters in SQL identifiers are mapped to XML of the first SQL Adapter. Valid values are: none: No mapping is performed. An error is raised if a character in a SQL identifier cannot be mapped to XML. partial: Characters in SQL identifiers, except for colons ( : ), that are not XML characters are escaped using 'x'0 followed by the character�s Unicode representation in hexadecimal format. For example, "comp_plan" becomes comp_x005F_plan and "dept:id" becomes dept:id. full: All non-XML characters, including colons ( : ), are escaped in the SQL identifier name. For example, "dept:id" becomes dept_x003A_id. This setting also escapes names beginning with the characters "xml" The default mapping is full.

Parameters:
mapping - of how escaping of identifiers is handled.

getJdbcSqlXmlIdentifierEscaping

public String getJdbcSqlXmlIdentifierEscaping()
Gets the property controls how DataDirect XQuery handles escaping of identifiers, which is needed because of mismatches that occur when characters in SQL identifiers are mapped to XML of the first SQL Adapter.

Returns:
the mapping of how escaping of identifiers is handled

setJdbcTransactionIsolationLevel

public void setJdbcTransactionIsolationLevel(int level)
Sets the transaction isolation level, one of the following values: java.sql.Connection.TRANSACTION_READ_UNCOMMITTED java.sql.Connection.TRANSACTION_READ_COMMITTED java.sql.Connection.TRANSACTION_REPEATABLE_READ java.sql.Connection.TRANSACTION_SERIALIZABLE

Parameters:
level - the transaction isolation level.

getJdbcTransactionIsolationLevel

public int getJdbcTransactionIsolationLevel()
Gets the transaction isolation level, one of the following values:

Returns:
the transaction isolation level.

getConnection

public XQConnection getConnection()
                           throws XQException
XQuery standard methods *

Specified by:
getConnection in interface XQDataSource
Returns:
a connection to the XML datasource
Throws:
XQException - if a datasource access error occurs

getConnection

public XQConnection getConnection(Connection con)
                           throws XQException
Description copied from interface: XQDataSource
Attempts to create a connection to an XML datasource using an existing JDBC connection. An XQJ implementation is not required to support this method. If it is not supported, then an exception (XQException) is thrown. The XQJ and JDBC connections will operate under the same transaction context.

Specified by:
getConnection in interface XQDataSource
Parameters:
con - an existing JDBC connection
Returns:
a connection to the XML datasource
Throws:
XQException - if (1) a datasource access error occurs, or (2) the implementation does not support this method of getting an XQConnection

getConnection

public XQConnection getConnection(String username,
                                  String passwd)
                           throws XQException
Description copied from interface: XQDataSource
Attempts to establish a connection to an XML datasource using the supplied username and password.

Specified by:
getConnection in interface XQDataSource
Parameters:
username - the user on whose behalf the connection is being made
passwd - the user's password
Returns:
a connection to the XML datasource
Throws:
XQException - if a datasource access error occurs

getLoginTimeout

public int getLoginTimeout()
                    throws XQException
Description copied from interface: XQDataSource
Gets the maximum time in seconds that this datasource can wait while attempting to connect to a database. A value of zero means that the timeout is the default system timeout if there is one; otherwise, it means that there is no timeout. When a XQDataSource object is created, the login timeout is initially zero. It is implementation-defined whether the returned login timeout is actually used by the data source implementation.

Specified by:
getLoginTimeout in interface XQDataSource
Returns:
the datasource login time limit
Throws:
XQException - if a datasource access error occurs

getLogWriter

public PrintWriter getLogWriter()
                         throws XQException
Description copied from interface: XQDataSource
Retrieves the log writer for this XQDataSource object. The log writer is a character output stream to which all logging and tracing messages for this datasource will be printed. This includes messages printed by the methods of this object, messages printed by methods of other objects manufactured by this object, and so on. When a XQDataSource object is created, the log writer is initially null; in other words, the default is for logging to be disabled.

Specified by:
getLogWriter in interface XQDataSource
Returns:
the log writer for this datasource or null if logging is disabled
Throws:
XQException - if a datasource access error occurs

getSupportedPropertyNames

public String[] getSupportedPropertyNames()
Description copied from interface: XQDataSource
Returns an array containing the property names supported by this XQDataSource. Implementations that support user name and password must recognize the user name and password properties listed below.

user the user name to use for creating a connection
password the password to use for creating a connection

Any additional properties are implementation-defined.

Specified by:
getSupportedPropertyNames in interface XQDataSource
Returns:
String[] an array of property names supported by this implementation

setProperty

public void setProperty(String name,
                        String value)
                 throws XQException
Description copied from interface: XQDataSource
Sets the named property to the specified value. If a property with the same name was already set, then this method will override the old value for that property with the new value.

If the implementation does not support the given property or if it can determine that the value given for this property is invalid, then an exception is thrown. If an exception is thrown, then no previous value is overwritten.

Specified by:
setProperty in interface XQDataSource
Parameters:
name - the name of the property to set
value - the value of the named property
Throws:
XQException - if (1) the given property is not recognized, or (2) the value for the given property is determined to be invalid

getProperty

public String getProperty(String name)
                   throws XQException
Description copied from interface: XQDataSource
Returns the current value of the named property if set, else null. If the implementation does not support the given property then an exception is raised.

Specified by:
getProperty in interface XQDataSource
Parameters:
name - the name of the property whose value is needed
Returns:
String representing the value of the required property if set, else null
Throws:
XQException - if a given property is not supported

setProperties

public void setProperties(Properties props)
                   throws XQException
Description copied from interface: XQDataSource
Sets the data source properties from the specified Properties instance. Properties set before this call will still apply but those with the same name as any of these properties will be replaced. Properties set after this call also apply and may replace properties set during this call.

If the implementation does not support one or more of the given property names, or if it can determine that the value given for a specific property is invalid, then an exception is thrown. If an exception is thrown, then no previous value is overwritten. is invalid, then an exception is raised.

Specified by:
setProperties in interface XQDataSource
Parameters:
props - the list of properties to set
Throws:
XQException - if (1) a given property is not recognized, or (2) the value for a given property is determined to be invalid

setCommonHandler

public void setCommonHandler(XQCommonHandler hdlr)
                      throws XQException
Description copied from interface: XQDataSource
Sets the default common handler to be used for converting items to and from Java objects in the getObject methods on an item. An XQJ implementation is not required to support this method. If it is not supported, then an exception (XQException) is thrown.

Specified by:
setCommonHandler in interface XQDataSource
Parameters:
hdlr - the XQCommonHandler to use
Throws:
XQException - if this method is not supported by the implementation
See Also:
XQItemAccessor.getObject

setLoginTimeout

public void setLoginTimeout(int seconds)
                     throws XQException
Description copied from interface: XQDataSource
Sets the maximum time in seconds that this datasource will wait while attempting to connect to a database. A value of zero specifies that the timeout is the default system timeout if there is one; otherwise, it specifies that there is no timeout. When a XQDataSource object is created, the login timeout is initially zero. It is implementation-defined whether the specified login timeout is actually used by the data source implementation. If the connection is created over an existing JDBC connection, then the login timeout value from the underlying JDBC connection may be used.

Specified by:
setLoginTimeout in interface XQDataSource
Parameters:
seconds - the datasource login time limit
Throws:
XQException - if a datasource access error occurs

setLogWriter

public void setLogWriter(PrintWriter out)
                  throws XQException
Description copied from interface: XQDataSource
Sets the log writer for this XQDataSource object to the given java.io.PrintWriter object. The log writer is a character output stream to which all logging and tracing messages for this datasource will be printed. This includes messages printed by the methods of this object, messages printed by methods of other objects manufactured by this object, and so on. When a XQDataSource object is created the log writer is initially null; in other words, the default is for logging to be disabled.

Specified by:
setLogWriter in interface XQDataSource
Parameters:
out - the new log writer; to disable logging, set to null
Throws:
XQException - if a datasource access error occurs

readExternal

public void readExternal(ObjectInput in)
                  throws IOException,
                         ClassNotFoundException
Specified by:
readExternal in interface Externalizable
Throws:
IOException
ClassNotFoundException

writeExternal

public void writeExternal(ObjectOutput out)
                   throws IOException
Specified by:
writeExternal in interface Externalizable
Throws:
IOException

getReference

public Reference getReference()
                       throws NamingException
Specified by:
getReference in interface Referenceable
Throws:
NamingException

writeConfiguration

public void writeConfiguration(OutputStream os)
                        throws IOException
Saves this DDXQDataSource to an outputStream which can later be used with the constructor.

Parameters:
os - The OutputStream to save this Configuration to.
Throws:
IOException - When something went wrong saving the configuration.