Class Configuration
- java.lang.Object
-
- net.sf.saxon.Configuration
-
- All Implemented Interfaces:
java.io.Serializable,SourceResolver
public class Configuration extends java.lang.Object implements java.io.Serializable, SourceResolver
This class holds details of user-selected configuration options for a transformation or query. When running XSLT, the preferred way of setting configuration options is via the JAXP TransformerFactory interface, but the Configuration object provides a finer level of control. As yet there is no standard API for XQuery, so the only way of setting Configuration information is to use the methods on this class directly.Since Saxon 8.4, the JavaDoc documentation for Saxon attempts to identify interfaces that are considered stable, and will only be changed in a backwards-incompatible way if there is an overriding reason to do so. These interfaces and methods are labelled with the JavaDoc "since" tag. The value 8.n indicates a method in this category that was introduced in Saxon version 8.n: or in the case of 8.4, that was present in Saxon 8.4 and possibly in earlier releases. (In some cases, these methods have been unchanged for a long time.) Methods without a "since" tag, although public, are provided for internal use or for use by advanced users, and are subject to change from one release to the next. The presence of a "since" tag on a class or interface indicates that there are one or more methods in the class that are considered stable; it does not mean that all methods are stable.
- Since:
- 8.4
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static intDO_NOT_RECOVERConstant indicating that when a recoverable error occurs, the processor should not attempt to take the defined recovery action, but should terminate with an error.static intJAVA_APPLICATIONConstant indicating that the host language is Java: that is, this is a free-standing Java application with no XSLT or XQuery contentprotected javax.xml.transform.ErrorListenerlistenerprotected Optimizeroptimizerstatic intRECOVER_SILENTLYConstant indicating that the processor should take the recovery action when a recoverable error occurs, with no warning message.static intRECOVER_WITH_WARNINGSConstant indicating that the processor should produce a warning when a recoverable error occurs, and should then take the recovery action and continue.protected intrecoveryPolicyprotected VendorFunctionLibraryvendorFunctionLibrarystatic intXML_SCHEMAConstant indicating that the "host language" is XML Schemastatic intXML10Constant indicating the XML Version 1.0static intXML11Constant indicating the XML Version 1.1static intXPATHConstant indicating that the host language is XPATH itself - that is, a free-standing XPath environmentstatic intXQUERYConstant indicating that the host language is XQuerystatic intXSLTConstant indicating that the host language is XSLT
-
Constructor Summary
Constructors Constructor Description Configuration()Create a configuration object with default settings for all options.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddSchemaSource(javax.xml.transform.Source schemaSource)Load a schema, which will be available for use by all subsequent operations using this Configuration.voidaddSchemaSource(javax.xml.transform.Source schemaSource, javax.xml.transform.ErrorListener errorListener)Load a schema, which will be available for use by all subsequent operations using this SchemaAwareConfiguration.booleanareAllNodesUntyped()Determine whether all nodes encountered within this query or transformation are guaranteed to be untypedvoidcheckTypeDerivationIsOK(SchemaType derived, SchemaType base, int block)Check that a type is validly derived from another type, following the rules for the Schema Component Constraint "Is Type Derivation OK (Simple)" (3.14.6) or "Is Type Derivation OK (Complex)" (3.4.6) as appropriate.voiddisplayLicenseMessage()Display a message about the license statusExternalObjectModelfindExternalObjectModel(java.lang.Object node)Find the external object model corresponding to a given node.ReceivergetAnnotationStripper(Receiver destination)Add to a pipeline a receiver that strips all type annotations.SchemaDeclarationgetAttributeDeclaration(int fingerprint)Get a global attribute declaration.java.lang.ClassgetClass(java.lang.String className, boolean tracing, java.lang.ClassLoader classLoader)Load a class using the class name provided.java.lang.ClassLoadergetClassLoader()Get the ClassLoader supplied using the methodsetClassLoader(java.lang.ClassLoader).CollationURIResolvergetCollationURIResolver()Get the collation URI resolver associated with this configuration.CollectionURIResolvergetCollectionURIResolver()Get the collection URI resolver associated with this configuration.static ConfigurationgetConfiguration(XPathContext context)Get the configuration, given the context.java.lang.ObjectgetConfigurationProperty(java.lang.String name)Get a property of the configurationXPathContextgetConversionContext()Get an XPathContext object with sufficient capability to perform comparisons and conversionsDebuggergetDebugger()Get the debugger in use.DocumentNumberAllocatorgetDocumentNumberAllocator()Get the document number allocator.ReceivergetDocumentValidator(Receiver receiver, java.lang.String systemId, int validationMode, int stripSpace, SchemaType schemaType)Get a document-level validator to add to a Receiver pipeline.SchemaDeclarationgetElementDeclaration(int fingerprint)Get a global element declaration.ReceivergetElementValidator(Receiver receiver, int nameCode, int locationId, SchemaType schemaType, int validation)Get a Receiver that can be used to validate an element, and that passes the validated element on to a target receiver.javax.xml.transform.ErrorListenergetErrorListener()Get the ErrorListener used in this configuration.FunctionLibrarygetExtensionBinder()Get the FunctionLibrary used to bind calls on extension functions.ExtensionFunctionFactorygetExtensionFunctionFactory()Get an ExtensionFunctionFactory.java.util.ListgetExternalObjectModels()Get all the registered external object models.intgetHostLanguage()Get the host language used in this configuration.intgetImplicitTimezone()Get the implicit timezone, as a positive or negative offset from UTC in minutes.java.util.SetgetImportedNamespaces()Get the set of namespaces of imported schemasjava.lang.ObjectgetInstance(java.lang.String className, java.lang.ClassLoader classLoader)Instantiate a class using the class name provided.static java.util.LocalegetLocale(java.lang.String lang)Get a locale given a language code in XML format.java.lang.StringgetMessageEmitterClass()Get the name of the class that will be instantiated to create a MessageEmitter, to process the output of xsl:message instructions in XSLT.ModuleURIResolvergetModuleURIResolver()Get the user-defined ModuleURIResolver for resolving URIs used in "import module" declarations in the XQuery prolog; returns null if none has been explicitly set.NameCheckergetNameChecker()Get a class that can be used to check names against the selected XML versionNamePoolgetNamePool()Get the target namepool to be used for stylesheets/queries and for source documents.OptimizergetOptimizer()Factory method to get an Optimizer.OutputURIResolvergetOutputURIResolver()Get the OutputURIResolver that will be used to resolve URIs used in the href attribute of the xsl:result-document instruction.PlatformgetPlatform()Get the Platform to be used for platform-dependent methodsjava.lang.StringgetProductTitle()Get a message used to identify this product when a transformation is run using the -t optionintgetRecoveryPolicy()Determine how recoverable run-time errors are to be handled.SchemaTypegetSchemaType(int fingerprint)Get the top-level schema type definition with a given fingerprint.SchemaURIResolvergetSchemaURIResolver()Get the user-defined SchemaURIResolver for resolving URIs used in "import schema" declarations; if none has been explicitly set, returns null.intgetSchemaValidationMode()Determine whether source documents (supplied as a StreamSource or SAXSource) should be subjected to schema validationSerializerFactorygetSerializerFactory()Get the SerializerFactory.org.xml.sax.XMLReadergetSourceParser()Get a parser for source documents.java.lang.StringgetSourceParserClass()Get the name of the class that will be instantiated to create an XML parser for parsing source documents (for example, documents loaded using the document() or doc() functions).SourceResolvergetSourceResolver()Get the current SourceResolver.ModuleURIResolvergetStandardModuleURIResolver()Get the standard system-defined ModuleURIResolver for resolving URIs used in "import module" declarations in the XQuery prolog.intgetStripsWhiteSpace()Set which kinds of whitespace-only text node should be stripped.org.xml.sax.XMLReadergetStyleParser()Get the parser for stylesheet documents.java.lang.StringgetStyleParserClass()Get the name of the class that will be instantiated to create an XML parser for parsing stylesheet modules.StandardURIResolvergetSystemURIResolver()Get the system-defined URI Resolver.TraceListenergetTraceListener()Get the TraceListener used for run-time tracing of instruction execution.intgetTreeModel()Get the Tree Model used by this Configuration.TypeHierarchygetTypeHierarchy()Get the TypeHierarchy: a cache holding type informationjavax.xml.transform.URIResolvergetURIResolver()Get the URIResolver used in this configurationVendorFunctionLibrarygetVendorFunctionLibrary()Get the FunctionLibrary used to bind calls on Saxon-defined extension functions.intgetXMLVersion()Get the XML version to be used by default for validating characters and namesprotected voidinit()booleanisAllowExternalFunctions()Determine whether calls to external Java functions are permitted.booleanisCompileWithTracing()Determine whether compile-time generation of trace code was requestedbooleanisLazyConstructionMode()Determine whether lazy construction mode is on or off.booleanisLineNumbering()Determine whether source documents will maintain line numbers, for the benefit of the saxon:line-number() extension function as well as run-time tracing.booleanisMultiThreading()Determine whether multithreading optimizations are allowedbooleanisRetainDTDAttributeTypes()Determine whether attribute types obtained from a DTD are to be used to set type annotations on the resulting nodesbooleanisSchemaAvailable(java.lang.String targetNamespace)Determine whether the Configuration contains a cached schema for a given target namespacebooleanisSchemaAware(int language)Determine if the configuration is schema-aware, for the given host languagebooleanisStripsAllWhiteSpace()Determine whether whitespace-only text nodes are to be stripped unconditionally from source documents.booleanisTiming()Determine whether brief progress messages and timing information will be output to System.err.booleanisTraceExternalFunctions()Determine whether calls on external functions are to be traced for diagnostic purposes.booleanisValidation()Determine whether the XML parser for source documents will be asked to perform DTD validation of source documentsbooleanisValidationWarnings()Determine whether schema validation failures on result documents are to be treated as fatal errors or as warnings.booleanisVersionWarning()Determine whether a warning is to be output when running against a stylesheet labelled as version="1.0".java.util.ComparatormakeCollator(java.lang.String className)Load a named collator class and check it is OK.ReceivermakeEmitter(java.lang.String clarkName, Controller controller)Load a named output emitter or SAX2 ContentHandler and check it is OK.org.xml.sax.XMLReadermakeParser(java.lang.String className)Create a new SAX XMLReader object using the class name provided.PipelineConfigurationmakePipelineConfiguration()Make a PipelineConfiguration from the properties of this Configurationstatic ConfigurationmakeSchemaAwareConfiguration(java.lang.ClassLoader classLoader)Static method to instantiate a schema-aware configuration.SlotManagermakeSlotManager()Factory method to create a SlotManager.TraceListenermakeTraceListener(java.lang.String className)Create an instance of a TraceListener with a specified class namejavax.xml.transform.URIResolvermakeURIResolver(java.lang.String className)Create an instance of a URIResolver with a specified class namejava.lang.StringreadInlineSchema(NodeInfo root, java.lang.String expected, javax.xml.transform.ErrorListener errorListener)Read an inline schema from a stylesheet.voidreadMultipleSchemas(PipelineConfiguration pipe, java.lang.String baseURI, java.util.List schemaLocations, java.lang.String expected)Read schemas from a list of schema locations.java.lang.StringreadSchema(PipelineConfiguration pipe, java.lang.String baseURI, java.lang.String schemaLocation, java.lang.String expected)Read a schema from a given schema locationvoidregisterExternalObjectModel(ExternalObjectModel model)Register an external object model with this Configuration.voidreportFatalError(XPathException err)Report a fatal errorjavax.xml.transform.SourceresolveSource(javax.xml.transform.Source source, Configuration config)Implement the SourceResolver interfacevoidreuseSourceParser(org.xml.sax.XMLReader parser)Return a source parser to the pool, for reusevoidreuseStyleParser(org.xml.sax.XMLReader parser)Return a stylesheet (or schema) parser to the pool, for reusevoidsealNamespace(java.lang.String namespace)Mark a schema namespace as being sealed.voidsetAllNodesUntyped(boolean allUntyped)Specify that all nodes encountered within this query or transformation will be untypedvoidsetAllowExternalFunctions(boolean allowExternalFunctions)Determine whether calls to external Java functions are permitted.voidsetClassLoader(java.lang.ClassLoader loader)Set a ClassLoader to be used when loading external classes.voidsetCollationURIResolver(CollationURIResolver resolver)Set a CollationURIResolver to be used to resolve collation URIs (that is, to take a URI identifying a collation, and return the corresponding collation).voidsetCollectionURIResolver(CollectionURIResolver resolver)Set a CollectionURIResolver to be used to resolve collection URIs (that is, the URI supplied in a call to the collection() function).voidsetCompileWithTracing(boolean trace)Request compile-time generation of trace code (or not)voidsetConfigurationProperty(java.lang.String name, java.lang.Object value)Set a property of the configuration.voidsetDebugger(Debugger debugger)Set the debugger to be used.voidsetErrorListener(javax.xml.transform.ErrorListener listener)Set the ErrorListener to be used in this configuration.voidsetExtensionBinder(FunctionLibrary binder)Set the FunctionLibrary used to bind calls on extension functions.voidsetExtensionFunctionFactory(ExtensionFunctionFactory factory)Set an ExtensionFunctionFactory.voidsetHostLanguage(int hostLanguage)Set the host language used in this configuration.voidsetImplicitTimezone(int minutes)Set the implicit timezone, as a positive or negative offset from UTC in minutes.voidsetLazyConstructionMode(boolean lazy)Set lazy construction mode on or off.voidsetLineNumbering(boolean lineNumbering)Determine whether source documents will maintain line numbers, for the benefit of the saxon:line-number() extension function as well as run-time tracing.voidsetMessageEmitterClass(java.lang.String messageEmitterClass)Set the name of the class that will be instantiated to create a MessageEmitter, to process the output of xsl:message instructions in XSLT.voidsetModuleURIResolver(java.lang.String className)Create and register an instance of a ModuleURIResolver with a specified class name.voidsetModuleURIResolver(ModuleURIResolver resolver)Set a user-defined ModuleURIResolver for resolving URIs used in "import module" declarations in an XQuery prolog.voidsetMultiThreading(boolean multithreading)Set whether multithreading optimizations are allowedvoidsetNamePool(NamePool targetNamePool)Set the NamePool to be used for stylesheets/queries and for source documents.voidsetOutputURIResolver(OutputURIResolver outputURIResolver)Set the OutputURIResolver that will be used to resolve URIs used in the href attribute of the xsl:result-document instruction.voidsetPlatform(Platform platform)Set the Platform to be used for platform-dependent methodsvoidsetRecoveryPolicy(int recoveryPolicy)Determine how recoverable run-time errors are to be handled.voidsetRetainDTDAttributeTypes(boolean useTypes)Determine whether attribute types obtained from a DTD are to be used to set type annotations on the resulting nodes.voidsetSchemaURIResolver(SchemaURIResolver resolver)Set a user-defined SchemaURIResolver for resolving URIs used in "import schema" declarations.voidsetSchemaValidationMode(int validationMode)Indicate whether source documents (supplied as a StreamSource or SAXSource) should be subjected to schema validationvoidsetSerializerFactory(SerializerFactory factory)Set a custom SerializerFactory.voidsetSourceParserClass(java.lang.String sourceParserClass)Set the name of the class that will be instantiated to create an XML parser for parsing source documents (for example, documents loaded using the document() or doc() functions).voidsetSourceResolver(SourceResolver resolver)Supply a SourceResolvervoidsetStripsAllWhiteSpace(boolean stripsAllWhiteSpace)Determine whether whitespace-only text nodes are to be stripped unconditionally from source documents.voidsetStripsWhiteSpace(int kind)Set which kinds of whitespace-only text node should be stripped.voidsetStyleParserClass(java.lang.String styleParserClass)Set the name of the class that will be instantiated to create an XML parser for parsing stylesheet modules.voidsetTiming(boolean timing)Determine whether brief progress messages and timing information will be output to System.err.voidsetTraceExternalFunctions(boolean traceExternalFunctions)Determine whether calls on external functions are to be traced for diagnostic purposes.voidsetTraceListener(TraceListener traceListener)Set the TraceListener to be used for run-time tracing of instruction execution.voidsetTreeModel(int treeModel)Set the Tree Model used by this Configuration.voidsetURIResolver(javax.xml.transform.URIResolver resolver)Set the URIResolver to be used in this configuration.voidsetValidation(boolean validation)Determine whether the XML parser for source documents will be asked to perform DTD validation of source documentsvoidsetValidationWarnings(boolean warn)Indicate whether schema validation failures on result documents are to be treated as fatal errors or as warnings.voidsetVersionWarning(boolean warn)Determine whether a warning is to be output when running against a stylesheet labelled as version="1.0".voidsetXMLVersion(int version)Set the XML version to be used by default for validating characters and namesintvalidateAttribute(int nameCode, java.lang.CharSequence value, int validation)Validate an attribute value.
-
-
-
Field Detail
-
listener
protected transient javax.xml.transform.ErrorListener listener
-
vendorFunctionLibrary
protected VendorFunctionLibrary vendorFunctionLibrary
-
recoveryPolicy
protected int recoveryPolicy
-
optimizer
protected Optimizer optimizer
-
RECOVER_SILENTLY
public static final int RECOVER_SILENTLY
Constant indicating that the processor should take the recovery action when a recoverable error occurs, with no warning message.- See Also:
- Constant Field Values
-
RECOVER_WITH_WARNINGS
public static final int RECOVER_WITH_WARNINGS
Constant indicating that the processor should produce a warning when a recoverable error occurs, and should then take the recovery action and continue.- See Also:
- Constant Field Values
-
DO_NOT_RECOVER
public static final int DO_NOT_RECOVER
Constant indicating that when a recoverable error occurs, the processor should not attempt to take the defined recovery action, but should terminate with an error.- See Also:
- Constant Field Values
-
XML10
public static final int XML10
Constant indicating the XML Version 1.0- See Also:
- Constant Field Values
-
XML11
public static final int XML11
Constant indicating the XML Version 1.1- See Also:
- Constant Field Values
-
XSLT
public static final int XSLT
Constant indicating that the host language is XSLT- See Also:
- Constant Field Values
-
XQUERY
public static final int XQUERY
Constant indicating that the host language is XQuery- See Also:
- Constant Field Values
-
XML_SCHEMA
public static final int XML_SCHEMA
Constant indicating that the "host language" is XML Schema- See Also:
- Constant Field Values
-
JAVA_APPLICATION
public static final int JAVA_APPLICATION
Constant indicating that the host language is Java: that is, this is a free-standing Java application with no XSLT or XQuery content- See Also:
- Constant Field Values
-
XPATH
public static final int XPATH
Constant indicating that the host language is XPATH itself - that is, a free-standing XPath environment- See Also:
- Constant Field Values
-
-
Method Detail
-
init
protected void init()
-
makeSchemaAwareConfiguration
public static Configuration makeSchemaAwareConfiguration(java.lang.ClassLoader classLoader) throws java.lang.RuntimeException
Static method to instantiate a schema-aware configuration.On the .NET platform, this method should not be called unless it is known that the assembly saxon8sa.dll has already been loaded. This can be achieved by an appropriate call on Assembly.Load(): for an example, see the C# Configuration.cs class in the Saxon.Api namespace.
- Parameters:
classLoader- - the class loader to be used. If null, the context class loader for the current thread is used.- Throws:
java.lang.RuntimeException- if the Saxon-SA product cannot be loaded or if no license key is available.
-
getProductTitle
public java.lang.String getProductTitle()
Get a message used to identify this product when a transformation is run using the -t option- Returns:
- A string containing both the product name and the product version
- Since:
- 8.4
-
isSchemaAware
public boolean isSchemaAware(int language)
Determine if the configuration is schema-aware, for the given host language- Parameters:
language- the required host language: XSLT, XQUERY, or XML_SCHEMA- Since:
- 8.4
-
displayLicenseMessage
public void displayLicenseMessage()
Display a message about the license status
-
getHostLanguage
public int getHostLanguage()
Get the host language used in this configuration. The typical values are XSLT and XQUERY. The values XML_SCHEMA and JAVA_APPLICATION may also be encountered.This method is problematic because it is possible to run multiple transformations or queries within the same configuration. The method is therefore best avoided. Instead, use
Executable.getHostLanguage(). Internally its only use is in deciding (in Saxon-SA only) which error listener to use by default at compile time, and since the standard XSLT and XQuery listeners have no differences when used for static errors, the choice is immaterial.- Returns:
- Configuration.XSLT or Configuration.XQUERY
-
setHostLanguage
public void setHostLanguage(int hostLanguage)
Set the host language used in this configuration. The possible values are XSLT and XQUERY.- Parameters:
hostLanguage- Configuration.XSLT or Configuration.XQUERY
-
setPlatform
public void setPlatform(Platform platform)
Set the Platform to be used for platform-dependent methods- Parameters:
platform- the platform to be used
-
getPlatform
public Platform getPlatform()
Get the Platform to be used for platform-dependent methods- Returns:
- the platform to be used
-
getURIResolver
public javax.xml.transform.URIResolver getURIResolver()
Get the URIResolver used in this configuration- Returns:
- the URIResolver. If no URIResolver has been set explicitly, the default URIResolver is used.
- Since:
- 8.4
-
setURIResolver
public void setURIResolver(javax.xml.transform.URIResolver resolver)
Set the URIResolver to be used in this configuration. This will be used to resolve the URIs used statically (e.g. by xsl:include) and also the URIs used dynamically by functions such as document() and doc(). Note that the URIResolver does not resolve the URI in the sense of RFC 2396 (which is also the sense in which the resolve-uri() function uses the term): rather it dereferences an absolute URI to obtain an actual resource, which is returned as a Source object.- Parameters:
resolver- The URIResolver to be used.- Since:
- 8.4
-
getSystemURIResolver
public StandardURIResolver getSystemURIResolver()
Get the system-defined URI Resolver. This is used when the user-defined URI resolver returns null as the result of the resolve() method
-
makeURIResolver
public javax.xml.transform.URIResolver makeURIResolver(java.lang.String className) throws javax.xml.transform.TransformerExceptionCreate an instance of a URIResolver with a specified class name- Parameters:
className- The fully-qualified name of the URIResolver class- Returns:
- The newly created URIResolver
- Throws:
javax.xml.transform.TransformerException- if the requested class does not implement the javax.xml.transform.URIResolver interface
-
getErrorListener
public javax.xml.transform.ErrorListener getErrorListener()
Get the ErrorListener used in this configuration. If no ErrorListener has been supplied explicitly, the default ErrorListener is used.- Returns:
- the ErrorListener.
- Since:
- 8.4
-
setErrorListener
public void setErrorListener(javax.xml.transform.ErrorListener listener)
Set the ErrorListener to be used in this configuration. The ErrorListener is informed of all static and dynamic errors detected, and can decide whether run-time warnings are to be treated as fatal.- Parameters:
listener- the ErrorListener to be used- Since:
- 8.4
-
reportFatalError
public void reportFatalError(XPathException err)
Report a fatal error
-
setMultiThreading
public void setMultiThreading(boolean multithreading)
Set whether multithreading optimizations are allowed
-
isMultiThreading
public boolean isMultiThreading()
Determine whether multithreading optimizations are allowed
-
setXMLVersion
public void setXMLVersion(int version)
Set the XML version to be used by default for validating characters and names- Parameters:
version- one of the constants XML10 or XML11- Since:
- 8.6
-
getXMLVersion
public int getXMLVersion()
Get the XML version to be used by default for validating characters and names- Returns:
- one of the constants XML10 or XML11
- Since:
- 8.6
-
getNameChecker
public NameChecker getNameChecker()
Get a class that can be used to check names against the selected XML version- Returns:
- a class that can be used for name checking
- Since:
- 8.6
-
getConversionContext
public XPathContext getConversionContext()
Get an XPathContext object with sufficient capability to perform comparisons and conversions
-
getTreeModel
public int getTreeModel()
Get the Tree Model used by this Configuration. This is either Builder.STANDARD_TREE or Builder.TINY_TREE. The default (confusingly) is Builder.TINY_TREE.- Returns:
- the selected Tree Model
- Since:
- 8.4
-
setTreeModel
public void setTreeModel(int treeModel)
Set the Tree Model used by this Configuration. This is either Builder.STANDARD_TREE or Builder.TINY_TREE. The default (confusingly) is Builder.TINY_TREE.- Parameters:
treeModel- the selected Tree Model- Since:
- 8.4
-
isLineNumbering
public boolean isLineNumbering()
Determine whether source documents will maintain line numbers, for the benefit of the saxon:line-number() extension function as well as run-time tracing.- Returns:
- true if line numbers are maintained in source documents
- Since:
- 8.4
-
setLineNumbering
public void setLineNumbering(boolean lineNumbering)
Determine whether source documents will maintain line numbers, for the benefit of the saxon:line-number() extension function as well as run-time tracing.- Parameters:
lineNumbering- true if line numbers are maintained in source documents- Since:
- 8.4
-
getTraceListener
public TraceListener getTraceListener()
Get the TraceListener used for run-time tracing of instruction execution.- Returns:
- the TraceListener, or null if none is in use.
- Since:
- 8.4
-
setTraceListener
public void setTraceListener(TraceListener traceListener)
Set the TraceListener to be used for run-time tracing of instruction execution.Note: this method should not be used if the Configuration is multithreading. In that situation, use
setCompileWithTracing(boolean)to force stylesheets and queries to be compiled with trace code enabled, and useController.addTraceListener(net.sf.saxon.trace.TraceListener)to supply a TraceListener at run time.- Parameters:
traceListener- The TraceListener to be used.- Since:
- 8.4
-
isCompileWithTracing
public boolean isCompileWithTracing()
Determine whether compile-time generation of trace code was requested- Since:
- 8.8
-
setCompileWithTracing
public void setCompileWithTracing(boolean trace)
Request compile-time generation of trace code (or not)- Since:
- 8.8
-
makeTraceListener
public TraceListener makeTraceListener(java.lang.String className) throws XPathException
Create an instance of a TraceListener with a specified class name- Parameters:
className- The fully qualified class name of the TraceListener to be constructed- Returns:
- the newly constructed TraceListener
- Throws:
XPathException- if the requested class does not implement the net.sf.saxon.trace.TraceListener interface
-
setExtensionBinder
public void setExtensionBinder(FunctionLibrary binder)
Set the FunctionLibrary used to bind calls on extension functions. This allows the rules for identifying extension functions to be customized (in principle, it would allow support for extension functions in other languages to be provided).When an application supplies its own FunctionLibrary for binding extension functions, this replaces the default binding mechanism for Java extension functions, namely
JavaExtensionLibrary. It thus disables the function libraries for built-in Saxon extensions and for EXSLT extensions. It is possible to create a function library that adds to the existing mechanisms, rather than replacing them, by supplying as the FunctionLibrary aFunctionLibraryListthat itself contains two FunctionLibrary objects: a JavaExtensionLibrary, and a user-written FunctionLibrary.- Parameters:
binder- The FunctionLibrary object used to locate implementations of extension functions, based on their name and arity- See Also:
setExtensionFunctionFactory(net.sf.saxon.functions.ExtensionFunctionFactory)
-
getExtensionBinder
public FunctionLibrary getExtensionBinder()
Get the FunctionLibrary used to bind calls on extension functions.This mechanism is for advanced users only, and the details are subject to change.
- Returns:
- the registered FunctionLibrary for extension functions if one has been registered; or the default FunctionLibrary for extension functions otherwise
-
getVendorFunctionLibrary
public VendorFunctionLibrary getVendorFunctionLibrary()
Get the FunctionLibrary used to bind calls on Saxon-defined extension functions.This method is intended for internal use only.
-
setCollationURIResolver
public void setCollationURIResolver(CollationURIResolver resolver)
Set a CollationURIResolver to be used to resolve collation URIs (that is, to take a URI identifying a collation, and return the corresponding collation). Note that Saxon attempts first to resolve a collation URI using the resolver registered with the Controller; if that returns null, it tries again using the resolver registered with the Configuration.Note that it is undefined whether collation URIs are resolved at compile time or at run-time. It is therefore inadvisable to change the CollationURIResolver after compiling a query or stylesheet and before running it.
- Parameters:
resolver- the collation URI resolver to be used. This replaces any collation URI resolver previously registered.- Since:
- 8.5
-
getCollationURIResolver
public CollationURIResolver getCollationURIResolver()
Get the collation URI resolver associated with this configuration. This will return the CollationURIResolver previously set using thesetCollationURIResolver(net.sf.saxon.sort.CollationURIResolver)method; if this has not been called, it returns the system-defined collation URI resolver- Returns:
- the registered CollationURIResolver
- Since:
- 8.5
-
setCollectionURIResolver
public void setCollectionURIResolver(CollectionURIResolver resolver)
Set a CollectionURIResolver to be used to resolve collection URIs (that is, the URI supplied in a call to the collection() function).Collection URIs are always resolved at run-time, using the CollectionURIResolver in force at the time the collection() function is called.
- Parameters:
resolver- the collection URI resolver to be used. This replaces any collection URI resolver previously registered.- Since:
- 8.5
-
getCollectionURIResolver
public CollectionURIResolver getCollectionURIResolver()
Get the collection URI resolver associated with this configuration. This will return the CollectionURIResolver previously set using thesetCollectionURIResolver(net.sf.saxon.CollectionURIResolver)method; if this has not been called, it returns the system-defined collection URI resolver- Returns:
- the registered CollationURIResolver
- Since:
- 8.5
-
setModuleURIResolver
public void setModuleURIResolver(ModuleURIResolver resolver)
Set a user-defined ModuleURIResolver for resolving URIs used in "import module" declarations in an XQuery prolog. This acts as the default value for the ModuleURIResolver in the StaticQueryContext, and may be overridden by a more specific ModuleURIResolver nominated as part of the StaticQueryContext.
-
setModuleURIResolver
public void setModuleURIResolver(java.lang.String className) throws javax.xml.transform.TransformerExceptionCreate and register an instance of a ModuleURIResolver with a specified class name. This will be used for resolving URIs in XQuery "import module" declarations, unless a more specific ModuleURIResolver has been nominated as part of the StaticQueryContext.- Parameters:
className- The fully-qualified name of the LocationHintResolver class- Throws:
javax.xml.transform.TransformerException- if the requested class does not implement the net.sf.saxon.LocationHintResolver interface
-
getModuleURIResolver
public ModuleURIResolver getModuleURIResolver()
Get the user-defined ModuleURIResolver for resolving URIs used in "import module" declarations in the XQuery prolog; returns null if none has been explicitly set.
-
getStandardModuleURIResolver
public ModuleURIResolver getStandardModuleURIResolver()
Get the standard system-defined ModuleURIResolver for resolving URIs used in "import module" declarations in the XQuery prolog.
-
setSchemaURIResolver
public void setSchemaURIResolver(SchemaURIResolver resolver)
Set a user-defined SchemaURIResolver for resolving URIs used in "import schema" declarations.
-
getSchemaURIResolver
public SchemaURIResolver getSchemaURIResolver()
Get the user-defined SchemaURIResolver for resolving URIs used in "import schema" declarations; if none has been explicitly set, returns null.
-
getRecoveryPolicy
public int getRecoveryPolicy()
Determine how recoverable run-time errors are to be handled. This applies only if the standard ErrorListener is used.- Returns:
- the current recovery policy. The options are
RECOVER_SILENTLY,RECOVER_WITH_WARNINGS, orDO_NOT_RECOVER. - Since:
- 8.4
-
setRecoveryPolicy
public void setRecoveryPolicy(int recoveryPolicy)
Determine how recoverable run-time errors are to be handled. This applies only if the standard ErrorListener is used. The recovery policy applies to errors classified in the XSLT 2.0 specification as recoverable dynamic errors, but only in those cases where Saxon provides a choice over how the error is handled: in some cases, Saxon makes the decision itself.- Parameters:
recoveryPolicy- the recovery policy to be used. The options areRECOVER_SILENTLY,RECOVER_WITH_WARNINGS, orDO_NOT_RECOVER.- Since:
- 8.4
-
getMessageEmitterClass
public java.lang.String getMessageEmitterClass()
Get the name of the class that will be instantiated to create a MessageEmitter, to process the output of xsl:message instructions in XSLT.- Returns:
- the full class name of the message emitter class.
- Since:
- 8.4
-
setMessageEmitterClass
public void setMessageEmitterClass(java.lang.String messageEmitterClass)
Set the name of the class that will be instantiated to create a MessageEmitter, to process the output of xsl:message instructions in XSLT.- Parameters:
messageEmitterClass- the full class name of the message emitter class. This must implement net.sf.saxon.event.Emitter.- Since:
- 8.4
-
getSourceParserClass
public java.lang.String getSourceParserClass()
Get the name of the class that will be instantiated to create an XML parser for parsing source documents (for example, documents loaded using the document() or doc() functions).This method is retained in Saxon for backwards compatibility, but the preferred way of choosing an XML parser is to use JAXP interfaces, for example by supplying a JAXP Source object initialized with an appropriate implementation of org.xml.sax.XMLReader.
- Returns:
- the fully qualified name of the XML parser class
-
setSourceParserClass
public void setSourceParserClass(java.lang.String sourceParserClass)
Set the name of the class that will be instantiated to create an XML parser for parsing source documents (for example, documents loaded using the document() or doc() functions).This method is retained in Saxon for backwards compatibility, but the preferred way of choosing an XML parser is to use JAXP interfaces, for example by supplying a JAXP Source object initialized with an appropriate implementation of org.xml.sax.XMLReader.
- Parameters:
sourceParserClass- the fully qualified name of the XML parser class. This must implement the SAX2 XMLReader interface.
-
getStyleParserClass
public java.lang.String getStyleParserClass()
Get the name of the class that will be instantiated to create an XML parser for parsing stylesheet modules.This method is retained in Saxon for backwards compatibility, but the preferred way of choosing an XML parser is to use JAXP interfaces, for example by supplying a JAXP Source object initialized with an appropriate implementation of org.xml.sax.XMLReader.
- Returns:
- the fully qualified name of the XML parser class
-
setStyleParserClass
public void setStyleParserClass(java.lang.String styleParserClass)
Set the name of the class that will be instantiated to create an XML parser for parsing stylesheet modules.This method is retained in Saxon for backwards compatibility, but the preferred way of choosing an XML parser is to use JAXP interfaces, for example by supplying a JAXP Source object initialized with an appropriate implementation of org.xml.sax.XMLReader.
- Parameters:
styleParserClass- the fully qualified name of the XML parser class
-
getOutputURIResolver
public OutputURIResolver getOutputURIResolver()
Get the OutputURIResolver that will be used to resolve URIs used in the href attribute of the xsl:result-document instruction.- Returns:
- the OutputURIResolver. If none has been supplied explicitly, the default OutputURIResolver is returned.
- Since:
- 8.4
-
setOutputURIResolver
public void setOutputURIResolver(OutputURIResolver outputURIResolver)
Set the OutputURIResolver that will be used to resolve URIs used in the href attribute of the xsl:result-document instruction.- Parameters:
outputURIResolver- the OutputURIResolver to be used.- Since:
- 8.4
-
setSerializerFactory
public void setSerializerFactory(SerializerFactory factory)
Set a custom SerializerFactory. This will be used to create a serializer for a given set of output properties and result destination.- Since:
- 8.8
-
getSerializerFactory
public SerializerFactory getSerializerFactory()
Get the SerializerFactory. This returns the standard built-in SerializerFactory, unless a custom SerializerFactory has been registered.- Since:
- 8.8
-
isTiming
public boolean isTiming()
Determine whether brief progress messages and timing information will be output to System.err.This method is provided largely for internal use. Progress messages are normally controlled directly from the command line interfaces, and are not normally used when driving Saxon from the Java API.
- Returns:
- true if these messages are to be output.
-
setTiming
public void setTiming(boolean timing)
Determine whether brief progress messages and timing information will be output to System.err.This method is provided largely for internal use. Progress messages are normally controlled directly from the command line interfaces, and are not normally used when
- Parameters:
timing- true if these messages are to be output.
-
isVersionWarning
public boolean isVersionWarning()
Determine whether a warning is to be output when running against a stylesheet labelled as version="1.0". The XSLT specification requires such a warning unless the user disables it.- Returns:
- true if these messages are to be output.
- Since:
- 8.4
-
setVersionWarning
public void setVersionWarning(boolean warn)
Determine whether a warning is to be output when running against a stylesheet labelled as version="1.0". The XSLT specification requires such a warning unless the user disables it.- Parameters:
warn- true if these messages are to be output.- Since:
- 8.4
-
isAllowExternalFunctions
public boolean isAllowExternalFunctions()
Determine whether calls to external Java functions are permitted.- Returns:
- true if such calls are permitted.
- Since:
- 8.4
-
setAllowExternalFunctions
public void setAllowExternalFunctions(boolean allowExternalFunctions)
Determine whether calls to external Java functions are permitted. Allowing external function calls is potentially a security risk if the stylesheet or Query is untrusted, as it allows arbitrary Java methods to be invoked, which can examine or modify the contents of filestore and other resources on the machine where the query/stylesheet is executed- Parameters:
allowExternalFunctions- true if external function calls are to be permitted.- Since:
- 8.4
-
isTraceExternalFunctions
public boolean isTraceExternalFunctions()
Determine whether calls on external functions are to be traced for diagnostic purposes.- Returns:
- true if tracing is enabled for calls to external Java functions
-
setRetainDTDAttributeTypes
public void setRetainDTDAttributeTypes(boolean useTypes) throws javax.xml.transform.TransformerFactoryConfigurationErrorDetermine whether attribute types obtained from a DTD are to be used to set type annotations on the resulting nodes.- Parameters:
useTypes- set to true if DTD types are to be taken into account- Throws:
javax.xml.transform.TransformerFactoryConfigurationError- Since:
- 8.4
-
isRetainDTDAttributeTypes
public boolean isRetainDTDAttributeTypes()
Determine whether attribute types obtained from a DTD are to be used to set type annotations on the resulting nodes- Returns:
- true if DTD types are to be taken into account
- Since:
- 8.4
-
setTraceExternalFunctions
public void setTraceExternalFunctions(boolean traceExternalFunctions)
Determine whether calls on external functions are to be traced for diagnostic purposes.- Parameters:
traceExternalFunctions- true if tracing is to be enabled for calls to external Java functions
-
getExtensionFunctionFactory
public ExtensionFunctionFactory getExtensionFunctionFactory()
Get an ExtensionFunctionFactory. This is used at compile time for generating the code that calls Java extension functions. It is possible to supply a user-defined ExtensionFunctionFactory to customize the way extension functions are bound.This mechanism is intended for advanced use only, and is subject to change.
- Returns:
- the factory object registered to generate calls on extension functions, if one has been registered; if not, the default factory used by Saxon.
-
setExtensionFunctionFactory
public void setExtensionFunctionFactory(ExtensionFunctionFactory factory)
Set an ExtensionFunctionFactory. This is used at compile time for generating the code that calls Java extension functions. It is possible to supply a user-defined ExtensionFunctionFactory to customize the way extension functions are called. The ExtensionFunctionFactory determines how external methods are called, but is not involved in binding the external method corresponding to a given function name or URI.This mechanism is intended for advanced use only, and is subject to change.
-
isValidation
public boolean isValidation()
Determine whether the XML parser for source documents will be asked to perform DTD validation of source documents- Returns:
- true if DTD validation is requested.
- Since:
- 8.4
-
setValidation
public void setValidation(boolean validation)
Determine whether the XML parser for source documents will be asked to perform DTD validation of source documents- Parameters:
validation- true if DTD validation is to be requested.- Since:
- 8.4
-
setAllNodesUntyped
public void setAllNodesUntyped(boolean allUntyped)
Specify that all nodes encountered within this query or transformation will be untyped
-
areAllNodesUntyped
public boolean areAllNodesUntyped()
Determine whether all nodes encountered within this query or transformation are guaranteed to be untyped
-
getSchemaValidationMode
public int getSchemaValidationMode()
Determine whether source documents (supplied as a StreamSource or SAXSource) should be subjected to schema validation- Returns:
- the schema validation mode previously set using setSchemaValidationMode(),
or the default mode
Validation.STRIPotherwise.
-
setSchemaValidationMode
public void setSchemaValidationMode(int validationMode)
Indicate whether source documents (supplied as a StreamSource or SAXSource) should be subjected to schema validation- Parameters:
validationMode- the validation (or construction) mode to be used for source documents. One ofValidation.STRIP,Validation.PRESERVE,Validation.STRICT,Validation.LAX- Since:
- 8.4
-
setValidationWarnings
public void setValidationWarnings(boolean warn)
Indicate whether schema validation failures on result documents are to be treated as fatal errors or as warnings.- Parameters:
warn- true if schema validation failures are to be treated as warnings; false if they are to be treated as fatal errors.- Since:
- 8.4
-
isValidationWarnings
public boolean isValidationWarnings()
Determine whether schema validation failures on result documents are to be treated as fatal errors or as warnings.- Returns:
- true if validation errors are to be treated as warnings (that is, the validation failure is reported but processing continues as normal); false if validation errors are fatal.
- Since:
- 8.4
-
getNamePool
public NamePool getNamePool()
Get the target namepool to be used for stylesheets/queries and for source documents.- Returns:
- the target name pool. If no NamePool has been specified explicitly, the default NamePool is returned.
- Since:
- 8.4
-
setNamePool
public void setNamePool(NamePool targetNamePool)
Set the NamePool to be used for stylesheets/queries and for source documents.Normally all transformations and queries run under a single Java VM share the same NamePool. This creates a potential bottleneck, since changes to the namepool are synchronized. It is possible therefore to allocate a distinct NamePool to each Configuration. This requires considerable care and should only be done when the default arrangement is found to cause problems. There is a basic rule to follow: any compiled stylesheet or query must use the same NamePool as its source and result documents.
- Parameters:
targetNamePool- The NamePool to be used.- Since:
- 8.4
-
getTypeHierarchy
public final TypeHierarchy getTypeHierarchy()
Get the TypeHierarchy: a cache holding type information
-
getDocumentNumberAllocator
public DocumentNumberAllocator getDocumentNumberAllocator()
Get the document number allocator.This is intended primarily for internal use
-
isStripsAllWhiteSpace
public boolean isStripsAllWhiteSpace()
Determine whether whitespace-only text nodes are to be stripped unconditionally from source documents.- Returns:
- true if all whitespace-only text nodes are stripped.
- Since:
- 8.4
-
setStripsAllWhiteSpace
public void setStripsAllWhiteSpace(boolean stripsAllWhiteSpace)
Determine whether whitespace-only text nodes are to be stripped unconditionally from source documents.- Parameters:
stripsAllWhiteSpace- if all whitespace-only text nodes are to be stripped.- Since:
- 8.4
-
setStripsWhiteSpace
public void setStripsWhiteSpace(int kind)
Set which kinds of whitespace-only text node should be stripped.- Parameters:
kind- the kind of whitespace-only text node that should be stripped when building a source tree. One ofWhitespace.NONE(none),Whitespace.ALL(all), orWhitespace.IGNORABLE(element-content whitespace as defined in a DTD or schema)
-
getStripsWhiteSpace
public int getStripsWhiteSpace()
Set which kinds of whitespace-only text node should be stripped.- Returns:
- kind the kind of whitespace-only text node that should be stripped when building
a source tree. One of
Whitespace.NONE(none),Whitespace.ALL(all), orWhitespace.IGNORABLE(element-content whitespace as defined in a DTD or schema)
-
getSourceParser
public org.xml.sax.XMLReader getSourceParser() throws javax.xml.transform.TransformerFactoryConfigurationErrorGet a parser for source documents. The parser is allocated from a pool if any are available from the pool: the client should ideally return the parser to the pool after use, so that it can be reused.This method is intended primarily for internal use.
- Returns:
- a parser, in which the namespace properties must be set as follows:
namespaces=true; namespace-prefixes=false. The DTD validation feature of the parser will be set
on or off depending on the
setValidation(boolean)setting. - Throws:
javax.xml.transform.TransformerFactoryConfigurationError
-
reuseSourceParser
public void reuseSourceParser(org.xml.sax.XMLReader parser)
Return a source parser to the pool, for reuse- Parameters:
parser- The parser: the caller must not supply a parser that was obtained by any mechanism other than calling the getSourceParser() method.
-
getStyleParser
public org.xml.sax.XMLReader getStyleParser() throws javax.xml.transform.TransformerFactoryConfigurationErrorGet the parser for stylesheet documents. This parser is also used for schema documents.This method is intended for internal use only.
- Throws:
javax.xml.transform.TransformerFactoryConfigurationError
-
reuseStyleParser
public void reuseStyleParser(org.xml.sax.XMLReader parser)
Return a stylesheet (or schema) parser to the pool, for reuse- Parameters:
parser- The parser: the caller must not supply a parser that was obtained by any mechanism other than calling the getStyleParser() method.
-
readSchema
public java.lang.String readSchema(PipelineConfiguration pipe, java.lang.String baseURI, java.lang.String schemaLocation, java.lang.String expected) throws javax.xml.transform.TransformerConfigurationException
Read a schema from a given schema location- Returns:
- the target namespace of the schema
This method is intended for internal use.
- Throws:
javax.xml.transform.TransformerConfigurationException
-
readMultipleSchemas
public void readMultipleSchemas(PipelineConfiguration pipe, java.lang.String baseURI, java.util.List schemaLocations, java.lang.String expected) throws SchemaException
Read schemas from a list of schema locations.This method is intended for internal use.
- Throws:
SchemaException
-
readInlineSchema
public java.lang.String readInlineSchema(NodeInfo root, java.lang.String expected, javax.xml.transform.ErrorListener errorListener) throws SchemaException
Read an inline schema from a stylesheet.This method is intended for internal use.
- Parameters:
root- the xs:schema element in the stylesheetexpected- the target namespace expected; null if there is no expectation.errorListener- The destination for error messages. May be null, in which case the errorListener registered with this Configuration is used.- Returns:
- the actual target namespace of the schema
- Throws:
SchemaException
-
addSchemaSource
public void addSchemaSource(javax.xml.transform.Source schemaSource) throws SchemaExceptionLoad a schema, which will be available for use by all subsequent operations using this Configuration. Any errors will be notified to the ErrorListener associated with this Configuration.- Parameters:
schemaSource- the JAXP Source object identifying the schema document to be loaded- Throws:
SchemaException- if the schema cannot be read or parsed or if it is invalidjava.lang.UnsupportedOperationException- if the configuration is not schema-aware- Since:
- 8.4
-
addSchemaSource
public void addSchemaSource(javax.xml.transform.Source schemaSource, javax.xml.transform.ErrorListener errorListener) throws SchemaExceptionLoad a schema, which will be available for use by all subsequent operations using this SchemaAwareConfiguration.- Parameters:
schemaSource- the JAXP Source object identifying the schema document to be loadederrorListener- the ErrorListener to be notified of any errors in the schema.- Throws:
SchemaException- if the schema cannot be read or parsed or if it is invalid
-
isSchemaAvailable
public boolean isSchemaAvailable(java.lang.String targetNamespace)
Determine whether the Configuration contains a cached schema for a given target namespace- Parameters:
targetNamespace- the target namespace of the schema being sought (supply "" for the unnamed namespace)- Returns:
- true if the schema for this namespace is available, false if not.
-
getImportedNamespaces
public java.util.Set getImportedNamespaces()
Get the set of namespaces of imported schemas
-
sealNamespace
public void sealNamespace(java.lang.String namespace)
Mark a schema namespace as being sealed. This is done when components from this namespace are first used for validating a source document or compiling a source document or query. Once a namespace has been sealed, it is not permitted to change the schema components in that namespace by redefining them, deriving new types by extension, or adding to their substitution groups.- Parameters:
namespace- the namespace URI of the components to be sealed
-
getElementDeclaration
public SchemaDeclaration getElementDeclaration(int fingerprint)
Get a global element declaration.This method is intended for internal use.
- Returns:
- the element declaration whose name matches the given fingerprint, or null if no element declaration with this name has been registered.
-
getAttributeDeclaration
public SchemaDeclaration getAttributeDeclaration(int fingerprint)
Get a global attribute declaration.This method is intended for internal use
- Returns:
- the attribute declaration whose name matches the given fingerprint, or null if no element declaration with this name has been registered.
-
getSchemaType
public SchemaType getSchemaType(int fingerprint)
Get the top-level schema type definition with a given fingerprint.This method is intended for internal use and for use by advanced applications. (The SchemaType object returned cannot yet be considered a stable API, and may be superseded when a JAXP API for schema information is defined.)
- Parameters:
fingerprint- the fingerprint of the schema type- Returns:
- the schema type , or null if there is none with this name.
-
checkTypeDerivationIsOK
public void checkTypeDerivationIsOK(SchemaType derived, SchemaType base, int block) throws SchemaException, ValidationException
Check that a type is validly derived from another type, following the rules for the Schema Component Constraint "Is Type Derivation OK (Simple)" (3.14.6) or "Is Type Derivation OK (Complex)" (3.4.6) as appropriate.- Parameters:
derived- the derived typebase- the base type; the algorithm tests whether derivation from this type is permittedblock- the derivations that are blocked by the relevant element declaration- Throws:
SchemaException- if the derivation is not allowedValidationException
-
getDocumentValidator
public Receiver getDocumentValidator(Receiver receiver, java.lang.String systemId, int validationMode, int stripSpace, SchemaType schemaType)
Get a document-level validator to add to a Receiver pipeline.This method is intended for internal use.
- Parameters:
receiver- The receiver to which events should be sent after validationsystemId- the base URI of the document being validatedvalidationMode- for example Validation.STRICT or Validation.STRIP. The integer may also have the bit Validation.VALIDATE_OUTPUT set, indicating that the strean being validated is to be treated as a final output stream (which means multiple errors can be reported)stripSpace-schemaType- The type against which the outermost element of the document must be validated (null if there is no constraint)- Returns:
- A Receiver to which events can be sent for validation
-
getElementValidator
public Receiver getElementValidator(Receiver receiver, int nameCode, int locationId, SchemaType schemaType, int validation) throws XPathException
Get a Receiver that can be used to validate an element, and that passes the validated element on to a target receiver. If validation is not supported, the returned receiver will be the target receiver.This method is intended for internal use.
- Parameters:
receiver- the target receiver tp receive the validated elementnameCode- the nameCode of the element to be validated. This must correspond to the name of an element declaration in a loaded schemaschemaType- the schema type (typically a complex type) against which the element is to be validatedvalidation- The validation mode, for example Validation.STRICT or Validation.LAX- Returns:
- The target receiver, indicating that with this configuration, no validation is performed.
- Throws:
XPathException
-
validateAttribute
public int validateAttribute(int nameCode, java.lang.CharSequence value, int validation) throws ValidationExceptionValidate an attribute value.This method is intended for internal use.
- Parameters:
nameCode- the name of the attributevalue- the value of the attribute as a stringvalidation- STRICT or LAX- Returns:
- the type annotation to apply to the attribute node
- Throws:
ValidationException- if the value is invalid
-
getAnnotationStripper
public Receiver getAnnotationStripper(Receiver destination)
Add to a pipeline a receiver that strips all type annotations. This has a null implementation in the Saxon-B product, because type annotations can never arise.This method is intended for internal use.
-
makeParser
public org.xml.sax.XMLReader makeParser(java.lang.String className) throws javax.xml.transform.TransformerFactoryConfigurationErrorCreate a new SAX XMLReader object using the class name provided.
The named class must exist and must implement the org.xml.sax.XMLReader or Parser interface.
This method returns an instance of the parser named.
This method is intended for internal use.
- Parameters:
className- A string containing the name of the SAX parser class, for example "com.microstar.sax.LarkDriver"- Returns:
- an instance of the Parser class named, or null if it is not loadable or is not a Parser.
- Throws:
javax.xml.transform.TransformerFactoryConfigurationError
-
getLocale
public static java.util.Locale getLocale(java.lang.String lang)
Get a locale given a language code in XML format.This method is intended for internal use.
-
setDebugger
public void setDebugger(Debugger debugger)
Set the debugger to be used.This method is provided for advanced users only, and is subject to change.
-
getDebugger
public Debugger getDebugger()
Get the debugger in use. This will be null if no debugger has been registered.This method is provided for advanced users only, and is subject to change.
-
makeSlotManager
public SlotManager makeSlotManager()
Factory method to create a SlotManager.This method is provided for advanced users only, and is subject to change.
-
getOptimizer
public Optimizer getOptimizer()
Factory method to get an Optimizer.This method is intended for internal use only.
-
setClassLoader
public void setClassLoader(java.lang.ClassLoader loader)
Set a ClassLoader to be used when loading external classes. Examples of classes that are loaded include SAX parsers, localization modules for formatting numbers and dates, extension functions, external object models. In an environment such as Eclipse that uses its own ClassLoader, this ClassLoader should be nominated to ensure that any class loaded by Saxon is identical to a class of the same name loaded by the external environment.This method is intended for external use by advanced users, but should be regarded as experimental.
-
getClassLoader
public java.lang.ClassLoader getClassLoader()
Get the ClassLoader supplied using the methodsetClassLoader(java.lang.ClassLoader). If none has been supplied, return null.This method is intended for external use by advanced users, but should be regarded as experimental.
-
getClass
public java.lang.Class getClass(java.lang.String className, boolean tracing, java.lang.ClassLoader classLoader) throws XPathExceptionLoad a class using the class name provided. Note that the method does not check that the object is of the right class.This method is intended for internal use only.
- Parameters:
className- A string containing the name of the class, for example "com.microstar.sax.LarkDriver"classLoader- The ClassLoader to be used to load the class. If this is null, then the classLoader used will be the first one available of: the classLoader registered with the Configuration usingsetClassLoader(java.lang.ClassLoader); the context class loader for the current thread; or failing that, the class loader invoked implicitly by a call of Class.forName() (which is the ClassLoader that was used to load the Configuration object itself).- Returns:
- an instance of the class named, or null if it is not loadable.
- Throws:
XPathException- if the class cannot be loaded.
-
getInstance
public java.lang.Object getInstance(java.lang.String className, java.lang.ClassLoader classLoader) throws XPathExceptionInstantiate a class using the class name provided. Note that the method does not check that the object is of the right class.This method is intended for internal use only.
- Parameters:
className- A string containing the name of the class, for example "com.microstar.sax.LarkDriver"classLoader- The ClassLoader to be used to load the class. If this is null, then the classLoader used will be the first one available of: the classLoader registered with the Configuration usingsetClassLoader(java.lang.ClassLoader); the context class loader for the current thread; or failing that, the class loader invoked implicitly by a call of Class.forName() (which is the ClassLoader that was used to load the Configuration object itself).- Returns:
- an instance of the class named, or null if it is not loadable.
- Throws:
XPathException- if the class cannot be loaded.
-
makeCollator
public java.util.Comparator makeCollator(java.lang.String className) throws XPathExceptionLoad a named collator class and check it is OK.This method is intended for internal use only.
- Throws:
XPathException
-
setLazyConstructionMode
public void setLazyConstructionMode(boolean lazy)
Set lazy construction mode on or off. In lazy construction mode, element constructors are not evaluated until the content of the tree is required. Lazy construction mode is currently experimental and is therefore off by default.- Parameters:
lazy- true to switch lazy construction mode on, false to switch it off.
-
isLazyConstructionMode
public boolean isLazyConstructionMode()
Determine whether lazy construction mode is on or off. In lazy construction mode, element constructors are not evaluated until the content of the tree is required. Lazy construction mode is currently experimental and is therefore off by default.- Returns:
- true if lazy construction mode is enabled
-
registerExternalObjectModel
public void registerExternalObjectModel(ExternalObjectModel model)
Register an external object model with this Configuration.- Parameters:
model- The external object model. This can either be one of the system-supplied external object models for JDOM, XOM, or DOM, or a user-supplied external object model.This method is intended for advanced users only, and is subject to change.
-
findExternalObjectModel
public ExternalObjectModel findExternalObjectModel(java.lang.Object node)
Find the external object model corresponding to a given node.This method is intended for internal use only.
- Parameters:
node- a Node as implemented in some external object model- Returns:
- the first registered external object model that recognizes this node; or null if no-one will own up to it.
-
getExternalObjectModels
public java.util.List getExternalObjectModels()
Get all the registered external object models.This method is intended for internal use only.
-
makePipelineConfiguration
public PipelineConfiguration makePipelineConfiguration()
Make a PipelineConfiguration from the properties of this Configuration- Since:
- 8.4
-
setImplicitTimezone
public void setImplicitTimezone(int minutes)
Set the implicit timezone, as a positive or negative offset from UTC in minutes. The range is -14hours to +14hours
-
getImplicitTimezone
public int getImplicitTimezone()
Get the implicit timezone, as a positive or negative offset from UTC in minutes. The range is -14hours to +14hours- Returns:
- the value set using
setImplicitTimezone(int), or failing that the timezone from the system clock at the time the Configuration was created.
-
getConfiguration
public static Configuration getConfiguration(XPathContext context)
Get the configuration, given the context. This is provided as a static method to make it accessible as an extension function.
-
setSourceResolver
public void setSourceResolver(SourceResolver resolver)
Supply a SourceResolver
-
getSourceResolver
public SourceResolver getSourceResolver()
Get the current SourceResolver. If none has been supplied, a system-defined SourceResolver is returned.- Returns:
- the current SourceResolver
-
resolveSource
public javax.xml.transform.Source resolveSource(javax.xml.transform.Source source, Configuration config) throws XPathExceptionImplement the SourceResolver interface- Specified by:
resolveSourcein interfaceSourceResolver- Parameters:
source- A source object, typically the source supplied as the first argument toTransformer.transform(javax.xml.transform.Source, javax.xml.transform.Result)or similar methods.config- The Configuration. This provides the SourceResolver with access to configuration information; it also allows the SourceResolver to invoke the resolveSource() method on the Configuration object as a fallback implementation.- Returns:
- a source object that Saxon knows how to process. This must be an instance of one
of the classes StreamSource, SAXSource, DOMSource
NodeInfo, orPullSource. Return null if the Source object is not recognized - Throws:
XPathException- if the Source object is recognized but cannot be processed
-
makeEmitter
public Receiver makeEmitter(java.lang.String clarkName, Controller controller) throws XPathException
Load a named output emitter or SAX2 ContentHandler and check it is OK.- Throws:
XPathException
-
setConfigurationProperty
public void setConfigurationProperty(java.lang.String name, java.lang.Object value)Set a property of the configuration. This method underpins the setAttribute() method of the TransformerFactory implementation, and is provided to enable setting of Configuration properties using URIs without instantiating a TransformerFactory: specifically, this may be useful when running XQuery, and it is also used by the Validator API- Parameters:
name- the URI identifying the property to be setvalue- the value of the property- Throws:
java.lang.IllegalArgumentException- if the property name is not recognized
-
getConfigurationProperty
public java.lang.Object getConfigurationProperty(java.lang.String name)
Get a property of the configuration- Parameters:
name- the name of the required property- Returns:
- the value of the property
- Throws:
java.lang.IllegalArgumentException- thrown if the property is not one that Saxon recognizes.
-
-