Class SaxonXQDataSource
- All Implemented Interfaces:
XQDataSource
,Configuration.ApiProvider
For full Javadoc descriptions of the public methods, see the XQJ specification.
-
Constructor Summary
ConstructorsConstructorDescriptionCreate a SaxonXQDataSource using a default configuration.SaxonXQDataSource
(Configuration config) Create a Saxon XQDataSource with a specific configuration -
Method Summary
Modifier and TypeMethodDescriptionAsk whether queries are allowed to call external functions.Get the Saxon Configuration in use.Attempts to create a connection to an XML datasource.getConnection
(String username, String password) Get a connection, by supplying a username and password.getConnection
(Connection con) Get a connection based on an underlying JDBC connectionAsk whether source documents are to be parsed with DTD validation enabledAsk whether fixed or default values defined in a schema or DTD will be expandedAsk whether XInclude processing is to be applied to source documentsint
Gets the maximum time in seconds that this datasource can wait while attempting to connect to a database.Retrieves the log writer for thisXQDataSource
object.getProperty
(String name) Get a configuration property setting.Ask whether line and column information will be retained for source documentsAsk whether source documents will be validated against a schemaAsk whether whitespace will be stripped when loading source documentsString[]
Returns an array containing the property names supported by thisXQDataSource
.Ask whether the schema processor is to take account of xsi:schemaLocation and xsi:noNamespaceSchemaLocation attributes encountered in an instance document being validatedAsk whether XML 1.0 or XML 1.1 rules for XML names are to be followedAsk whether XML Schema 1.0 syntax must be used or whether XML Schema 1.1 features are allowedvoid
Register an extension function that is to be made available within any query.void
setAllowExternalFunctions
(String value) Say whether queries are allowed to call external functions.void
setDtdValidation
(String value) Say whether source documents are to be parsed with DTD validation enabledvoid
setExpandAttributeDefaults
(String value) Say whether whether fixed and default values defined in a schema or DTD will be expanded.void
setExpandXInclude
(String value) Say whether XInclude processing is to be applied to source documentsvoid
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 thisXQDataSource
object to the givenjava.io.PrintWriter
object.void
setProperties
(Properties props) Sets the data source properties from the specifiedProperties
instance.void
setProperty
(String name, String value) Set a configuration property.void
setRetainLineNumbers
(String value) Say whether source documents should have line and column information retained.void
setSchemaValidationMode
(String value) Say whether source documents should be validated against a schemavoid
setStripWhitespace
(String value) Say whether whitespace should be stripped when loading source documentsvoid
setUseXsiSchemaLocation
(String value) Say whether the schema processor is to take account of xsi:schemaLocation and xsi:noNamespaceSchemaLocation attributes encountered in an instance document being validatedvoid
setXmlVersion
(String value) Say whether XML 1.0 or XML 1.1 rules for XML names are to be followedvoid
setXsdVersion
(String value) Say whether XML Schema 1.0 syntax must be used or whether XML Schema 1.1 features are allowed
-
Constructor Details
-
SaxonXQDataSource
public SaxonXQDataSource()Create a SaxonXQDataSource using a default configuration. The Configuration will be an EE, PE, or HE configuration depending on the what is found on the classpath -
SaxonXQDataSource
Create a Saxon XQDataSource with a specific configuration- Parameters:
config
- The Saxon configuration to be used
-
-
Method Details
-
getConfiguration
Get the Saxon Configuration in use. Changes made to this Configuration will affect this data source and XQJ connections created from it (either before or afterwards). Equally, changes made to this SaxonXQDataSource are reflected in the Configuration object (which means they also impact any other SaxonXQDataSource objects that share the same Configuration).- Returns:
- the configuration in use.
-
getConnection
Description copied from interface:XQDataSource
Attempts to create a connection to an XML datasource.- Specified by:
getConnection
in interfaceXQDataSource
- Returns:
- a connection to the XML datasource
-
getConnection
Get a connection based on an underlying JDBC connection- Specified by:
getConnection
in interfaceXQDataSource
- Parameters:
con
- the JDBC connection- Returns:
- a connection based on an underlying JDBC connection
- Throws:
XQException
- The Saxon implementation of this method always throws an XQException, indicating that Saxon does not support connection to a JDBC data source.
-
getConnection
Get a connection, by supplying a username and password. The Saxon implementation of this is equivalent to the default constructor: the username and password are ignored.- Specified by:
getConnection
in interfaceXQDataSource
- Parameters:
username
- the user namepassword
- the password- Returns:
- a connection
-
getLoginTimeout
public int getLoginTimeout()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 interfaceXQDataSource
- Returns:
- the datasource login time limit
-
getLogWriter
Description copied from interface:XQDataSource
Retrieves the log writer for thisXQDataSource
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 aXQDataSource
object is created, the log writer is initiallynull
; in other words, the default is for logging to be disabled.- Specified by:
getLogWriter
in interfaceXQDataSource
- Returns:
- the log writer for this datasource or
null
if logging is disabled
-
getProperty
Get a configuration property setting. The properties that are supported, and their meanings, are the same as the properties that can be obtained using "get" methods; for examplegetProperty("dtdValidation")
returns the same result asgetDtdValidation()
.Further Saxon configuration properties are available using the URIs defined as constants in
FeatureKeys
- Specified by:
getProperty
in interfaceXQDataSource
- Parameters:
name
- the name of the configuration property- Returns:
- the value of the configuration property. Note that in the case of on/off properties this will be returned as the string true/false
- Throws:
XQException
- if the property name or value is invalid
-
getSupportedPropertyNames
Description copied from interface:XQDataSource
Returns an array containing the property names supported by thisXQDataSource
.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 connectionpassword
: the password to use for creating a connection
Any additional properties are implementation-defined.
- Specified by:
getSupportedPropertyNames
in interfaceXQDataSource
- Returns:
String[]
an array of property names supported by this implementation
-
setLoginTimeout
public void setLoginTimeout(int seconds) 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 aXQDataSource
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 interfaceXQDataSource
- Parameters:
seconds
- the datasource login time limit
-
setLogWriter
Description copied from interface:XQDataSource
Sets the log writer for thisXQDataSource
object to the givenjava.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 aXQDataSource
object is created the log writer is initiallynull
; in other words, the default is for logging to be disabled.- Specified by:
setLogWriter
in interfaceXQDataSource
- Parameters:
out
- the new log writer; to disable logging, set tonull
-
setProperties
Description copied from interface:XQDataSource
Sets the data source properties from the specifiedProperties
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 interfaceXQDataSource
- Parameters:
props
- the list of properties to set- Throws:
XQException
- if (1) a given property is not recognized, (2) the value for a given property is determined to be invalid, or (3) theprops
parameter isnull
-
setProperty
Set a configuration property. The properties that are supported, and their meanings, are the same as the properties that can be obtained using "set" methods; for examplesetProperty("dtdValidation", "true")
has the same effect assetDtdValidation("true")
.Further Saxon configuration properties are available using the URIs defined as constants in
FeatureKeys
- Specified by:
setProperty
in interfaceXQDataSource
- Parameters:
name
- the name of the configuration propertyvalue
- the value of the configuration property- Throws:
XQException
- if the property name or value is invalid
-
setAllowExternalFunctions
Say whether queries are allowed to call external functions.- Parameters:
value
- set to "true" if external function calls are allowed (default) or "false" otherwise
-
getAllowExternalFunctions
Ask whether queries are allowed to call external functions.- Returns:
- "true" if external function calls are allowed, "false" otherwise
-
setDtdValidation
Say whether source documents are to be parsed with DTD validation enabled- Parameters:
value
- "true" if DTD validation is to be enabled, otherwise "false". Default is "false".
-
getDtdValidation
Ask whether source documents are to be parsed with DTD validation enabled- Returns:
- "true" if DTD validation is to be enabled, otherwise "false". Default is "false".
-
setExpandAttributeDefaults
Say whether whether fixed and default values defined in a schema or DTD will be expanded. By default, or if the value is "true" (and for conformance with the specification) validation against a DTD or schema will cause default values defined in the schema or DTD to be inserted into the document. Setting this feature to "false" suppresses this behaviour. In the case of DTD-defined defaults this only works if the XML parser reports whether each attribute was specified in the source or generated by expanding a default value. Not all XML parsers report this information.- Parameters:
value
- "true" if default values are to be expanded, otherwise "false". Default is "true".
-
getExpandAttributeDefaults
Ask whether fixed or default values defined in a schema or DTD will be expanded- Returns:
- "true" if such values will be expanded, otherwise "false"
-
setExpandXInclude
Say whether XInclude processing is to be applied to source documents- Parameters:
value
- "true" if XInclude directives are to expanded, otherwise "false". Default is "false".
-
getExpandXInclude
Ask whether XInclude processing is to be applied to source documents- Returns:
- "true" if XInclude directives are to expanded, otherwise "false". Default is "false".
-
setRetainLineNumbers
Say whether source documents should have line and column information retained. This information is available via extension functionssaxon:line-number()
andsaxon:column-number()
- Parameters:
value
- "true" if line and column information is to be retained, otherwise "false". Default is "false".
-
getRetainLineNumbers
Ask whether line and column information will be retained for source documents- Returns:
- "true" if line and column information is retained, otherwise "false"
-
setSchemaValidationMode
Say whether source documents should be validated against a schema- Parameters:
value
- set to "strict" if source documents are to be subjected to strict validation, "lax" if source documents are to be subjected to lax validation, "skip" if source documents are not to be subjected to schema validation
-
getSchemaValidationMode
Ask whether source documents will be validated against a schema- Returns:
- "strict" if source documents are to be subjected to strict validation, "lax" if source documents are to be subjected to lax validation, "skip" if source documents are not to be subjected to schema validation
-
setStripWhitespace
Say whether whitespace should be stripped when loading source documents- Parameters:
value
- "all" if all whitespace text nodes are to be stripped, "ignorable" if only whitespace text nodes in elements defined in a schema or DTD as having element-only content are to be stripped, "none" if no whitespace text nodes are to be stripped
-
getStripWhitespace
Ask whether whitespace will be stripped when loading source documents- Returns:
- "all" if all whitespace text nodes are to be stripped, "ignorable" if only whitespace text nodes in elements defined in a schema or DTD as having element-only content are to be stripped, "none" if no whitespace text nodes are to be stripped
-
setUseXsiSchemaLocation
Say whether the schema processor is to take account of xsi:schemaLocation and xsi:noNamespaceSchemaLocation attributes encountered in an instance document being validated- Parameters:
value
- set to "true" if these attributes are to be recognized (default) or "false" otherwise
-
getUseXsiSchemaLocation
Ask whether the schema processor is to take account of xsi:schemaLocation and xsi:noNamespaceSchemaLocation attributes encountered in an instance document being validated- Returns:
- "true" if these attributes are to be recognized (default) or "false" otherwise
-
setXmlVersion
Say whether XML 1.0 or XML 1.1 rules for XML names are to be followed- Parameters:
value
- "1.0" (default) if XML 1.0 rules are to be used, "1.1" if XML 1.1 rules apply
-
getXmlVersion
Ask whether XML 1.0 or XML 1.1 rules for XML names are to be followed- Returns:
- "1.0" if XML 1.0 rules are to be used, "1.1" if XML 1.1 rules apply
-
setXsdVersion
Say whether XML Schema 1.0 syntax must be used or whether XML Schema 1.1 features are allowed- Parameters:
value
- "1.0" (default) if XML Schema 1.0 rules are to be followed, "1.1" if XML Schema 1.1 features may be used
-
getXsdVersion
Ask whether XML Schema 1.0 syntax must be used or whether XML Schema 1.1 features are allowed- Returns:
- "1.0" (default) if XML Schema 1.0 rules are to be followed, "1.1" if XML Schema 1.1 features may be used
-
registerExtensionFunction
Register an extension function that is to be made available within any query. This method allows deep integration of an extension function implemented as an instance ofExtensionFunctionDefinition
, using an arbitrary name and namespace. This supplements the ability to call arbitrary Java methods using a namespace and local name that are related to the Java class and method name.This method is a Saxon extension to the XQJ interface
- Parameters:
function
- the class that implements the extension function. This must be a class that extendsExtensionFunctionCall
, and it must have a public zero-argument constructor- Throws:
IllegalArgumentException
- if the class cannot be instantiated or does not extendExtensionFunctionCall
- Since:
- 9.2
-