Saxon configuration annotations
Defines which Saxon edition is to be used.
Defines properties of the global configuration.
ALLOW_EXTERNAL_FUNCTIONS determines whether calls to reflexive external functions
are
allowed. More specifically, if set to false it disallows all of the
following:
Calls to reflexive Java extension functions
Use of the XSLT system-property() function to access Java system properties
Use of a relative URI in the xsl:result-document instruction
Calls to XSLT extension instructions
The default value is true. The setting false is recommended in an
environment where untrusted stylesheets may be executed.
This option does not disable use of the doc() function or similar
functions to access the filestore of the machine where the transformation or query
is running. That should be done using a user-supplied URIResolver
Note that integrated extension functions are trusted; calls to such functions are
allowed even if this configuration option is false. In cases where an integrated
extension function is used to load and execute untrusted code, it should check this
configuration option before doing so.
ALLOW_STREAMABILITY_EXTENSIONS determines whether Saxon allows streaming of constructs
that are not guaranteed streamable according to the W3C streamability rules in the
XSLT 3.0
specification.
When this is set to false, Saxon tries to match the W3C streamability rules as closely
as
possible (ensuring that a stylesheet that is streamable under Saxon is also streamable
under any
other streamable XSLT 3.0 processor). However, it is likely that there will still
be some differences.
The supplied CollationURIResolver is used to process any collation URIs
found in the query or stylesheet, returning an object of class
StringCollator that implements the requested collation.
The supplied class is instantiated and the resulting instance is used as the value
of
the
FeatureKeys#COLLATION_URI_RESOLVER property.
The supplied class is instantiated and the resulting instance is used as the value
of
the
FeatureKeys#COLLECTION_URI_RESOLVER property.
If run-time tracing of stylesheet or query execution is required, then the code must
be compiled with tracing enabled. Default is false. This option causes code to be
compiled that makes calls to a
net.sf.saxon.lib.TraceListener, but this has
no effect unless a TraceListener is registered at execution time.
This determines the collection that is used when the fn:collection()
function is called with no arguments; the effect is the same as if it were called
passing the URI that is the value of this configuration property.
If true, the XML parser is requested to perform validation of source documents
against their DTD. Default is false.
This option establishes a default for use whenever source documents (not stylesheets
or schema documents) are parsed. The option can be overridden for individual
documents by setting the
net.sf.saxon.lib.ParseOptions for that
individual document, for example from a URIResolver.
This option determines whether DTD validation failures should be treated as
recoverable. If the option is set, a validation failure is reported as a warning
rather than an error. The default is false.
This option establishes a default for use whenever source documents (not stylesheets
or schema documents) are parsed. The option can be overridden for individual
documents by setting the
net.sf.saxon.lib.ParseOptions for that
individual document, for example from a URIResolver.
ERROR_LISTENER_CLASS is the name of the class used to implement the JAXP
ErrorListener. This is used both at compile time and at run-time.
Currently if this option is specified, the class is instantiated, and the same
instance is used for all processes running under this configuration. This may change
in future so that a new instance is created for each compilation or evaluation.
Finer control can be obtained by setting the ErrorListener for a
specific XSLT or XQuery compilation or evaluation.
Defines the environment variable resolver for all queries and
transforms using this configuration. This affects the result of the XPath
functions available-environment-variables() and environment-variables(). The value
should be a Java class implementing
net.sf.saxon.lib.EnvironmentVariableResolver.
EXPAND_ATTRIBUTE_DEFAULTS determines whether fixed and default values defined in a
schema or DTD will be expanded (both on input and on output documents, if validation
is requested). By default (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 behavior.
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.
By default, Saxon-EE attempts to generate Java bytecode for evaluation of
parts of a query or stylesheet that are amenable to such treatment. Setting this option
to false disables this.
LAZY_CONSTRUCTION_MODE determines whether temporary trees are constructed * lazily.
The default setting is false; there are a few situations (but not many) where
setting this * to true can give a performance benefit (especially a memory
saving).
The option is most likely to be effective when executing XQuery in "pull" mode, that
is, when the client calls the query processor to deliver the result as a stream of
nodes, rather than running the query and piping the results into a serializer.
Default is false. If true, line and column number information is retained for all
source documents. This information is accessible using the
saxon:line-number() and saxon:column-number()
extension functions.
Note that the information is only as good as the XML parser supplies. SAX parsers
generally report the position of an element node using the line and column number
of
the ">" character that forms the last character of the start tag.
A string whose value is an integer in the range 0 (no optimization) to 10 (full
optimization); currently all values other than 0 result in full optimization but
this is likely to change in future. The default is full optimization; this feature
allows optimization to be suppressed in cases where reducing compile time is
important, or where optimization gets in the way of debugging, or causes extension
functions with side-effects to behave unpredictably. (Note however, that even with
no optimization, lazy evaluation may still cause the evaluation order to be not as
expected.)
The class will be instantiated and the resulting XMLReader will be used
to parse source documents (that is, the principal source document plus any secondary
source documents read using the doc(), document(), or
collection() function)
If true, calls on the doc() and document() functions, if
their arguments are known at compile time, will be evaluated at compile time, and
the resulting document will be stored as part of the Saxon
net.sf.saxon.Configuration and shared by all queries and
transformations running within that Configuration. This is useful for
reference documents that have stable content and are used by many different queries
and transformations. The default is false, which means each query or transformation
will reload the document from disk.
This option has no effect on the Java platform. The default is true. When
running on the .NET platform, if the option is true it causes the Apache Xerces
parser (cross-compiled using IKVMC) to be used in preference to the .NET XML parser.
If false the .NET XML parser (System.Xml.XmlTextReader) is used. One
reason for using this option is that the .NET XML parser does not report ID
attributes, which means that the id() function does not work.
True if the the standard URI resolver is to recognize query parameters included in
the URI (for example, ?val=strict). Such parameters can then be used in
URIs passed to the doc() or document() functions. For
details of the query parameters available, see
Source
Documents
. The default is false.
This option has no effect if a user-supplied URIResolver is in use,
unless the user-supplied URIResolver chooses to inherit this
functionality from the standard URIResolver.
Allowed parameters include validation=strict|lax|strip to perform schema
validation, strip-space=yes|ignorable|no to control whitespace
stripping, and xinclude=yes|no to control whether XInclude processing
takes place (assuming the XML parser supports it).
Indicates whether and how schema validation should be applied to source
documents.
The class will be instantiated and the resulting SerializerFactory will
be used to create the serialization pipeline for XSLT and XQuery results. By
subclassing the standard SerializerFactory it is possible to customize
many aspects of the output produced by the Serializer, or to introduce new
serialization methods and parameters.
On interfaces that allow a org.xml.sax.Source to be supplied, if a kind
of Source is provided that Saxon does not recognize, it will be passed
to the user-supplied SourceResolver, which has the opportunity to
convert it to a kind of Source that Saxon does recognize. This allows
new kinds of input to be supplied as input to Saxon's query, transformation, and
validation engines.
STANDARD_ERROR_OUTPUT_FILE is the name of a file to which Saxon will redirect output
that would otherwise go to the operating system standard error stream (System.err).
This is the fallback destination for various tracing and diagnostic output. In some
cases a more specific mechanism exists to select the destination for particular
kinds of output.
Indicates whether all whitespace, no whitespace, or whitespace in elements defined
in
a DTD or schema as having element-only content should be stripped from source
documents. The default is "ignorable". This whitespace stripping is additional to
any stripping done as a result of the xsl:strip-space declaration in an
XSLT stylesheet.
This is set to true to suppress the warning otherwise issued by command-line interfaces
indicating that an evaluation license is in use and is due to expire in a set number
of days.
This is set to true to cause basic timing and tracing information is to be output
to
the standard error output stream. The name of the feature is poorly chosen, since
much of the information that is output has nothing to do with timing, for example
the names of output files for xsl:result-document are traced.
If this option is set, Saxon will output (to the standard error output) progress
information about its attempts to locate and disambiguate references to reflexive
Java extension functions. This is useful for diagnostics if the XQuery or XSLT
compiler is failing to locate user-written extension functions.
The TraceListener will be notified of significant events occurring
during a query or transformation, for tracing or debugging purposes.
Setting a TraceListener automatically sets the
FeatureKeys#COMPILE_WITH_TRACING option.
Avoid this option if more than one transformation or query is running concurrently:
use the feature
FeatureKeys#TRACE_LISTENER_CLASS instead.
Alternatively, it is possible to set a TraceListener for an individual
query or transformation.
The class will be instantiated once for each query or transformation, and the
resulting TraceListener will be notified of significant events
occurring during that query or transformation, for tracing or debugging
purposes.
Setting a TraceListener automatically sets the
FeatureKeys#COMPILE_WITH_TRACING option.
If this option is set, Saxon will output (to the standard error output) detailed
information about the rewrites to the expression tree made by the optimizer. This
information is mainly useful for internal system debugging, but it is also possible
to digest it to analyze the ways in which the expression has been optimized for the
purpose of performance analysis and tuning.
Selects an implementation of the Saxon tree model. The default is
TINY_TREE.
For running XQuery Update, use the linked tree, because it is the only implementation
that is updateable.
Selects an implementation of the Saxon tree model. The default is
tinyTree.
For running XQuery Update, use the linked tree, because it is the only implementation
that is updateable.
An instance of the specified URIResolver class will be created, and used
to resolve (dereference) all URIs specifed in calls to the doc() and
document() functions, as well as URIs used in
xsl:include and xsl:import and location hints for
XQuery modules and XSD schema documents.
This option determines whether a TransformerHandler created with this
TransformerFactory or Configuration recognizes the
JAXP-defined processing instructions Result.PI_DISABLE_OUTPUT_ESCAPING
and Result.PI_ENABLE_OUTPUT_ESCAPING in the input stream as
instructions to disable or to re-enable output escaping. The default value is
false.
This option is relevant only when the TinyTree is used; it determines whether (for
a
validated document) a cache will be maintained containing the typed values of nodes.
Typed values are held in the cache only for elements and attributes whose type is
other than string, untypedAtomic, or anyURI. The default value is true. Setting this
value to false can reduce memory requirements at the cost of requiring recomputation
of typed values on each access.
This option indicates (if true) that errors occuring while validating a final result
tree are not to be treated as fatal.
Regardless of the setting of this option, all validation errors are reported to
the error() method of the ErrorListener, and validation is terminated if the
error() method throws an exception, or if the error limit set in the ParseOptions
object is reached.
This option primarily controls what happens at the end of a validation episode.
If the validation episode detected one or more validation errors, then when this option
is off, an exception is thrown, which will normally result in any query or stylesheet
failing with a dynamic error, and no output file being written. If the option is on,
no exception is thrown, and the output is written as if validation had been successful.
Note in this case that any type annotations present in a result document are unreliable.
If this option is set when running XSLT or XQuery, it is ignored as far as
input files are concerned: validation errors in input files are still fatal.
However, if the option is set and a validation error occurs in a final output file,
the output file is still written and the process terminates as if successful.
The detailed interpretation of this option changed in Saxon 9.5.
This determines the XML version used by the Configuration.
Note that source documents specifying xml version="1.0" or "1.1" are accepted
regardless of this setting. The effect of this switch is to change the validation
rules for types such as xs:Name and xs:NCName, to change
the characters allowed in names within XPath expressions (etc.), to change the
meaning of \i and \c in regular expressions, and to
determine whether the serializer allows XML 1.1 documents to be constructed.
The default is currently 1.0, but may change.
Indicates whether source documents should have any XInclude directives expanded. The
default is false. The option applies to all input XML documents, including
stylesheets and schema documents. It can be overridden for individual documents
using the
net.sf.saxon.lib.ParseOptions class.
This option relies on support in the underlying XML parser. If the XML parser does
not support XInclude processing, the option is ignored.
Defines defaults for serialization properties.
Indicates whether serialized output should include a byte order mark
A list of element names whose content is to be serialized using CDATA sections
The public identifier to be used in the DOCTYPE declaration
The system identifier (URI) to be used in the DOCTYPE declaration
The output encoding, for example utf-8 or us-ascii
Defines whether URI-valued attributes in HTML/XHTML (for example href)
are to be %HH-encoded
Defines whether a <meta> element should be added to the
HTML <head> element to identify the media type of the output
Defines whether indentation is to be added to the output.
Defines the media type (MIME type) of the output.
Defines the serialization method, for example 'xml' or 'html' or 'text'.
Defines whether Unicode normalization should be applied during serialization,
and if so, which Unicode normalization form should be used.
Defines whether the XML declaration should be omitted from XML output.
Defines whether the XML declaration in XML output should have a 'standalone' attribute.
Defines a list of element names whose content should not be indented
even when indent='yes' is specified.
Defines whether namespaces present on a parent element but not on
its children should be undeclared using XML Namespaces 1.1 syntax.
Defines the version of XML or HTML to be used for the output.
Defines collation URIs for use in queries and stylesheets.
Defines a collation URI for use in queries and stylesheets.
The collation URI as used in queries and stylesheets.
Indicates whether a sequence of digits within a string is to be treated as a number,
so that AB100 sorts after AB99.
Indicates whether lower-case letters sort before or after upper-case.
The name of a Java class that performs the string comparison.
Indicates whether composite (accented) Unicode characters should be decomposed
before sorting.
Indicates whether differences of case are to be ignored during comparisons.
Indicates whether modifiers (such as accents and diacritical marks)
are to be ignored during comparisons.
Indicates whether width differences between characters
are to be ignored during comparisons.
Indicates the natural language of the text, for example 'en' for English or 'de' for
German.
Provides detailed sorting rules in the format of the Java RuleBasedCollator class.
The strength of the collation: primary, secondary, or tertiary. These terms are described
in the Unicode Collation Algorithm.
Defines localization of the output of format-date(), format-number(), and
xsl:number.
This determines the country that is used by format-date() and similar
functions if no country code is supplied explicitly. If no value is given for this
property, the default is taken from the Java Locale, which in turn typically depends
on settings for the current user in the operating system.
This option determines the language that is used by format-date(),
xsl:number and similar constructs if no language code is supplied
explicitly. If no value is given for this property, the default is taken from the
Java Locale, which in turn typically depends on settings for the current user in the
operating system.
Defines localization of the output of format-date(), format-number(), and
xsl:number for a specific language.
The Java class used to perform the localization.
The language to which this localization applies, for example 'fr-CA' for Canadian
French.
Defines configuration properties specific to XSLT processing.
ERROR_LISTENER_CLASS is the name of the class used to implement the JAXP
ErrorListener. This is used both at compile time and at run-time.
Currently if this option is specified, the class is instantiated, and the same
instance is used for all processes running under this configuration. This may change
in future so that a new instance is created for each compilation or evaluation.
Finer control can be obtained by setting the ErrorListener for a
specific XSLT or XQuery compilation or evaluation.
Use the specified Receiver to process the output from xsl:message. The
class must implement the net.sf.saxon.event.Receiver interface. This
interface is similar to a SAX ContentHandler, in that it takes a stream
of events to generate output.
By default the standard XML emitter is used, configured to write to the standard
error stream, and to include no XML declaration.
In general the content of a message is an XML fragment. Each message is output as
a
new document. The sequence of calls to this Receiver is as follows: there is a
single open() call at the start of the transformation, and a single
close() call at the end; and each evaluation of an
xsl:message instruction starts with a startDocument()
call and ends with endDocument().
The startDocument() event has a properties argument
indicating whether terminate="yes" was specified, and the
locationId on calls such as startElement() and
characters() can be used to identify the location in the stylesheet
where the message data originated (this is achieved by passing the supplied
locationId in a call to
getPipelineConfiguration().getLocator().getSystemId(locationId), or
to getLineNumber() on the same object).
Select the class net.sf.saxon.event.MessageWarner to have
xsl:message output notified to the JAXP ErrorListener,
as described in the JAXP documentation.
The supplied class will be instantiated, and the resulting
OutputURIResolver will be used to resolve URIs of secondary result
documents selected in the href attribute of the
xsl:result-document instruction
An Integer, one of
net.sf.saxon.Configuration#RECOVER_SILENTLY,
net.sf.saxon.Configuration#RECOVER_WITH_WARNINGS, or
net.sf.saxon.Configuration#DO_NOT_RECOVER. Indicates the policy for
handling dynamic errors that the XSLT specification defines as recoverable. 0 means
recover silently; 1 means recover after signalling a warning to the
ErrorListener; 2 means treat the error as fatal. An example of a
recoverable error is when two template rules match the same node.
Indicates the policy for handling dynamic errors that the XSLT specification defines
as recoverable. "recoverSilently" means recover silently; "recoverWithWarnings"
means recover after signalling a warning to the ErrorListener;
"doNotRecover" means treat the error as fatal. An example of a recoverable error is
when two template rules match the same node.
This property indicates whether stylesheets should be compiled with the ability to
handle schema-typed input documents. By default a stylesheet is compiled to handle
such input if it contains an xsl:import-schema instruction, and not
otherwise. It is
necessary for a stylesheet to be compiled as schema-aware if it is to handle typed
(validated) input documents in which nodes have type annotations based on their
schema-defined type.
This option can be set for a particular XSLT compilation. When the option is set at
the Configuration level (or on a TransformerFactory), it acts as a default.
The class will be instantiated, and the resulting XMLReader will be used
to parse stylesheet documents (that is, the principal stylesheet module plus any
secondary source documents read using xsl:include or xsl:import) and also schema
documents.
This property defines a URIResolver used when dereferencing the URIs
that appear in the href attributes of the xsl:include and
xsl:import declarations. Note that this defaults to the setting of
the global URI_RESOLVER property.
This option can be set for a particular XSLT compilation. When the option is set at
the Configuration level (or on a TransformerFactory), it acts as a default.
In the absence of this property, the global URIResolver
specified as the value of the
#URI_RESOLVER_CLASS property is used.
This property determines the version of XSLT to be supported by default
XSLT 3.0 is supported only in Saxon EE. If no value is specified for the property,
an XSLT 2.0 or XSLT 3.0 processor is used depending on the value of the version
attribute of the xsl:stylesheet element.
Indicates whether a warning message should be notified (to the
ErrorListener) if running Saxon against an XSLT stylesheet that
specifies version="1.0". The warning that an XSLT 1.0 stylesheet is
being processed using an XSLT 2.0 processor is output by default (because the W3C
specification requires it), but it may be suppressed using this option.
Describes a user-supplied library of XSLT extension instructions.
The Java class that implements the extension instructions.
The namespace URI of the extension instructions implemented by this extension library.
Defines configuration properties specific to XQuery processing.
Determines whether XQuery Update syntax is accepted. If true, update syntax is
accepted, if false, it is not accepted. Setting the value to true does not mean that
the query has to use update syntax, only that it may do so.
Note that XQuery Update syntax and XQuery 3.0 syntax cannot currently be mixed.
This option can be set for a particular XQuery compilation. When the option is set
at
the Configuration level, it acts as a default.
On the command line, this option is combined with the option "discard" which
indicates that updates are allowed, but the updates are not written back to
filestore. This does not correspond to any option in the Java API, where writing an
updated document back to filestore only happens if explicitly requested.
This option defines the default value of the construction mode in the XQuery static
context (overridable in the query prolog)
This option can be set for a particular XQuery compilation. When the option is set
at
the Configuration level, it acts as a default.
This property defines the default namespace for elements and types that are not
qualified by a namespace prefix.
This option can be set for a particular XQuery compilation. When the option is set
at
the Configuration level, it acts as a default.
This property defines the default namespace for function names that are not
qualified by a namespace prefix.
This option can be set for a particular XQuery compilation. When the option is set
at
the Configuration level, it acts as a default.
This property defines how the empty sequence is handled in XQuery sorting (the "order
by" clause). If true, () comes at the start of the sorted sequence; if false, it
comes last.
This option can be set for a particular XQuery compilation. When the option is set
at
the Configuration level, it acts as a default.
ERROR_LISTENER_CLASS is the name of the class used to implement the JAXP
ErrorListener. This is used both at compile time and at run-time.
Currently if this option is specified, the class is instantiated, and the same
instance is used for all processes running under this configuration. This may change
in future so that a new instance is created for each compilation or evaluation.
Finer control can be obtained by setting the ErrorListener for a
specific XSLT or XQuery compilation or evaluation.
This property defines the default value of the inherit-namespaces property in the
XQuery static context.
This option can be set for a particular XQuery compilation. When the option is set
at
the Configuration level, it acts as a default.
Affects XQuery only. An instance of a user-written class implementing Saxon's
net.sf.saxon.lib.ModuleURIResolver interface. This is used to
process any URIs used in import module directives in XQuery.
Affects XQuery only. The name of a user-written class implementing Saxon's
net.sf.saxon.lib.ModuleURIResolver interface. This is used to
process any URIs used in import module directives in XQuery.
This property defines whether "boundary space" (insignificant space in direct element
constructors) should be retained or not
This option can be set for a particular XQuery compilation. When the option is set
at
the Configuration level, it acts as a default.
This property defines whether unused namespace declarations are retained by XQuery
element copy operations
This option can be set for a particular XQuery compilation. When the option is set
at
the Configuration level, it acts as a default.
This property defines the default expected context item type for a query.
This option can be set for a particular XQuery compilation. When the option is set
at
the Configuration level, it acts as a default.
This property determines the version of XQuery used by the Configuration. In order
to use XQuery 3.0, it is necessary both to set the XQuery compiler to process XQuery
3.0, and to specify XQuery 3.0 in the query prolog of each module that uses XQuery
3.0 features.
This option can be set for a particular XQuery compilation. When the option is set
at
the Configuration level, it acts as a default.
Note that XQuery 3.0 features cannot be used with XQuery Update.
XQuery 3.0 is supported only in Saxon EE.
Defines configuration properties specific to XML Schema processing.
Affects schema construction (whether for standalone validation, or in the context
of XSLT or XQuery).
If set to true, the schema processor always attempts to fetch a schema document appearing
in an xs:import directive, whether or not a schema for that namespace has already
been loaded. Note that this setting might cause spurious errors due to like-named
schema
components being loaded more than once. With the default setting (false), xs:import directives do not cause
a schema document to be loaded if the schema already contains components for the specified
target namespace.
OCCURRENCE_LIMITS determines the largest values of minOccurs and
maxOccurs that can be accommodated when compiling an "expanded"
finite state machine to represent an XSD content model grammar. These limits do not
apply in the common cases where the grammar can be implemented using a counting
finite-state-machine, but in those cases where this is not possible, any
minOccurs value greater than the first integer is reduced to the
value of the first integer, and any maxOccurs value greater than the
second integer is treated as "unbounded".
The supplied SchemaURIResolver will be used to resolve URIs of schema
documents referenced in xsl:import-schema declarations in XSLT,
import schema in XQuery, references from one schema document to
another using xs:include or xs:import, and references from
an instance document to a schema using xsi:schemaLocation.
The name of a class that implements the interface SchemaURIResolver;
this class will be instantiated and the resulting instance will be used as the value
of the
FeatureKeys#SCHEMA_URI_RESOLVER property.
This option determines whether or not to use the xsi:schemaLocation
and xsi:noNamespaceSchemaLocation attributes in an instance
document to locate a schema for validation.
Note, these attribute are only consulted if validation is requested; the presence
of
one of these attributes never by itself triggers validation.
This property determines the version of XML Schema used by the Configuration. The
default is XSD 1.0. If XSD 1.0 is selected, XSD 1.1 features will be rejected, with
the exception of the version control attributes that allow sections of the schema
to
be marked as requiring XSD 1.0 or XSD 1.1.
Defines additional classes available for integration purposes.
Defines an external object model (tree representation). The content is the name
of a Java class that implements net.sf.saxon.lib.ExternalObjectModel.
Defines an external function, implemented in Java, that can be called from
within an XPath expression. The content is the name of a Java class that
implements net.sf.saxon.lib.ExtensionFunctionDefinition
Provides the location of a schema document that will
be preloaded into the configuration and made
available to all queries and stylesheets.
Provides the location of a schema in Saxon's SCM format that
will be preloaded into the configuration and made
available to all queries and stylesheets.