Project

Profile

Help

How to connect?
Download (164 KB) Statistics
| Branch: | Revision:

he / tools / featureKeys / FeatureKeys.xml @ 2699858e

1
<?xml version="1.0" encoding="UTF-8"?>
2
<!-- 2015-03-20 'configfiledesc' and 'typedesc' child elements of 'feature' added, to be used
3
    with 'configfile' in the generation of the documentation about the configuration file. 
4
    If there is no 'typedesc', then the 'type' is used; 'typedesc' is used to give more detail. -->
5

    
6
<!-- 2017-09-17 Added unique integer feature codes. This will be used in the API so they should be
7
    stable. Use max(//featureCode/number())+1 to give the next code to allocate.
8
    -->
9

    
10
<!-- 2018-10-24 'desc' restructuring. In the dotnetdoc, desc/p[1] is used for the field "summary". 
11
    In the javadoc, the first sentence is automatically taken.
12
    So ideally the first paragraph of desc should be concise (maybe a single sentence).
13
    -->
14

    
15
<features> 
16

    
17
    <feature>
18
        <featureCode>1</featureCode>
19
        <name>ALLOW_EXTERNAL_FUNCTIONS</name>
20
        <type>boolean</type>
21
        <uri>http://saxon.sf.net/feature/allow-external-functions</uri>
22
        <editions>HE PE EE</editions>
23
        <configfile>global/@allowExternalFunctions</configfile>
24
        <configfiledesc>
25
            <p>True if calls to external Java or .NET functions are allowed.</p>
26
        </configfiledesc>
27
        <commandline for="TQ">-ext</commandline>
28
        <desc>
29
            <p>ALLOW_EXTERNAL_FUNCTIONS determines whether calls to reflexive external functions are
30
                allowed.</p>
31
            <p>More specifically, if set to <b>false</b> it disallows all of the
32
                following:</p>
33
            <ul>
34
                <li>Calls to reflexive Java extension functions</li>
35
                <li>Use of the XSLT <code>system-property()</code> function to access Java system
36
                    properties</li>
37
                <li>Use of a URI in the <code>href</code> attribute of an <code>xsl:result-document</code> instruction</li>
38
                <li>Calls to XSLT extension instructions</li>
39
            </ul>
40
            <p>The default value is <b>true</b>. The setting <b>false</b> is recommended in an
41
                environment where untrusted stylesheets may be executed.</p>
42
            <p>This option does not disable use of the <code>doc()</code> function or similar
43
                functions to access the filestore of the machine where the transformation or query
44
                is running. That should be done using a user-supplied <code>URIResolver</code>.</p>
45
            <p>Note that integrated extension functions are trusted; calls to such functions are
46
                allowed even if this configuration option is false. In cases where an integrated
47
                extension function is used to load and execute untrusted code, it should check this
48
                configuration option before doing so.</p>
49
            <p>If the value of the property is false, then it will also be set to false on any new
50
            Configuration created using the <code>fn:transform()</code> function.</p>
51
        </desc>
52
    </feature>
53
    <feature>
54
        <featureCode>2</featureCode>
55
        <name>ALLOW_MULTITHREADING</name>
56
        <type>boolean</type>
57
        <uri>http://saxon.sf.net/feature/allow-multithreading</uri>
58
        <editions>EE</editions>
59
        <configfile>global/@allowMultiThreading</configfile>
60
        <configfiledesc>
61
            <p>True if <a class="bodylink code" href="/extensions/attributes/threads"
62
                    >saxon:threads</a> attribute on <code>xsl:for-each</code> causes multi-threading
63
                under Saxon-EE; false to disable multi-threading. Default is true (but
64
                multi-threading only happens if explicitly requested using
65
                    <code>saxon:threads</code>).</p>
66
        </configfiledesc>
67
        <desc>
68
            <p>ALLOW_MULTITHREADING determines whether multi-threading is allowed.</p>
69
            <p>If true (the default), the presence of the attribute <code>saxon:threads="N"</code>
70
                on an <code>xsl:for-each</code> instruction, when running under Saxon-EE, causes
71
                multi-threaded execution. If set to false, the value of the
72
                    <code>saxon:threads</code> argument is ignored.</p>
73
            <p>Setting the value to false also disables asynchronous processing of
74
                    <code>xsl:result-document</code> instructions.</p>
75
            <p>The default value is true if Saxon-EE is in use, false otherwise.</p>
76
        </desc>
77
    </feature>
78
    <feature>
79
        <featureCode>3</featureCode>
80
        <name>ALLOW_OLD_JAVA_URI_FORMAT</name>
81
        <type>boolean</type>
82
        <uri>http://saxon.sf.net/feature/allow-old-java-uri-format</uri>
83
        <editions>PE EE</editions>
84
        <configfile>global/@allowOldJavaUriFormat</configfile>
85
        <configfiledesc>
86
            <p>True if reflexive calls to external Java functions are allowed to use the "liberal"
87
                syntax (for example "http://my.com/extensions/ java.util.Date"). The default is to
88
                allow only the "strict" form of URI such as "java:java.util.Date".</p>
89
        </configfiledesc>
90
        <desc>
91
            <p>ALLOW_OLD_JAVA_URI_FORMAT determines whether extension function calls to
92
                dynamically-loaded Java extension functions may use the URI format supported in
93
                older Saxon releases.</p>
94
            <p>If the value is false (the default), the only URI format accepted is (for example)
95
                "java:java.util.Date" - that is, a URI consisting of the string "java:" followed by
96
                the Java qualified class name of the class containing the implementation of the
97
                extension function.</p>
98
            <p>If the value is true, then in addition to this format, the following are accepted:
99
                (a) the Java class name on its own ("java.util.Date"), and (b) any URI in which the
100
                Java class name follows the last "/" character (for example
101
                "http://my.com/extensions/java.util.Date"). This last format was originally provided
102
                for compatibility with xt and xalan, but it causes problems because it leads to
103
                unnecessary attempts to load spurious classes when the user did not intend the URI
104
                to represent a dynamically-loaded Java class.</p>
105
        </desc>
106
    </feature>
107

    
108
    <feature>
109
        <featureCode>4</featureCode>
110
        <name>ALLOW_SYNTAX_EXTENSIONS</name>
111
        <type>boolean</type>
112
        <uri>http://saxon.sf.net/feature/allowSyntaxExtensions</uri>
113
        <editions>PE EE</editions>
114
        <configfile>global/@allowSyntaxExtensions</configfile>
115
        <configfiledesc>
116
            <p>Enables use of (experimental and non-conformant) extensions to XPath syntax.</p>
117
        </configfiledesc>
118
        <desc>
119
            <p>This flag must be set to enable use of extensions to XPath, XQuery and XSLT
120
                syntax that go beyond what is allowed by the extensibility mechanisms in the spec.
121
                In some cases these extensions are experimental and may not be carried forward to future
122
            Saxon releases.</p>
123
            <p>Syntax extensions in Saxon 10 include the use of type aliases (<code>type(...)</code> where
124
                an item type is expected, and <code>declare type NAME = item-type</code> in the XQuery Prolog); 
125
                and simple inline functions (for example <code>.{. + 1}</code>).</p>
126
        </desc>
127
    </feature>
128
 
129
    <feature>
130
        <featureCode>5</featureCode>
131
        <name>ASSERTIONS_CAN_SEE_COMMENTS</name>
132
        <type>boolean</type>
133
        <uri>http://saxon.sf.net/feature/assertionsCanSeeComments</uri>
134
        <editions>EE</editions>
135
        <configfile>xsd/@assertionsCanSeeComments</configfile>
136
        <configfiledesc>
137
            <p>Determines whether comment and processing instructions in a document being validated
138
                are visible to assertions in an XSD 1.1 schema.</p>
139
        </configfiledesc>
140
        <desc>
141
            <p>ASSERTIONS_CAN_SEE_COMMENTS determines whether comment and processing instructions in
142
                a document being validated are visible to assertions in an XSD 1.1 schema.</p>
143
            <p>If the value is false (the default), comments and processing instructions are
144
                stripped from the view of the document that is made visible to the XPath expression
145
                that implements the assertion. If this creates adjacent text nodes, they are
146
                collapsed into a single text node.</p>
147
            <p>If the value is true, then comments and processing instructions are visible to the
148
                XPath assertion.</p>
149
        </desc>
150
    </feature>
151
    <feature>
152
        <featureCode>6</featureCode>
153
        <name>COLLATION_URI_RESOLVER</name>
154
        <type>Instance of <link>net.sf.saxon.lib.CollationURIResolver</link></type>
155
        <uri>http://saxon.sf.net/feature/collation-uri-resolver</uri>
156
        <editions>HE PE EE</editions>
157
        <setter class="net.sf.saxon.Configuration">setCollationURIResolver</setter>
158
        <getter class="net.sf.saxon.Configuration">getCollationURIResolver</getter>
159
        <desc>
160
            <p>The supplied <code>CollationURIResolver</code> is used to process any collation URIs
161
                found in the query or stylesheet, returning an object of class
162
                    <link>net.sf.saxon.lib.StringCollator</link> that implements the requested
163
                collation.</p>
164
        </desc>
165
    </feature>
166
    <feature>
167
        <featureCode>7</featureCode>
168
        <name>COLLATION_URI_RESOLVER_CLASS</name>
169
        <type>Name of a class implementing <link>net.sf.saxon.lib.CollationURIResolver</link></type>
170
        <uri>http://saxon.sf.net/feature/collation-uri-resolver-class</uri>
171
        <editions>HE PE EE</editions>
172
        <setter class="net.sf.saxon.Configuration">setCollationURIResolver</setter>
173
        <getter class="net.sf.saxon.Configuration">getCollationURIResolver</getter>
174
        <configfile>global/@collationUriResolver</configfile>
175
        <configfiledesc>
176
            <p>User-supplied class used to interpret collation URIs.</p>
177
        </configfiledesc>
178
        <desc>
179
            <p>The supplied class is instantiated and the resulting instance is used as the value of
180
                the <link>net.sf.saxon.lib.Feature#COLLATION_URI_RESOLVER</link> property.</p>
181
        </desc>
182
    </feature>
183
    <feature>
184
        <featureCode>8</featureCode>
185
        <name>COLLECTION_FINDER</name>
186
        <type>Instance of <link>net.sf.saxon.lib.CollectionFinder</link></type>
187
        <uri>http://saxon.sf.net/feature/collection-finder</uri>
188
        <editions>HE PE EE</editions>
189
        <setter class="net.sf.saxon.Configuration">setCollectionFinder</setter>
190
        <getter class="net.sf.saxon.Configuration">getCollectionFinder</getter>
191
        <desc>
192
            <p>The supplied <code>CollectionFinder</code> is used to retrieve a <link>net.sf.saxon.lib.ResourceCollection</link> object given by any URI defined in
193
                calls to the <code>collection()</code> or the <code>uri-collection()</code> function.</p>
194
            <p>If the argument is not specified then a default <code>ResourceCollection</code> should be handled.
195
                <code>CollectionFinder</code> returns a <link>net.sf.saxon.lib.ResourceCollection</link> which is used to map the URI of collection into a
196
                sequence of <link>net.sf.saxon.lib.Resource</link> objects
197
                (which are then resolved in the same way as URIs passed to the <code>doc()</code>
198
                function), or it may return an item (typically a node but can handle JSON documents).</p>
199
        </desc>
200
    </feature>
201
    <feature>
202
        <featureCode>9</featureCode>
203
        <name>COLLECTION_FINDER_CLASS</name>
204
        <type>Name of a class implementing
205
            <link>net.sf.saxon.lib.CollectionFinder</link></type>
206
        <uri>http://saxon.sf.net/feature/collection-finder-class</uri>
207
        <editions>HE PE EE</editions>
208
        <setter class="net.sf.saxon.Configuration">setCollectionFinder</setter>
209
        <getter class="net.sf.saxon.Configuration">getCollectionFinder</getter>
210
        <commandline for="TQ">-cf</commandline>
211
        <configfile>global/@collectionFinder</configfile>
212
        <configfiledesc>
213
            <p>User-supplied class used for retrieving the <link>net.sf.saxon.lib.ResourceCollection</link> to resolve the URI supplied to the <a
214
                class="bodylink code" href="/functions/fn/collection">collection()</a>
215
                function.</p>
216
        </configfiledesc>
217
        <desc>
218
            <p>The supplied class is instantiated and the resulting instance is used as the value of
219
                the <link>net.sf.saxon.lib.Feature#COLLECTION_FINDER</link> property.</p>
220
        </desc>
221
    </feature>
222
    <!-- 10 was COLLECTION_URI_RESOLVER -->
223
    <!-- 11 was COLLECTION_URI_RESOLVER_CLASS -->
224
    <feature>
225
        <featureCode>12</featureCode>
226
        <name>COMPILE_WITH_TRACING</name>
227
        <type>boolean</type>
228
        <uri>http://saxon.sf.net/feature/compile-with-tracing</uri>
229
        <editions>HE PE EE</editions>
230
        <setter class="net.sf.saxon.Configuration">setCompileWithTracing</setter>
231
        <getter class="net.sf.saxon.Configuration">isCompileWithTracing</getter>
232
        <commandline for="TQ">automatically set when -T is present</commandline>
233
        <configfile>global/@compileWithTracing</configfile>
234
        <configfiledesc>
235
            <p>Generates trace code in the expression tree, allowing a
236
                    <link>net.sf.saxon.lib.TraceListener</link> to be used at run-time.</p>
237
        </configfiledesc>
238
        <desc>
239
            <p>If run-time tracing of stylesheet or query execution is required, then the code must
240
                be compiled with tracing enabled.</p>
241
            <p>Default is false. This option causes code to be
242
                compiled that makes calls to a <link>net.sf.saxon.lib.TraceListener</link>, but this
243
                has no effect unless a <code>TraceListener</code> is registered at execution
244
                time.</p>
245
        </desc>
246
    </feature>
247
    <feature>
248
        <featureCode>13</featureCode>
249
        <name>CONFIGURATION</name>
250
        <type>Instance of class <link>net.sf.saxon.Configuration</link></type>
251
        <uri>http://saxon.sf.net/feature/configuration</uri>
252
        <editions>HE PE EE</editions>
253
        <desc>
254
            <p>This attribute cannot be set on the <link>net.sf.saxon.Configuration</link> itself,
255
                but it can be set on various JAXP factory objects such as a
256
                <code>TransformerFactory</code> or <code>DocumentBuilderFactory</code>, to
257
                ensure that several such factories use the same <code>Configuration</code>.</p>
258
            <p>Note that other configuration options are held in the <code>Configuration</code> object,
259
                so setting this attribute will cancel all others that have been set. Also, if two
260
                factories share the same <code>Configuration</code>, then setting an attribute on
261
                one affects all the others.</p>
262
        </desc>
263
    </feature>
264
    <feature>
265
        <featureCode>14</featureCode>
266
        <name>CONFIGURATION_FILE</name>
267
        <type>string (filename)</type>
268
        <uri>http://saxon.sf.net/feature/configuration-file</uri>
269
        <editions>PE EE</editions>
270
        <commandline for="TQV">-config:filename</commandline>
271
        <desc>
272
            <p>Defines a configuration file to be applied to the configuration.</p>
273
            <p>This attribute cannot be set on the <link>net.sf.saxon.Configuration</link> itself, but it can be
274
                set on various JAXP factory objects such as a <code>TransformerFactory</code> or
275
                    <code>DocumentBuilderFactory</code>. It is particularly useful when running
276
                transformations via the Ant xslt task, where it can be set as follows to define all
277
                configuration settings: </p>
278
            <p><code>&lt;factory name="net.sf.saxon.TransformerFactoryImpl"&gt; &lt;attribute
279
                    name="http://saxon.sf.net/feature/configuration-file"
280
                    value="c:/saxon/config.xml"/&gt; &lt;/factory&gt;</code>
281
            </p>
282
        </desc>
283
    </feature>
284
    <feature>
285
        <featureCode>15</featureCode>
286
        <name>DEBUG_BYTE_CODE</name>
287
        <type>boolean</type>
288
        <uri>http://saxon.sf.net/feature/debugByteCode</uri>
289
        <editions>EE</editions>
290
        <configfile>global/@debugByteCode</configfile>
291
        <configfiledesc>
292
            <p>Causes bytecode generation to be run in debugging mode, for use when diagnosing a
293
                problem. Only to be used if requested by Saxonica support.</p>
294
        </configfiledesc>
295
        <desc>
296
            <p>This option is set to indicate that bytecode generation should be run in debugging
297
                mode; it injects diagnostic tracing calls into the generated bytecode. This should
298
                be used only if requested by Saxonica support to diagnose a problem related to
299
                bytecode generation.</p>
300
        </desc>
301
    </feature>
302
    <feature>
303
        <featureCode>16</featureCode>
304
        <name>DEBUG_BYTE_CODE_DIR</name>
305
        <type>string (filename)</type>
306
        <uri>http://saxon.sf.net/feature/debugByteCodeDir</uri>
307
        <editions>EE</editions>
308
        <configfile>global/@debugByteCodeDirectory</configfile>
309
        <configfiledesc>
310
            <p>Identifies the directory for output files produced when <code>displayByteCode</code>
311
                is set to true.</p>
312
        </configfiledesc>
313
        <typedesc>A directory name</typedesc>
314
        <desc>
315
            <p>This option is relevant only if <code>DISPLAY_BYTE_CODE</code> is set to true. It
316
                defines a directory to which files containing bytecode in human-readable form will
317
                be written. There will be one such file for each generated class, with a filename
318
                designed to give some kind of clue as to its relationship to the source code.</p>
319
            <p>The default value is the directory <code>saxonByteCode</code> within the current
320
                working directory.</p>
321
            <p>The named directory is created if it does not already exist.</p>
322
            <p>Because the generation of class names involves random numbers, files will tend to
323
                accumulate in the supplied directory, even when the same source code is compiled
324
                repeatedly.</p>
325
        </desc>
326
    </feature>
327
    <feature>
328
        <featureCode>17</featureCode>
329
        <name>DEFAULT_COLLATION</name>
330
        <type>Absolute URI (collation URI)</type>
331
        <uri>http://saxon.sf.net/feature/defaultCollation</uri>
332
        <editions>HE PE EE</editions>
333
        <setter class="net.sf.saxon.query.StaticQueryContext">declareDefaultCollation</setter>
334
        <getter class="net.sf.saxon.query.StaticQueryContext">getDefaultCollationName</getter>
335
        <configfile>global/@defaultCollation</configfile>
336
        <configfiledesc>
337
            <p>(Requires Saxon-PE.) The collation URI to be used when no explicit collation is
338
                requested.</p>
339
        </configfiledesc>
340
        <desc>
341
            <p>This option determines the collation that is used for comparing strings when no
342
                explicit collation is requested. It is not necessary for this collation to exist (or
343
                to have been registered) when setting this option; it only needs to exist by the
344
                time it is used.</p>
345
            <p>In XSLT it is possible to override this setting using the
346
                    <code>[xsl:]default-collation</code> attribute on any stylesheet element. In
347
                XQuery, it can be overridden using the <code>declare default collation</code>
348
                declaration in the query prolog, or via a setter method in class
349
                    <link>net.sf.saxon.query.StaticQueryContext</link>.</p>
350
            <p>If no value is specified, the Unicode codepoint collation is used.</p>
351
        </desc>
352
    </feature>
353
    <feature>
354
        <featureCode>18</featureCode>
355
        <name>DEFAULT_COLLECTION</name>
356
        <type>Absolute URI (collection URI)</type>
357
        <uri>http://saxon.sf.net/feature/defaultCollection</uri>
358
        <editions>HE PE EE</editions>
359
        <setter class="net.sf.saxon.Configuration">setDefaultCollection</setter>
360
        <getter class="net.sf.saxon.Configuration">getDefaultCollection</getter>
361
        <configfile>global/@defaultCollection</configfile>
362
        <configfiledesc>
363
            <p>The collection URI to be used when no argument is passed to the <a
364
                    class="bodylink code" href="/functions/fn/collection">collection()</a>
365
                function.</p>
366
        </configfiledesc>
367
        <desc>
368
            <p>This determines the collection that is used when the <code>fn:collection()</code>
369
                function is called with no arguments; the effect is the same as if it were called
370
                passing the URI that is the value of this configuration property.</p>
371
        </desc>
372
    </feature>
373
    <feature>
374
        <featureCode>19</featureCode>
375
        <name>DEFAULT_COUNTRY</name>
376
        <type>string (ISO 3166 country code)</type>
377
        <uri>http://saxon.sf.net/feature/defaultCountry</uri>
378
        <editions>HE PE EE</editions>
379
        <setter class="net.sf.saxon.Configuration">setDefaultCountry</setter>
380
        <getter class="net.sf.saxon.Configuration">getDefaultCountry</getter>
381
        <configfile>localizations/@defaultCountry</configfile>
382
        <desc>
383
            <p>This determines the country that is used by <code>format-date()</code> and similar
384
                functions if no country code is supplied explicitly. If no value is given for this
385
                property, the default is taken from the Java Locale, which in turn typically depends
386
                on settings for the current user in the operating system.</p>
387
        </desc>
388
    </feature>
389
    <feature>
390
        <featureCode>20</featureCode>
391
        <name>DEFAULT_LANGUAGE</name>
392
        <type>string (ISO language code, following the same rules as for xml:lang)</type>
393
        <uri>http://saxon.sf.net/feature/defaultLanguage</uri>
394
        <editions>HE PE EE</editions>
395
        <setter class="net.sf.saxon.Configuration">setDefaultLanguage</setter>
396
        <getter class="net.sf.saxon.Configuration">getDefaultLanguage</getter>
397
        <configfile>localizations/@defaultLanguage</configfile>
398
        <desc>
399
            <p>This option determines the language that is used by <code>format-date()</code>,
400
                    <code>xsl:number</code> and similar constructs if no language code is supplied
401
                explicitly. If no value is given for this property, the default is taken from the
402
                Java Locale, which in turn typically depends on settings for the current user in the
403
                operating system.</p>
404
        </desc>
405
    </feature>
406
    <feature>
407
        <featureCode>21</featureCode>
408
        <name>DEFAULT_REGEX_ENGINE</name>
409
        <type>string ("S" for Saxon, "J" for Java, "N" for .NET)</type>
410
        <uri>http://saxon.sf.net/feature/defaultRegexEngine</uri>
411
        <editions>HE PE EE</editions>
412
        <configfile>global/@defaultRegexEngine</configfile>
413
        <configfiledesc>
414
            <p>Determines which regular expression engine should be used for evaluating regular expressions.</p>
415
        </configfiledesc>
416
        <desc>
417
            <p>Determines which regular expression engine should be used for evaluating regular expressions occuring in constructs
418
            such as <code>fn:matches()</code>, <code>fn:replace</code>, and <code>xsl:analyze-string</code>, and also
419
            in the pattern facet of a schema.</p>
420
            <p>On the Java platform the permitted values are "S" (default), and "J". The value "J" selects the regex engine
421
            provided in the JDK in preference to the Saxon regular expression engine. This means that regular expressions must
422
            follow the Java syntax and semantics rather than the XPath syntax and semantics.</p>
423
            <p>On the .NET platform the permitted values are "S" (default), "J", and "N". The value "J" selects the regex engine
424
                provided in the IKVMC run-time, which is derived from OpenJDK. The value "N" selects the regex engine provided
425
            in the Microsoft .NET platform. In each case, the regular expression must follow the syntax and semantics of the selected
426
            regex engine.</p>
427
            <p>The choice of regular expression may be overridden in a particular invocation by appending the value ";s",
428
            ";j", or ";n" to the flags argument of the relevant call. (This does not apply to XSD patterns, where no flags argument is available)</p>
429
            <p>Use of this feature is not conformant with W3C specifications. Use of the setting "N", however, can be useful
430
            when schemas have been written with the Microsoft schema processor in mind, since this uses the Microsoft regular
431
            expression dialect rather than the W3C dialect.</p>
432
        </desc>
433
    </feature>
434
    <feature>
435
        <featureCode>22</featureCode>
436
        <name>DISABLE_XSL_EVALUATE</name>
437
        <type>boolean</type>
438
        <uri>http://saxon.sf.net/feature/disableXslEvaluate</uri>
439
        <editions>EE</editions>
440
        <configfile>xslt/@disableXslEvaluate</configfile>
441
        <configfiledesc>
442
            <p>If set, the use of the <code>xsl:evaluate</code> instruction in XSLT 3.0
443
                is disabled.</p>
444
        </configfiledesc>
445
        <desc>
446
            <p>This option disables the <code>xsl:evaluate</code> instruction.</p>
447
            <p>If set at stylesheet compile time, the feature is statically disabled. If set at 
448
                run-time it is dynamically disabled. (These terms are defined in the XSLT 3.0 spec.) 
449
                The feature is always disabled (statically) in Saxon-HE.</p>
450
        </desc>
451
    </feature>
452
    <feature>
453
        <featureCode>23</featureCode>
454
        <name>DISPLAY_BYTE_CODE</name>
455
        <type>boolean</type>
456
        <uri>http://saxon.sf.net/feature/displayByteCode</uri>
457
        <editions>EE</editions>
458
        <configfile>global/@displayByteCode</configfile>
459
        <configfiledesc>
460
            <p>Causes files containing a human-readable print of the generated bytecode to be
461
                output, to the directory identified by the <code>debugByteCodeDir</code> option.</p>
462
        </configfiledesc>
463
        <desc>
464
            <p>This option is set to indicate that bytecode generation should be run in display
465
                mode. The effect is to output files (one per class) containing a human-readable
466
                print of the generated bytecode. The files are placed in the directory identified by
467
                the <code>DEBUG_BYTE_CODE_DIR</code> option.</p>
468
        </desc>
469
    </feature>
470
    <feature>
471
        <featureCode>24</featureCode>
472
        <name>DTD_VALIDATION</name>
473
        <type>boolean</type>
474
        <uri>http://saxon.sf.net/feature/validation</uri>
475
        <editions>HE PE EE</editions>
476
        <setter class="net.sf.saxon.Configuration">setValidation</setter>
477
        <getter class="net.sf.saxon.Configuration">isValidation</getter>
478
        <commandline for="TQ">-dtd:(on|off|recover)</commandline>
479
        <configfile>global/@dtdValidation</configfile>
480
        <configfiledesc>
481
            <p>Controls whether DTD validation is applied to input files.</p>
482
        </configfiledesc>
483
        <desc>
484
            <p>If true, the XML parser is requested to perform validation of source documents
485
                against their DTD. Default is false.</p>
486
            <p>This option establishes a default for use whenever source documents (not stylesheets
487
                or schema documents) are parsed. The option can be overridden for individual
488
                documents by setting the <link>net.sf.saxon.lib.ParseOptions</link> for that
489
                individual document, for example from a <code>URIResolver</code>.</p>
490
        </desc>
491
    </feature>
492
    <feature>
493
        <featureCode>25</featureCode>
494
        <name>DTD_VALIDATION_RECOVERABLE</name>
495
        <type>boolean</type>
496
        <uri>http://saxon.sf.net/feature/dtd-validation-recoverable</uri>
497
        <editions>HE PE EE</editions>
498
        <setter class="net.sf.saxon.lib.ParseOptions">setContinueAfterValidationErrors</setter>
499
        <getter class="net.sf.saxon.lib.ParseOptions">isContinueAfterValidationErrors</getter>
500
        <commandline for="TQV">-dtd:(on|off|recover)</commandline>
501
        <configfile>global/@dtdValidationRecoverable</configfile>
502
        <configfiledesc>
503
            <p>Controls whether DTD validation errors are recoverable or fatal.</p>
504
        </configfiledesc>
505
        <desc>
506
            <p>This option determines whether DTD validation failures should be treated as
507
                recoverable. If the option is set, a validation failure is reported as a warning
508
                rather than an error. The default is false.</p>
509
            <p>This option establishes a default for use whenever source documents (not stylesheets
510
                or schema documents) are parsed. The option can be overridden for individual
511
                documents by setting the <link>net.sf.saxon.lib.ParseOptions</link> for that
512
                individual document, for example from a <code>URIResolver</code>.</p>
513
        </desc>
514
    </feature>
515
    <feature>
516
        <featureCode>26</featureCode>
517
        <name>EAGER_EVALUATION</name>
518
        <type>boolean</type>
519
        <uri>http://saxon.sf.net/feature/eagerEvaluation</uri>
520
        <editions>HE PE EE</editions>
521
        <configfile>global/@eagerEvaluation</configfile>
522
        <configfiledesc>
523
            <p>Forces Saxon to do eager evaluation of expressions in contexts where normally it would do lazy evaluation,
524
            for example when evaluating variables and function results. This can make for easier debugging.</p>
525
        </configfiledesc>
526
        <desc>
527
            <p>Forces Saxon to do eager evaluation of expressions in contexts where normally it would do lazy evaluation,
528
                for example when evaluating variables and function results. This can make for easier debugging.</p>
529
            <p>Note that this only applies to situations where Saxon would normally save a <code>Closure</code>
530
            object as the result of an expression. It does not prevent Saxon from using pipelined evaluation of
531
            intermediate expressions using iterators.</p>
532
        </desc>
533
    </feature>
534
    <feature>
535
        <featureCode>27</featureCode>
536
        <name>ENTITY_RESOLVER_CLASS</name>
537
        <type>Name of a class implementing <code>org.xml.sax.EntityResolver</code></type>
538
        <uri>http://saxon.sf.net/feature/entityResolverClass</uri>
539
        <editions>HE PE EE</editions>
540
        <setter class="net.sf.saxon.lib.ParseOptions">setEntityResolver</setter>
541
        <getter class="net.sf.saxon.lib.ParseOptions">getEntityResolver</getter>
542
        <configfile>global/@entityResolver</configfile>
543
        <configfiledesc>
544
            <p>The class used whenever Saxon creates an <code>XMLReader</code> for parsing source
545
                documents.</p>
546
        </configfiledesc>
547
        <desc>
548
            <p>The supplied class is instantiated and the resulting <code>EntityResolver</code> is
549
                used whenever Saxon itself creates an <code>XMLReader</code> for parsing source
550
                documents. It is not used with a user-supplied <code>XMLReader</code>.</p>
551
            <p>The default value is <link>net.sf.saxon.lib.StandardEntityResolver</link>. This is an entity
552
                resolver that recognizes the names of many standard W3C DTDs and external entity
553
                files, and resolves them against local copies issued with the Saxon software, to
554
                avoid the need to fetch them from the web.</p>
555
            <p>The property can be set to a zero-length string, in which case no
556
                    <code>EntityResolver</code> will be used.</p>
557

    
558
        </desc>
559
    </feature>
560
    <feature>
561
        <featureCode>28</featureCode>
562
        <name>ENVIRONMENT_VARIABLE_RESOLVER</name>
563
        <type>Instance of class implementing
564
                <link>net.sf.saxon.lib.EnvironmentVariableResolver</link></type>
565
        <uri>http://saxon.sf.net/feature/environmentVariableResolver</uri>
566
        <editions>HE PE EE</editions>
567
        <desc>
568
            <p>Setting the <code>ENVIRONMENT_VARIABLE_RESOLVER</code> causes the supplied object to
569
                be registered as the environment variable resolver for the
570
                    <code>Configuration</code>. The setting is global: it affects all queries and
571
                transformations using this configuration.</p>
572
            <p>The environment variable resolver is used when the XPath functions
573
                    <code>available-environment-variables()</code> or
574
                    <code>environment-variable()</code> are called. Saxon essentially delegates the
575
                evaluation of the function to the external resolver.</p>
576
        </desc>
577
    </feature>
578
    <feature>
579
        <featureCode>29</featureCode>
580
        <name>ENVIRONMENT_VARIABLE_RESOLVER_CLASS</name>
581
        <type>Name of a class implementing <link>net.sf.saxon.lib.EnvironmentVariableResolver</link></type>
582
        <uri>http://saxon.sf.net/feature/environmentVariableResolverClass</uri>
583
        <editions>HE PE EE</editions>
584
        <configfile>global/@environmentVariableResolver</configfile>
585
        <configfiledesc>
586
            <p>Defines the environment variable resolver for all queries and transforms using this
587
                configuration. This affects the result of the XPath functions <a
588
                    class="bodylink code" href="/functions/fn/available-environment-variables"
589
                    >available-environment-variables()</a> and <a class="bodylink code"
590
                    href="/functions/fn/environment-variable">environment-variable()</a>. </p>
591
        </configfiledesc>
592
        <desc>
593
            <p>Setting <code>ENVIRONMENT_VARIABLE_RESOLVER_CLASS</code> causes an instance of the
594
                supplied class to be created, and registered as the environment variable resolver
595
                for the <code>Configuration</code>. The setting is global: it affects all queries
596
                and transformations using this configuration.</p>
597
            <p>The environment variable resolver is used when the XPath functions
598
                    <code>available-environment-variables()</code> or
599
                    <code>environment-variable()</code> are called. Saxon essentially delegates the
600
                evaluation of the function to the external resolver.</p>
601
        </desc>
602
    </feature>
603
    <feature>
604
        <featureCode>30</featureCode>
605
        <name>ERROR_LISTENER_CLASS</name>
606
        <type>Name of a class implementing <code>org.xml.sax.ErrorListener</code></type>
607
        <uri>http://saxon.sf.net/feature/errorListenerClass</uri>
608
        <editions>HE PE EE</editions>
609
        <setter class="net.sf.saxon.Configuration">setErrorListener</setter>
610
        <getter class="net.sf.saxon.Configuration">getErrorListener</getter>
611
        <configfile>global/@errorListener</configfile>
612
        <configfiledesc>
613
            <p>Defines the default <code>ErrorListener</code> for reporting both compile-time and
614
                run-time errors.</p>
615
        </configfiledesc>
616
        <desc>
617
            <p><code>ERROR_LISTENER_CLASS</code> is the name of the class used to implement the JAXP
618
                <code>ErrorListener</code>. This is used both at compile time and at run-time.</p>
619
            <p>Currently if this option is specified, the class is instantiated, and the same
620
                instance is used for all processes running under this configuration. This may change
621
                in future so that a new instance is created for each compilation or evaluation.</p>
622
            <p>Finer control can be obtained by setting the <code>ErrorListener</code> for a
623
                specific XSLT or XQuery compilation or evaluation.</p>
624
        </desc>
625
    </feature>
626
    <feature>
627
        <featureCode>31</featureCode>
628
        <name>EXPAND_ATTRIBUTE_DEFAULTS</name>
629
        <type>boolean</type>
630
        <uri>http://saxon.sf.net/feature/expandAttributeDefaults</uri>
631
        <editions>HE PE EE</editions>
632
        <setter class="net.sf.saxon.Configuration">setExpandAttributeDefaults</setter>
633
        <getter class="net.sf.saxon.Configuration">isExpandAttributeDefaults</getter>
634
        <commandline for="TQ">-expand:(on|off)</commandline>
635
        <configfile>global/@expandAttributeDefaults</configfile>
636
        <configfiledesc>
637
            <p>Controls whether attribute default values found in a DTD or schema are expanded or
638
                not.</p>
639
        </configfiledesc>
640
        <desc>
641
            <p><code>EXPAND_ATTRIBUTE_DEFAULTS</code> determines whether fixed and default values
642
                defined in a schema or DTD will be expanded (both on input and on output documents,
643
                if validation is requested).</p>
644
            <p>By default (and for conformance with the specification)
645
                validation against a DTD or schema will cause default values defined in the schema
646
                or DTD to be inserted into the document. Setting this feature to false suppresses
647
                this behavior. In the case of DTD-defined defaults this only works if the XML parser
648
                reports whether each attribute was specified in the source or generated by expanding
649
                a default value. Not all XML parsers report this information.</p>
650
        </desc>
651
    </feature>
652
    <feature>
653
        <featureCode>32</featureCode>
654
        <name>EXPATH_FILE_DELETE_TEMPORARY_FILES</name>
655
        <type>boolean</type>
656
        <uri>http://saxon.sf.net/feature/expathFileDeleteTemporaryFiles</uri>
657
        <editions>PE EE</editions>
658
        <commandline for="TQ">-expathFileDeleteTemporaryFiles:(on|off)</commandline>
659
        <desc>
660
            <p><code>EXPATH_FILE_DELETE_TEMPORARY_FILES</code> determines whether temporary files
661
                and directories created in the EXPath File module should be automatically deleted on
662
                closure of the JVM.</p>
663
            <p>The default value is <b>false</b>, to align with the standard. The setting
664
                    <b>false</b> is recommended when external 'sweep-up' features aren't
665
                available.</p>
666
        </desc>
667
    </feature>
668
    <feature>
669
        <featureCode>33</featureCode>
670
        <name>GENERATE_BYTE_CODE</name>
671
        <type>boolean</type>
672
        <uri>http://saxon.sf.net/feature/generateByteCode</uri>
673
        <editions>EE</editions>
674
        <commandline for="TQ">--generateByteCode:(on|off)</commandline>
675
        <configfile>global/@generateByteCode</configfile>
676
        <configfiledesc>
677
            <p>By default, Saxon-EE attempts to generate Java bytecode for evaluation of certain
678
                parts of a query or stylesheet. Setting this option to false disables this.</p>
679
        </configfiledesc>
680
        <desc>
681
            <p>By default, Saxon-EE attempts to generate Java bytecode for evaluation of parts of a
682
                query or stylesheet that are amenable to such treatment. Setting this option to
683
                false disables this.</p>
684
            <p>For backwards compatibility, this option when used at the level of <code>Configuration.setConfigurationProperty()</code>
685
            can also be used to set the value of <code>THRESHOLD_FOR_HOTSPOT_BYTECODE</code>. If the value on that interface is supplied
686
            as an integer (or a string in the form of an integer) then a value of 1 or more sets the threshold for hotspot detection, while
687
            a value of zero or less disables bytecode generation entirely. On other interfaces the value of the property must be a boolean.</p>
688
        </desc>
689
    </feature>
690
    <feature>
691
        <featureCode>34</featureCode>
692
        <name>IGNORE_SAX_SOURCE_PARSER</name>
693
        <type>boolean</type>
694
        <uri>http://saxon.sf.net/feature/ignoreSAXSourceParser</uri>
695
        <editions>HE PE EE</editions>
696
        <configfile>global/@ignoreSAXSourceParser</configfile>
697
        <configfiledesc>
698
            <p>Set to true to ignore the <code>XMLReader</code> supplied as a <code>SAXSource</code>
699
                as input to an XSLT transformation, to use one specified by the <code>parser</code>
700
                option instead.</p>
701
        </configfiledesc>
702
        <desc>
703
            <p>If this option is set to true, then when a <code>SAXSource</code> is supplied as the
704
                input to an XSLT transformation, Saxon will ignore the <code>XMLReader</code>
705
                supplied in the <code>SAXSource</code> (in fact, it will modify the supplied
706
                    <code>SAXSource</code> setting the <code>XMLReader</code> to null) and use an
707
                    <code>XMLReader</code> created using the value of the
708
                    <code>SOURCE_PARSER_CLASS</code> option in preference.</p>
709
            <p>The defining use case for this feature is when calling a Saxon transformation from
710
                Ant. Ant always supplies the source document as a <code>SAXSource</code> using a
711
                parser instantiated using the default JAXP mechanism. A different parser set using
712
                the property <code>http://saxon.sf.net/feature/sourceParserClass</code> will
713
                normally be ignored in this case; setting the <code>ignoreSAXSourceParser</code>
714
                option overrides this. This is especially useful if the input format is not in fact
715
                XML, but some other format converted to a SAX event stream by means of a custom
716
                parser.</p>
717
        </desc>
718
    </feature>
719
    <feature>
720
        <featureCode>35</featureCode>
721
        <name>IMPLICIT_SCHEMA_IMPORTS</name>
722
        <type>boolean</type>
723
        <uri>http://saxon.sf.net/feature/implicitSchemaImports</uri>
724
        <editions>EE</editions>
725
        <configfile>xsd/@implicitSchemaImports</configfile>
726
        <configfiledesc>
727
            <p>If true, allows a schema document to reference components in a different target namespace without an explicit
728
                <code>xs:import</code> declaration, provided the referenced components are already known.</p>
729
        </configfiledesc>
730
        <desc>
731
            <p><code>IMPLICIT_SCHEMA_IMPORTS</code> allows reference to schema components without an <code>xs:import</code> for the relevant namespace being
732
                present in the containing schema document. </p>
733
            <p>This only works if the referenced components are already present among the schema components known to the configuration, perhaps
734
            because they were part of a different schema, or because there are cyclic references within a schema.</p>
735
            <p>This option is not conformant with the XSD specification, which requires explicit <code>xs:import</code> declarations
736
            for all cross-namespace component references. However, some "industry-standard" schemas are known to violate this rule,
737
            and setting this option allows such schemas to be loaded by Saxon.</p>
738
        </desc>
739
    </feature>
740
    <feature>
741
        <featureCode>36</featureCode>
742
        <name>LAZY_CONSTRUCTION_MODE</name>
743
        <type>boolean</type>
744
        <uri>http://saxon.sf.net/feature/lazyConstructionMode</uri>
745
        <editions>HE PE EE</editions>
746
        <configfile>global/@lazyConstructionMode</configfile>
747
        <configfiledesc>
748
            <p>If true, causes temporary trees to be constructed lazily.</p>
749
        </configfiledesc>
750
        <desc>
751
            <p><code>LAZY_CONSTRUCTION_MODE</code> determines whether temporary trees are
752
                constructed lazily. The default setting is false; there are a few situations (but
753
                not many) where setting this to true can give a performance benefit (especially a
754
                memory saving).</p>
755
            <p>The option is most likely to be effective when executing XQuery in "pull" mode, that
756
                is, when the client calls the query processor to deliver the result as a stream of
757
                nodes, rather than running the query and piping the results into a serializer.</p>
758
        </desc>
759
    </feature>
760
    <feature>
761
        <featureCode>37</featureCode>
762
        <name>LICENSE_FILE_LOCATION</name>
763
        <type>string (filename)</type>
764
        <uri>http://saxon.sf.net/feature/licenseFileLocation</uri>
765
        <editions>PE EE</editions>
766
        <configfile>configuration/@licenseFileLocation</configfile>
767
        <configfiledesc>
768
            <p>Defines the location of the Saxon license file, as a URI relative to the base URI of
769
                the configuration file. When made absolute, it must use the "file" URI scheme.</p>
770
        </configfiledesc>
771
        <desc>
772
            <p><code>LICENSE_FILE_LOCATION</code> holds the filename in which the Saxon license file
773
                is held.</p>
774
            <p>This is the full file name, for example <code>c:/saxon/license/license.lic</code>. 
775
                Setting this property causes Saxon to
776
                immediately read the specified file and register the license data, assuming it can
777
                be found at this location. The property is not recognized for reading, and it is not
778
                recognized for writing except in Saxon-PE and Saxon-EE.</p>
779
        </desc>
780
    </feature>
781
    <feature>
782
        <featureCode>38</featureCode>
783
        <name>LINE_NUMBERING</name>
784
        <type>boolean</type>
785
        <uri>http://saxon.sf.net/feature/linenumbering</uri>
786
        <editions>HE PE EE</editions>
787
        <setter class="net.sf.saxon.Configuration">setLineNumbering</setter>
788
        <getter class="net.sf.saxon.Configuration">isLineNumbering</getter>
789
        <commandline for="TQV">-l:(on|off)</commandline>
790
        <configfile>global/@lineNumbering</configfile>
791
        <configfiledesc>
792
            <p>Controls whether line and column number information is maintained for input
793
                files.</p>
794
        </configfiledesc>
795
        <desc>
796
            <p>Default is false. If true, line and column number information is retained for all
797
                source documents. This information is accessible using the
798
                    <code>saxon:line-number()</code> and <code>saxon:column-number()</code>
799
                extension functions.</p>
800
            <p>Note that the information is only as good as the XML parser supplies. SAX parsers
801
                generally report the position of an element node using the line and column number of
802
                the "&gt;" character that forms the last character of the start tag.</p>
803
            <p>When this option is set, location information attached to a node (system ID, line
804
            number, and column number) is retained when the node is copied. This has the side effect
805
            that the base URI of a node is also copied, which in some cases runs contrary to the
806
            XSLT or XQuery specification.</p>
807
        </desc>
808
    </feature>
809
    <feature>
810
        <featureCode>39</featureCode>
811
        <name>MARK_DEFAULTED_ATTRIBUTES</name>
812
        <type>boolean</type>
813
        <uri>http://saxon.sf.net/feature/markDefaultedAttributes</uri>
814
        <editions>HE PE EE</editions>
815
        <configfile>global/@markDefaultedAttributes</configfile>
816
        <configfiledesc>
817
            <p>Indicates that Saxon should retain the fact that attributes are derived
818
            from defaults defined in a schema or DTD where this information is available from the XML parser.</p>
819
        </configfiledesc>
820
        <desc>
821
            <p>Setting the <code>MARK_DEFAULTED_ATTRIBUTES</code> option causes Saxon to retain details of attributes
822
            that were notified by the XML parser as being defaulted (that is, the attribute was not present in the instance
823
            document but was defined by a default value in a DTD or schema). This information is available to applications
824
            via the <code>saxon:is-defaulted()</code> extension function.</p>
825
            <p>Note: information about defaulted attributes is retained automatically where the attribute is processed
826
            using Saxon's schema processor; but in the case where the information comes from an external XML parser, it
827
            is retained only if this option is set.</p>
828
        </desc>
829
    </feature>
830
    <feature>
831
        <featureCode>40</featureCode>
832
        <name>MAX_COMPILED_CLASSES</name>
833
        <type>integer</type>
834
        <uri>http://saxon.sf.net/feature/maxCompiledClasses</uri>
835
        <editions>EE</editions>
836
        <configfile>global/@maxCompiledClasses</configfile>
837
        <configfiledesc>
838
            <p>Places a limit on the number of classes for which Saxon will generate bytecode.</p>
839
        </configfiledesc>
840
        <desc>
841
            <p>Places a limit on the number of classes for which Saxon will generate bytecode.</p>
842
            <p>If bytecode generation is enabled, Saxon will generate bytecode for frequently used constructs appearing
843
                in stylesheets or queries. This can become problematic if a configuration uses a very large number
844
                of different stylesheets and queries, because it creates memory pressure (in some environments classes
845
                are never garbage collected). When this limit (which defaults to 10,000) is exceeded, no more bytecode
846
            is generated, and queries/stylesheets are interpreted instead.</p>
847
        </desc>
848
    </feature>
849
    <feature>
850
        <featureCode>41</featureCode>
851
        <name>MESSAGE_EMITTER_CLASS</name>
852
        <type>Name of a class implementing <link>net.sf.saxon.event.Receiver</link></type>
853
        <uri>http://saxon.sf.net/feature/messageEmitterClass</uri>
854
        <editions>HE PE EE</editions>
855
        <setter class="net.sf.saxon.Configuration">setMessageEmitterClass</setter>
856
        <getter class="net.sf.saxon.Configuration">getMessageEmitterClass</getter>
857
        <commandline for="T">-m:classname</commandline>
858
        <configfile>xslt/@messageEmitter</configfile>
859
        <configfiledesc>
860
            <p>Destination of <a class="bodylink code" href="/xsl-elements/message">xsl:message</a>
861
                output.</p>
862
        </configfiledesc>
863
        <desc>
864
            <p>Use the specified <code>Receiver</code> to process the output from
865
                    <code>xsl:message</code>. The class must implement the
866
                    <code>net.sf.saxon.event.Receiver</code> interface. This interface is similar to
867
                a SAX <code>ContentHandler</code>, in that it takes a stream of events to generate
868
                output.</p>
869
            <p>By default the standard XML emitter is used, configured to write to the standard
870
                error stream, and to include no XML declaration. </p>
871
            <p>In general the content of a message is an XML fragment. Each message is output as a
872
                new document. The sequence of calls to this <code>Receiver</code> is as follows:
873
                there is a single <code>open()</code> call at the start of the transformation, and a
874
                single <code>close()</code> call at the end; and each evaluation of an
875
                    <code>xsl:message</code> instruction starts with a <code>startDocument()</code>
876
                call and ends with <code>endDocument()</code>. </p>
877
            <p>The <code>startDocument()</code> event has a <code>properties</code> argument
878
                indicating whether <code>terminate="yes"</code> was specified, and the
879
                    <code>locationId</code> on calls such as <code>startElement()</code> and
880
                    <code>characters()</code> can be used to identify the location in the stylesheet
881
                where the message data originated (this is achieved by passing the supplied
882
                    <code>locationId</code> in a call to
883
                    <code>getPipelineConfiguration().getLocator().getSystemId(locationId)</code>, or
884
                to <code>getLineNumber()</code> on the same object). </p>
885
            <p>Select the class <code>net.sf.saxon.event.MessageWarner</code> to have
886
                    <code>xsl:message</code> output notified to the JAXP <code>ErrorListener</code>,
887
                as described in the JAXP documentation.</p>
888
        </desc>
889
    </feature>
890
    <feature>
891
        <featureCode>42</featureCode>
892
        <name>MODULE_URI_RESOLVER</name>
893
        <type>Instance of <link>net.sf.saxon.lib.ModuleURIResolver</link></type>
894
        <uri>http://saxon.sf.net/feature/moduleURIResolver</uri>
895
        <editions>HE PE EE</editions>
896
        <setter class="net.sf.saxon.Configuration">setModuleURIResolver</setter>
897
        <getter class="net.sf.saxon.Configuration">getModuleURIResolver</getter>
898
        <commandline for="Q">-mr:classname</commandline>
899
        <desc>
900
            <p>Affects XQuery only. An instance of a user-written class implementing Saxon's
901
                    <link>net.sf.saxon.lib.ModuleURIResolver</link> interface. This is used to
902
                process any URIs used in <code>import module</code> directives in XQuery.</p>
903
        </desc>
904
    </feature>
905
    <feature>
906
        <featureCode>43</featureCode>
907
        <name>MODULE_URI_RESOLVER_CLASS</name>
908
        <type>Name of a class implementing <link>net.sf.saxon.lib.ModuleURIResolver</link></type>
909
        <uri>http://saxon.sf.net/feature/moduleURIResolverClass</uri>
910
        <editions>HE PE EE</editions>
911
        <setter class="net.sf.saxon.Configuration">setModuleURIResolver</setter>
912
        <getter class="net.sf.saxon.Configuration">getModuleURIResolver</getter>
913
        <commandline for="Q">-mr:classname</commandline>
914
        <configfile>xquery/@moduleUriResolver</configfile>
915
        <configfiledesc>
916
            <p>Used for locating query modules referenced by "import module".</p>
917
        </configfiledesc>
918
        <desc>
919
            <p>Affects XQuery only. The name of a user-written class implementing Saxon's
920
                    <link>net.sf.saxon.lib.ModuleURIResolver</link> interface. This is used to
921
                process any URIs used in <code>import module</code> directives in XQuery.</p>
922
        </desc>
923
    </feature>
924
    <feature>
925
        <featureCode>44</featureCode>
926
        <name>MONITOR_HOT_SPOT_BYTE_CODE</name>
927
        <type>boolean</type>
928
        <uri>http://saxon.sf.net/feature/monitorHotSpotByteCode</uri>
929
        <editions>EE</editions>
930
        <commandline>-TB</commandline>
931
        <configfile>global/@monitorHotSpotByteCode</configfile>
932
        <configfiledesc>
933
            <p>Enables monitoring of hot-spot byte-code generation.</p>
934
        </configfiledesc>
935
        <desc>
936
            <p>When set from the Transform or Query command line, a report on bytecode generation is
937
                produced at the end of the transformation or query.</p>
938
            <p>When set from an application, the bytecode report is produced only on request, by
939
                calling <code>Configuration.createByteCodeReport(fileName)</code>.</p>
940
            <p>The bytecode report is an XML file containing one entry for each expression that has
941
                been compiled into bytecode. Each entry contains the following details, where
942
                applicable:</p>
943
                <ul>
944
                <li><code>text</code> Abbreviated text of the expression</li>
945
                <li><code>intCount</code> Number of times the expression was evaluated in the interpreter</li>
946
                <li><code>intTime</code> Cumulative time spent evaluating the expression (including subexpressions) in the interpreter</li>
947
                <li><code>bcCount</code> Number of times the expression was evaluated as byte-code</li>
948
                <li><code>bcTime</code> Cumulative time spent evaluating the expression (including subexpressions) as byte-code</li>
949
                <li><code>compileTime</code> Time spent generating bytecode for the expression</li>
950
                <li><code>ratio</code> Average byte-code execution time as a proportion of average interpreted execution time</li>
951
                <li><code>ebv</code> Number of evaluations of the expressions <code>effectiveBooleanValue()</code> method</li>
952
                <li><code>eval</code> Number of evaluations of the expressions <code>evaluateItem()</code> method</li>
953
                <li><code>iterate</code> Number of evaluations of the expressions <code>iterate()</code> method</li>
954
                <li><code>process</code> Number of evaluations of the expressions <code>process()</code> method</li>
955
                <li><code>module</code> URI of the module containing the expression</li>
956
                <li><code>line</code> Line number of the expression within this module</li>
957
            </ul>
958
        </desc>
959
    </feature>
960
    <feature>
961
        <featureCode>45</featureCode>
962
        <name>MULTIPLE_SCHEMA_IMPORTS</name>
963
        <type>boolean</type>
964
        <uri>http://saxon.sf.net/feature/multipleSchemaImports</uri>
965
        <editions>EE</editions>
966
        <configfile>xsd/@multipleSchemaImports</configfile>
967
        <configfiledesc>
968
            <p>If set to true, the schema processor attempts to fetch a schema document appearing in
969
                an <code>xs:import</code> directive, whether or not a schema for that namespace has
970
                already been loaded.</p>
971
        </configfiledesc>
972
        <desc>
973
            <p>Affects schema construction (whether for standalone validation, or in the context of
974
                XSLT or XQuery).</p>
975
            <p>If set to true, the schema processor attempts to fetch a schema
976
                document appearing in an <code>xs:import</code> directive, whether or not a schema
977
                for that namespace has already been loaded, unless the absolute URI formed from the
978
                    <code>schemaLocation</code> is the same as the absolute URI that was used to
979
                load that namespace. If set to false, the schema processor ignores the
980
                    <code>schemaLocation</code> on an <code>xs:import</code> declaration if schema
981
                components for the requested namespace are already available. Note that setting the
982
                value to true might cause spurious errors due to like-named schema components being
983
                loaded more than once. On the other hand, setting the value to false might result in
984
                validation failing because schema components are missing.</p>
985
            <p>Note: Both settings are conformant with the W3C recommendation, which leaves the
986
                details implementation-defined. It is possible (and advisable) to write schemas in
987
                such a way that this setting makes no difference, by ensuring that all imports for a
988
                particular namespace go via a "home" schema document for that namespace, where the
989
                home schema document contains <code>xs:include</code> declarations for all the
990
                schema documents defining components in that namespace.</p>
991
        </desc>
992
    </feature>
993
    <feature>
994
        <featureCode>46</featureCode>
995
        <name>NAME_POOL</name>
996
        <type>Instance of <link>net.sf.saxon.om.NamePool</link></type>
997
        <uri>http://saxon.sf.net/feature/namePool</uri>
998
        <editions>HE PE EE</editions>
999
        <setter class="net.sf.saxon.Configuration">setNamePool</setter>
1000
        <getter class="net.sf.saxon.Configuration">getNamePool</getter>
1001
        <desc>
1002
            <p>Indicates that the supplied <code>NamePool</code> should be used as the target
1003
                (run-time) <code>NamePool</code> by all stylesheets compiled (using
1004
                <code>newTemplates()</code>) after this call on <code>setAttribute</code>.</p>
1005
            <p>Normally a single system-allocated <code>NamePool</code> is used for all stylesheets
1006
                compiled while the Java VM remains loaded; this attribute allows user control over
1007
                the allocation of name pools. Note that source trees used as input to a
1008
                transformation must be built using the same <code>NamePool</code> that is used when
1009
                the stylesheet is compiled: this will happen automatically if the input to a
1010
                transformation is supplied as a <code>SAXSource</code> or <code>StreamSource</code>
1011
                but it is under user control if you build the source tree yourself.</p>
1012
            <p>This option can be used to make two <code>Configuration</code> objects share a
1013
                    <code>NamePool</code> even though they differ in other respects.</p>
1014
        </desc>
1015
    </feature>
1016
    <feature>
1017
        <featureCode>47</featureCode>
1018
        <name>OCCURRENCE_LIMITS</name>
1019
        <type>A string containing two integers, comma-separated</type>
1020
        <uri>http://saxon.sf.net/feature/occurrenceLimits</uri>
1021
        <editions>EE</editions>
1022
        <setter class="com.saxonica.config.EnterpriseConfiguration">setOccurrenceLimits</setter>
1023
        <getter class="com.saxonica.config.EnterpriseConfiguration">getOccurrenceLimits</getter>
1024
        <commandline for="V">-limits:min,max</commandline>
1025
        <configfile>xsd/@occurrenceLimits</configfile>
1026
        <configfiledesc>
1027
            <p>Controls the limits applied to <code>minOccurs</code> and <code>maxOccurs</code>
1028
                values in XSD content models.</p>
1029
        </configfiledesc>
1030
        <desc>
1031
            <p><code>OCCURRENCE_LIMITS</code> determines the largest values of
1032
                <code>minOccurs</code> and <code>maxOccurs</code> that can be accommodated when
1033
                compiling an "expanded" finite state machine to represent an XSD content model
1034
                grammar.</p>
1035
            <p>These limits do not apply in the common cases where the grammar can be
1036
                implemented using a counting finite-state-machine, but in those cases where this is
1037
                not possible, any <code>minOccurs</code> value greater than the first integer is
1038
                reduced to the value of the first integer, and any <code>maxOccurs</code> value
1039
                greater than the second integer is treated as "unbounded".</p>
1040
            <p>Setting these values too high may cause an <code>OutOfMemoryException</code> since
1041
                the size of the finite state machine constructed by Saxon increases linearly with
1042
                the values of <code>minOccurs</code> and <code>maxOccurs</code>.</p>
1043
        </desc>
1044
    </feature>
1045
    <feature>
1046
        <featureCode>48</featureCode>
1047
        <name>OPTIMIZATION_LEVEL</name>
1048
        <type>object</type>
1049
        <uri>http://saxon.sf.net/feature/optimizationLevel</uri>
1050
        <editions>HE PE EE</editions>
1051
        <setter class="net.sf.saxon.expr.parser.Optimizer">setOptimizationLevel</setter>
1052
        <getter class="net.sf.saxon.expr.parser.Optimizer">getOptimizationLevel</getter>
1053
        <commandline for="TQ">-opt:[-]flags</commandline>
1054
        <configfile>global/@optimizationLevel</configfile>
1055
        <configfiledesc>
1056
            <p>Defines the level of code optimization to be applied.</p>
1057
        </configfiledesc>
1058
        <typedesc>string of flags or 0</typedesc>
1059
        <desc>
1060
            <p>Allows individual optimizations to be enabled or disabled selectively.</p>
1061
            <p>There is a set of single-letter flags identifying particular optimizations:</p>
1062
            <ul>
1063
                <li>c: generate bytecode</li>
1064
                <li>e: cache regular expressions</li>
1065
                <li>f: inline functions</li>
1066
                <li>g: extract global variables</li>
1067
                <li>j: just-in-time compilation of template rules</li>
1068
                <li>k: create keys</li>
1069
                <li>l: loop lifting</li>
1070
                <li>m: miscellaneous</li>
1071
                <li>n: constant folding</li>
1072
                <li>r: template rule-sets</li>
1073
                <li>s: extract common subexpressions</li>
1074
                <li>v: inline variables</li>
1075
                <li>w: create switch statements</li>
1076
                <li>x: index predicates</li>
1077
            </ul>
1078
            <p>A value such as <code>gs</code> runs with only the selected optimizations;
1079
                <code>-gs</code> runs with the selected optimizations disabled and all others enabled. The
1080
                value <code>0</code> suppresses all optimizations. The default is full optimization; this
1081
                feature allows optimization to be suppressed in cases where reducing compile time is
1082
                important, or where optimization gets in the way of debugging, or causes extension
1083
                functions with side-effects to behave unpredictably. (Note however, that even with
1084
                no optimization, lazy evaluation may still cause the evaluation order to be not as
1085
                expected.) </p>
1086
            <p><i>Note that disabling optimizations may prevent streamed execution. This is because
1087
            there are cases where streamed execution is only possible because the optimizer is able to detect
1088
            that sorting nodes into document order is unnecessary.</i></p>
1089
        </desc>
1090
    </feature>
1091
    <feature>
1092
        <featureCode>49</featureCode>
1093
        <name>OUTPUT_URI_RESOLVER</name>
1094
        <type>Instance of <link>net.sf.saxon.lib.OutputURIResolver</link></type>
1095
        <uri>http://saxon.sf.net/feature/outputURIResolver</uri>
1096
        <editions>HE PE EE</editions>
1097
        <setter class="net.sf.saxon.Configuration">setOutputURIResolver</setter>
1098
        <getter class="net.sf.saxon.Configuration">getOutputURIResolver</getter>
1099
        <desc>
1100
            <p>The supplied <code>OutputURIResolver</code> will be used to resolve URIs of secondary
1101
                result documents selected in the <code>href</code> attribute of the XSLT
1102
                    <code>xsl:result-document</code> instruction.</p>
1103
        </desc>
1104
    </feature>
1105
    <feature>
1106
        <featureCode>50</featureCode>
1107
        <name>OUTPUT_URI_RESOLVER_CLASS</name>
1108
        <type>Name of a class implementing <link>net.sf.saxon.lib.OutputURIResolver</link></type>
1109
        <uri>http://saxon.sf.net/feature/outputURIResolverClass</uri>
1110
        <editions>HE PE EE</editions>
1111
        <commandline for="T">-or:classname</commandline>
1112
        <configfile>xslt/@outputUriResolver</configfile>
1113
        <configfiledesc>
1114
            <p>Handles documents written using <a class="bodylink code"
1115
                    href="/xsl-elements/result-document">xsl:result-document</a>. </p>
1116
        </configfiledesc>
1117
        <desc>
1118
            <p>The supplied class will be instantiated, and the resulting
1119
                    <code>OutputURIResolver</code> will be used to resolve URIs of secondary result
1120
                documents selected in the <code>href</code> attribute of the XSLT
1121
                    <code>xsl:result-document</code> instruction.</p>
1122
        </desc>
1123
    </feature>
1124
    <feature>
1125
        <featureCode>51</featureCode>
1126
        <name>PRE_EVALUATE_DOC_FUNCTION</name>
1127
        <type>boolean</type>
1128
        <uri>http://saxon.sf.net/feature/preEvaluateDocFunction</uri>
1129
        <editions>HE PE EE</editions>
1130
        <configfile>global/@preEvaluateDoc</configfile>
1131
        <configfiledesc>
1132
            <p>If true, allows calls on <a class="bodylink code" href="/functions/fn/doc">doc()</a>
1133
                with a literal argument to be evaluated early, at compile time.</p>
1134
        </configfiledesc>
1135
        <desc>
1136
            <p>If true, calls on the <code>doc()</code> and <code>document()</code> functions, if
1137
                their arguments are known at compile time, will be evaluated at compile time, and
1138
                the resulting document will be stored as part of the Saxon
1139
                <link>net.sf.saxon.Configuration</link> and shared by all queries and
1140
                transformations running within that <code>Configuration</code>.</p>
1141
            <p>This is useful for reference documents that have stable content and are used by many different 
1142
                queries and transformations. The default is false, which means each query or transformation
1143
                will reload the document from disk.</p>
1144
            <p>In XSLT 3.0 a better way of having external documents pre-loaded at stylesheet
1145
                compile time is to use the new facility of static global variables.</p>
1146
        </desc>
1147
    </feature>
1148
    <feature>
1149
        <featureCode>52</featureCode>
1150
        <name>PREFER_JAXP_PARSER</name>
1151
        <type>boolean</type>
1152
        <uri>http://saxon.sf.net/feature/preferJaxpParser</uri>
1153
        <editions>HE PE EE</editions>
1154
        <configfile>global/@preferJaxpParser</configfile>
1155
        <configfiledesc>
1156
            <p>Relevant only on .NET, determines whether the Java Classpath parser is used in
1157
                preference to the Microsoft .NET parser.</p>
1158
        </configfiledesc>
1159
        <desc>
1160
            <p>Relevant only on .NET, determines whether the Java Classpath parser is used in
1161
                preference to the Microsoft .NET parser.</p>
1162
            <p>This option has no effect on the Java platform. The default is <b>true</b>. When
1163
                running on the .NET platform, if the option is true it causes the Apache Xerces
1164
                parser (cross-compiled using IKVMC) to be used in preference to the .NET XML parser.
1165
                If false the .NET XML parser (<code>System.Xml.XmlTextReader</code>) is used. One
1166
                reason for providing this option is that the .NET XML parser does not report ID
1167
                attributes, which means that the <code>id()</code> function does not work.</p>
1168
        </desc>
1169
    </feature>
1170
    <feature>
1171
        <featureCode>53</featureCode>
1172
        <name>RECOGNIZE_URI_QUERY_PARAMETERS</name>
1173
        <type>boolean</type>
1174
        <uri>http://saxon.sf.net/feature/recognize-uri-query-parameters</uri>
1175
        <editions>HE PE EE</editions>
1176
        <configfile>global/@recognizeUriQueryParameters</configfile>
1177
        <configfiledesc>
1178
            <p>If true, and the standard <code>URIResolver</code> is in use, query parameters such
1179
                as <code>val=strict</code> will be recognized on URIs supplied to the <a
1180
                    class="bodylink code" href="/functions/fn/doc">doc()</a> or <a
1181
                    class="bodylink code" href="/functions/fn/document">document()</a>
1182
                functions.</p>
1183
        </configfiledesc>
1184
        <desc>
1185
            <p>True if the standard URI resolver is to recognize query parameters included in
1186
                the URI (for example, <code>?val=strict</code>). Such parameters can then be used in
1187
                URIs passed to the <code>doc()</code> or <code>document()</code> functions. For
1188
                details of the query parameters available, see <a class="bodylink"
1189
                    href="/sourcedocs">Source Documents</a>. The default is false.</p>
1190
            <p>This option has no effect if a user-supplied <code>URIResolver</code> is in use,
1191
                unless the user-supplied <code>URIResolver</code> chooses to inherit this
1192
                functionality from the standard <code>URIResolver</code>.</p>
1193
            <p>Allowed parameters include <code>validation=strict|lax|strip</code> to perform schema
1194
                validation, <code>strip-space=yes|ignorable|no</code> to control whitespace
1195
                stripping, and <code>xinclude=yes|no</code> to control whether XInclude processing
1196
                takes place (assuming the XML parser supports it).</p>
1197
        </desc>
1198
    </feature>
1199
    <feature>
1200
        <featureCode>54</featureCode>
1201
        <name>RECOVERY_POLICY</name>
1202
        <type>integer (0..2)</type>
1203
        <uri>http://saxon.sf.net/feature/recoveryPolicy</uri>
1204
        <editions>HE PE EE</editions>
1205
        <setter class="net.sf.saxon.Configuration">setRecoveryPolicy</setter>
1206
        <getter class="net.sf.saxon.Configuration">getRecoveryPolicy</getter>
1207
        <commandline for="T">-warnings:(silent|recover|fatal)</commandline>
1208
        <desc>
1209
            <p>An integer, one of <link>net.sf.saxon.trans.RecoveryPolicy#RECOVER_SILENTLY</link>,
1210
                <link>net.sf.saxon.trans.RecoveryPolicy#RECOVER_WITH_WARNINGS</link>, or
1211
                <link>net.sf.saxon.trans.RecoveryPolicy#DO_NOT_RECOVER</link>. Indicates the policy for
1212
                handling dynamic errors that the XSLT specification defines as recoverable.</p>
1213
            <p>0 means recover silently; 1 means recover after signalling a warning to the
1214
                    <code>ErrorListener</code>; 2 means treat the error as fatal. An example of a
1215
                recoverable error is when two template rules match the same node.</p>
1216
            <p>Note that XSLT 3.0 has eliminated all "recoverable errors" from the
1217
                specification.</p>
1218
        </desc>
1219
    </feature>
1220
    <feature>
1221
        <featureCode>55</featureCode>
1222
        <name>RECOVERY_POLICY_NAME</name>
1223
        <type>string ("recoverSilently", "recoverWithWarnings", or "doNotRecover")</type>
1224
        <uri>http://saxon.sf.net/feature/recoveryPolicyName</uri>
1225
        <editions>HE PE EE</editions>
1226
        <setter class="net.sf.saxon.Configuration">setRecoveryPolicy</setter>
1227
        <getter class="net.sf.saxon.Configuration">getRecoveryPolicy</getter>
1228
        <commandline for="T">-warnings:(silent|recover|fatal)</commandline>
1229
        <configfile>xslt/@recoveryPolicy</configfile>
1230
        <configfiledesc>
1231
            <p>Indicates how XSLT recoverable errors are handled (for example, ambiguous template
1232
                rules).</p>
1233
        </configfiledesc>
1234
        <typedesc>recoverWithWarnings|recoverSilently| doNotRecover</typedesc>
1235
        <desc>
1236
            <p>Indicates the policy for handling dynamic errors that the XSLT specification defines
1237
                as recoverable.</p>
1238
            <p>"recoverSilently" means recover silently; "recoverWithWarnings"
1239
                means recover after signalling a warning to the <code>ErrorListener</code>;
1240
                "doNotRecover" means treat the error as fatal. An example of a recoverable error is
1241
                when two template rules match the same node. </p>
1242
            <p>Note that XSLT 3.0 has eliminated all "recoverable errors" from the
1243
                specification.</p>
1244
        </desc>
1245
    </feature>
1246
    <feature>
1247
        <featureCode>56</featureCode>
1248
        <name>RESULT_DOCUMENT_THREADS</name>
1249
        <type>integer</type>
1250
        <uri>http://saxon.sf.net/feature/resultDocumentThreads</uri>
1251
        <editions>EE</editions>
1252
        <configfile>xslt/@resultDocumentThreads</configfile>
1253
        <configfiledesc>
1254
            <p>Indicates the maximum number of threads to be used for processing
1255
                <code>xsl:result-document</code> instructions in parallel.</p>
1256
        </configfiledesc>
1257
        <desc>
1258
            <p>Indicates the maximum number of threads to be used for processing
1259
                    <code>xsl:result-document</code> instructions in parallel. If the maximum number
1260
                of threads are already in use, the <code>xsl:result-document</code> instruction will
1261
                be executed synchronously within its parent thread.</p>
1262
            <p>The default value is initialized to
1263
                    <code>Runtime.getRuntime().availableProcessors()</code> which is intended to
1264
                represent the number of "processors" (under some definition) available from the
1265
                hardware.</p>
1266
            <p>The limit applies per <code>Configuration</code>. If multiple workloads are running
1267
                on the same server under separate Saxon <code>Configuration</code> objects, then it
1268
                may be desirable to lower the limit.</p>
1269
            <p>Setting a value of zero or one suppresses multithreading entirely. This can also be
1270
                achieved (for a specific <code>xsl:result-document</code> instruction) by setting
1271
                the attribute <code>saxon:asynchronous="no"</code> in the stylesheet. Suppressing
1272
                multithreading may be desirable in a stylesheet that calls extension functions with
1273
                side-effects.</p>
1274
        </desc>
1275
    </feature>
1276
    <feature>
1277
        <featureCode>57</featureCode>
1278
        <name>RETAIN_DTD_ATTRIBUTE_TYPES</name>
1279
        <type>boolean</type>
1280
        <uri>http://saxon.sf.net/feature/retain-dtd-attribute-types</uri>
1281
        <editions>HE PE EE</editions>
1282
        <desc>
1283
            <p>If set to true, indicates that when input is obtained from a SAX parser, the
1284
                DTD-based attribute type notified by the XML parser should be used to set the type
1285
                annotation of the resulting node: for example a DTD type of NMTOKENS results in a
1286
                type annotation of xs:NMTOKENS. </p>
1287
            <p>This option is retained for backwards compatibility (at some time in the past, it was
1288
                the default), but is deprecated.</p>
1289
        </desc>
1290
    </feature>
1291
    <feature>
1292
        <featureCode>58</featureCode>
1293
        <name>SCHEMA_URI_RESOLVER</name>
1294
        <type>Instance of the class <link>net.sf.saxon.lib.SchemaURIResolver</link></type>
1295
        <uri>http://saxon.sf.net/feature/schemaURIResolver</uri>
1296
        <editions>EE</editions>
1297
        <setter class="net.sf.saxon.Configuration">setSchemaURIResolver</setter>
1298
        <getter class="net.sf.saxon.Configuration">getSchemaURIResolver</getter>
1299
        <desc>
1300
            <p>The supplied <code>SchemaURIResolver</code> will be used to resolve URIs of schema
1301
                documents referenced in <code>xsl:import-schema</code> declarations in XSLT,
1302
                    <code>import schema</code> in XQuery, references from one schema document to
1303
                another using <code>xs:include</code> or <code>xs:import</code>, and references from
1304
                an instance document to a schema using <code>xsi:schemaLocation</code>.</p>
1305
        </desc>
1306
    </feature>
1307
    <feature>
1308
        <featureCode>59</featureCode>
1309
        <name>SCHEMA_URI_RESOLVER_CLASS</name>
1310
        <type>Name of a class that implements <link>net.sf.saxon.lib.SchemaURIResolver</link></type>
1311
        <uri>http://saxon.sf.net/feature/schemaURIResolverClass</uri>
1312
        <editions>EE</editions>
1313
        <setter class="net.sf.saxon.Configuration">setSchemaURIResolver</setter>
1314
        <getter class="net.sf.saxon.Configuration">getSchemaURIResolver</getter>
1315
        <configfile>xsd/@schemaUriResolver</configfile>
1316
        <configfiledesc>
1317
            <p>Controls the handling of URIs in <code>xs:include</code>, <code>xs:import</code> etc.
1318
                declarations, and also in <code>xsi:schemaLocation</code>. </p>
1319
        </configfiledesc>
1320
        <desc>
1321
            <p>The name of a class that implements the interface <code>SchemaURIResolver</code>;
1322
                this class will be instantiated and the resulting instance will be used as the value
1323
                of the <link>net.sf.saxon.lib.Feature#SCHEMA_URI_RESOLVER</link> property.</p>
1324
        </desc>
1325
    </feature>
1326
    <feature>
1327
        <featureCode>60</featureCode>
1328
        <name>SCHEMA_VALIDATION</name>
1329
        <type>integer (<link>Validation.STRIP</link>, <link>Validation.PRESERVE</link>,
1330
                <link>Validation.LAX</link>, or <link> Validation.STRICT</link></type>
1331
        <uri>http://saxon.sf.net/feature/schema-validation</uri>
1332
        <editions>EE</editions>
1333
        <setter class="net.sf.saxon.Configuration">setSchemaValidationMode</setter>
1334
        <getter class="net.sf.saxon.Configuration">getSchemaValidationMode</getter>
1335
        <commandline for="TQ">-val:(strict|lax|strip|preserve)</commandline>
1336
        <desc>
1337
            <p>Indicates whether and how schema validation should be applied to source
1338
                documents.</p>
1339
        </desc>
1340
    </feature>
1341
    <feature>
1342
        <featureCode>61</featureCode>
1343
        <name>SCHEMA_VALIDATION_MODE</name>
1344
        <type>string ("strict", "lax", "preserve", or "strip")</type>
1345
        <uri>http://saxon.sf.net/feature/schema-validation-mode</uri>
1346
        <editions>EE</editions>
1347
        <setter class="net.sf.saxon.Configuration">setSchemaValidationMode</setter>
1348
        <getter class="net.sf.saxon.Configuration">getSchemaValidationMode</getter>
1349
        <configfile>global/@schemaValidation</configfile>
1350
        <configfiledesc>
1351
            <p>Controls whether schema validation is applied to input files.</p>
1352
        </configfiledesc>
1353
        <typedesc>strict|lax|preserve|strip</typedesc>
1354
        <commandline for="TQ">-val:(strict|lax|strip|preserve)</commandline>
1355
        <desc>
1356
            <p>Indicates whether and how schema validation should be applied to source
1357
                documents.</p>
1358
        </desc>
1359
    </feature>
1360
    <feature>
1361
        <featureCode>62</featureCode>
1362
        <name>SERIALIZER_FACTORY_CLASS</name>
1363
        <type>Name of a class that implements <link>net.sf.saxon.lib.SerializerFactory</link></type>
1364
        <uri>http://saxon.sf.net/feature/serializerFactoryClass</uri>
1365
        <editions>HE PE EE</editions>
1366
        <setter class="net.sf.saxon.Configuration">setSerializerFactory</setter>
1367
        <getter class="net.sf.saxon.Configuration">getSerializerFactory</getter>
1368
        <configfile>global/@serializerFactory</configfile>
1369
        <configfiledesc>
1370
            <p>Allows the serialization pipeline to be customized, for example to handle
1371
                user-defined serialization parameters.</p>
1372
        </configfiledesc>
1373
        <desc>
1374
            <p>The class will be instantiated and the resulting <code>SerializerFactory</code> will
1375
                be used to create the serialization pipeline for XSLT and XQuery results.</p>
1376
            <p>By subclassing the standard <code>SerializerFactory</code> it is possible to customize
1377
                many aspects of the output produced by the Serializer, or to introduce new
1378
                serialization methods and parameters.</p>
1379
        </desc>
1380
    </feature>
1381
    <feature>
1382
        <featureCode>63</featureCode>
1383
        <name>SOURCE_PARSER_CLASS</name>
1384
        <type>Name of a class that implements either the <code>org.xml.sax.XMLReader</code> or
1385
                <code>javax.xml.parsers. SAXParserFactory</code> interface</type>
1386
        <uri>http://saxon.sf.net/feature/sourceParserClass</uri>
1387
        <editions>HE PE EE</editions>
1388
        <setter class="net.sf.saxon.Configuration">setSourceParserClass</setter>
1389
        <getter class="net.sf.saxon.Configuration">getSourceParserClass</getter>
1390
        <configfile>global/@parser</configfile>
1391
        <configfiledesc>
1392
            <p>XML parser used for source documents.</p>
1393
        </configfiledesc>
1394
        <commandline for="TQV">-x:classname</commandline>
1395
        <desc>
1396
            <p>XML parser used for source documents.</p>
1397
            <p>The class will be instantiated. If it is an <code>XMLReader</code> it is used
1398
                directly; if it is a <code>SAXParserFactory</code> it is used to instantiate an
1399
                    <code>XMLReader</code>. The resulting <code>XMLReader</code> will be used to
1400
                parse source documents (that is, the principal source document plus any secondary
1401
                source documents read using the <code>doc()</code>, <code>document()</code>, or
1402
                    <code>collection()</code> function).</p>
1403
            <p>Note that the selected parser is used only when the input is supplied in the form of
1404
                a <code>StreamSource</code>; it is ignored when a <code>SAXSource</code> with a
1405
                pre-initialized <code>XMLReader</code> is supplied. A consequence is that this
1406
                configuration option has no effect when running transformations from an Ant script,
1407
                since the Ant <code>xslt</code> task always supplies the input in the form of a
1408
                    <code>SAXSource</code>.</p>
1409
        </desc>
1410
    </feature>
1411
    <feature>
1412
        <featureCode>64</featureCode>
1413
        <name>SOURCE_RESOLVER_CLASS</name>
1414
        <type>Name of a class implementing the <link>net.sf.saxon.lib.SourceResolver</link>
1415
            interface</type>
1416
        <uri>http://saxon.sf.net/feature/sourceResolverClass</uri>
1417
        <editions>HE PE EE</editions>
1418
        <setter class="net.sf.saxon.Configuration">setSourceResolver</setter>
1419
        <getter class="net.sf.saxon.Configuration">getSourceResolver</getter>
1420
        <configfile>global/@sourceResolver</configfile>
1421
        <configfiledesc>
1422
            <p>Name of a user-supplied class that resolves unknown implementations of the JAXP
1423
                    <code>Source</code> class into a known implementation.</p>
1424
        </configfiledesc>
1425
        <desc>
1426
            <p>On interfaces that allow an <code>org.xml.sax.Source</code> to be supplied, if a kind
1427
                of <code>Source</code> is provided that Saxon does not recognize, it will be passed
1428
                to the user-supplied <code>SourceResolver</code>, which has the opportunity to
1429
                convert it to a kind of <code>Source</code> that Saxon does recognize. This allows
1430
                new kinds of input to be supplied as input to Saxon's query, transformation, and
1431
                validation engines.</p>
1432
        </desc>
1433
    </feature>
1434
    <feature>
1435
        <featureCode>65</featureCode>
1436
        <name>STABLE_COLLECTION_URI</name>
1437
        <type>boolean</type>
1438
        <uri>http://saxon.sf.net/feature/stableCollectionUri</uri>
1439
        <editions>HE PE EE</editions>
1440
        <configfile>global/@stableCollectionUri</configfile>
1441
        <configfiledesc>
1442
            <p>Indicates that collections read using the <code>fn:collection()</code> function are
1443
                to be stable, that is, repeated calls with the same collection URI return identical
1444
                results.</p>
1445
        </configfiledesc>
1446
        <desc>
1447
            <p><code>STABLE_COLLECTION_URI</code>, if set, indicates that collections returned by
1448
                the <code>fn:collection()</code> and <code>fn:uri-collection()</code> functions
1449
                should be <i>stable</i>, that is, repeated calls on these functions with the same
1450
                collection URI (within the scope of a single query or transformation) should return
1451
                identical results.</p>
1452
            <p>Setting this option may be expensive because it requires that the entire collection
1453
                be saved in memory; it is rarely necessary in practice, but is required for strict
1454
                conformance with the W3C specifications.</p>
1455
            <p>It is also possible to indicate that a collection is stable by means of the
1456
                    <code>CollectionFinder</code> API.</p>
1457
        </desc>
1458
    </feature>
1459
    <feature>
1460
        <featureCode>66</featureCode>
1461
        <name>STABLE_UNPARSED_TEXT</name>
1462
        <type>boolean</type>
1463
        <uri>http://saxon.sf.net/feature/stableUnparsedText</uri>
1464
        <editions>HE PE EE</editions>
1465
        <configfile>global/@stableUnparsedText</configfile>
1466
        <configfiledesc>
1467
            <p>Indicates that unparsed text files read using functions such as
1468
                    <code>fn:unparsed-text()</code>, <code/>function are to be stable, that is,
1469
                repeated calls with the same URI return identical results.</p>
1470
        </configfiledesc>
1471
        <desc>
1472
            <p><code>STABLE_UNPARSED_TEXT</code>, if set, indicates that the results returned by
1473
                repeated calls of <code>unparsed-text()</code>, <code>unparsed-text-lines()</code>,
1474
                and <code>unparsed-text-available()</code> are consistent: calling these functions
1475
                twice during the evaluation of a stylesheet or query will return the same
1476
                results.</p>
1477
            <p>Setting this option may be expensive because it requires that the file contents be
1478
                saved in memory; it is rarely necessary in practice, but is required for strict
1479
                conformance with the W3C specifications.</p>
1480
        </desc>
1481
    </feature>
1482
    <feature>
1483
        <featureCode>67</featureCode>
1484
        <name>STANDARD_ERROR_OUTPUT_FILE</name>
1485
        <type>string (filename)</type>
1486
        <uri>http://saxon.sf.net/feature/standardErrorOutputFile</uri>
1487
        <editions>HE PE EE</editions>
1488
        <setter class="net.sf.saxon.Configuration">setStandardErrorOutput</setter>
1489
        <configfile>global/@standardErrorOutputFile</configfile>
1490
        <configfiledesc>
1491
            <p>Redirects output which would otherwise go to the stardard error output stream
1492
                    <code>System.err</code>, to this file.</p>
1493
        </configfiledesc>
1494
        <typedesc>A file name</typedesc>
1495
        <desc>
1496
            <p><code>STANDARD_ERROR_OUTPUT_FILE</code> is the name of a file to which Saxon will
1497
                redirect output that would otherwise go to the operating system standard error
1498
                stream (System.err). This is the fallback destination for various tracing and
1499
                diagnostic output. In some cases a more specific mechanism exists to select the
1500
                destination for particular kinds of output.</p>
1501
            <p>Note that if the <code>Configuration</code> is used in more than one processing
1502
                thread, the messages from different threads will be interleaved in the output file.
1503
                A more selective approach is to use a different <code>ErrorListener</code> in
1504
                different processing threads, and arrange for each <code>ErrorListener</code> to
1505
                write to its own logging destination.</p>
1506
        </desc>
1507
    </feature>
1508
    <feature>
1509
        <featureCode>68</featureCode>
1510
        <name>STREAMABILITY</name>
1511
        <type>string ("off", "standard")</type>
1512
        <uri>http://saxon.sf.net/feature/streamability</uri>
1513
        <editions>EE</editions>
1514
        <configfile>global/@streamability</configfile>
1515
        <configfiledesc>
1516
            <p>Determines the test applied to see if constructs are streamable (if streaming is
1517
                requested).</p>
1518
        </configfiledesc>
1519
        <typedesc>off|standard</typedesc>
1520
        <desc>
1521
            <p>The <code>STREAMABILITY</code> option can be used to disable streaming.</p>
1522
            <p>In earlier Saxon releases a third value "extended" was supported, to enable Saxon
1523
                streaming extensions. Since nearly all these extensions found their way into the W3C
1524
                specification, the distinction between "standard" and "extended" became meaningless,
1525
                so the value "extended" has been dropped.</p>
1526
            <p>The value "off" causes Saxon to behave as a non-streaming processor; that is, it does
1527
                not analyze constructs that are declared streamable, and it processes them as if
1528
                streaming were not requested. This is the only option available when using a Saxon
1529
                version or license that does not enable streaming.</p>
1530
            <p>The value "standard" is a misnomer. For strict adherence to W3C streamability rules,
1531
                set the property <code>STRICT_STREAMABILITY</code>. The streamability rules applied
1532
                by default are (in nearly all cases) identical to the W3C rules, but by default they
1533
                are applied to the expression tree after type-checking and optimization, which makes
1534
                some constructs streamable that would not be so otherwise.</p>
1535
            <p>Whichever option is chosen, the <code>STREAMING_FALLBACK</code> option can be used to
1536
                control what happens when code is deemed non-streamable; it provides a choice
1537
                between throwing a static (compile-time) error, and falling back to a non-streaming
1538
                implementation.</p>
1539
        </desc>
1540
    </feature>
1541
    <feature>
1542
        <featureCode>69</featureCode>
1543
        <name>STRICT_STREAMABILITY</name>
1544
        <type>boolean</type>
1545
        <uri>http://saxon.sf.net/feature/strictStreamability</uri>
1546
        <editions>EE</editions>
1547
        <configfile>xslt/@strictStreamability</configfile>
1548
        <configfiledesc>
1549
            <p>Causes the XSLT processor to verify that constructs that are declared streamable are
1550
                in fact "guaranteed streamable" according to the W3C rules.</p>
1551
        </configfiledesc>
1552
        <desc>
1553
            <p>Causes the XSLT processor to verify that constructs that are declared streamable are
1554
                in fact "guaranteed streamable" according to the W3C rules.</p>
1555
            <p>Normally, Saxon performs a variety of simplifications and optimizations on the
1556
                expression tree before performing streamability analysis. Sometimes these tree
1557
                rewrites will turn a non-streamable expression into a streamable one. An obvious
1558
                example is variable inlining: the expression <code>let $x := ./item/price return
1559
                    sum($x)</code> is not streamable, but the rewritten form
1560
                    <code>sum(./item/price)</code> is.</p>
1561
            <p>The XSLT 3.0 specification requires conformant streaming processors to have a mode of
1562
                operation in which the streamability rules are enforced as they appear in the spec,
1563
                and this option enables this mode.</p>
1564
            <p>This analysis is expensive, and should only be used during development when testing
1565
                stylesheet code for portability. When this mode is enabled, Saxon applies the
1566
                streamability rules at the earliest possible stage of processing; it then performs
1567
                its normal type checking and optimization phases, before doing a second stage of
1568
                streamability analysis to construct a streamed execution plan.</p>
1569
        </desc>
1570
    </feature>
1571
    <feature>
1572
        <featureCode>70</featureCode>
1573
        <name>STREAMING_FALLBACK</name>
1574
        <type>boolean</type>
1575
        <uri>http://saxon.sf.net/feature/streamingFallback</uri>
1576
        <editions>HE PE EE</editions>
1577
        <configfile>global/@streamingFallback</configfile>
1578
        <configfiledesc>
1579
            <p>If true, then constructs for which streaming is requested will be exectued in
1580
                non-streaming mode if the code is not actually streamable.</p>
1581
        </configfiledesc>
1582
        <desc>
1583
            <p>If the <code>STREAMING_FALLBACK</code> option is set, then constructs for which
1584
                streaming is requested (such as templates in a streaming mode, the
1585
                    <code>xsl:source-document</code> instruction with attribute
1586
                    <code>streamable="yes"</code>, and streamable accumulators) will be executed in
1587
                non-streaming mode if the code is not actually streamable. A compile-time warning
1588
                will always be given when the fallback option is taken.</p>
1589
        </desc>
1590
    </feature>
1591
    <feature>
1592
        <featureCode>71</featureCode>
1593
        <name>STRIP_WHITESPACE</name>
1594
        <type>string ("all", "none", or "ignorable")</type>
1595
        <uri>http://saxon.sf.net/feature/strip-whitespace</uri>
1596
        <editions>HE PE EE</editions>
1597
        <setter class="net.sf.saxon.Configuration">setStripsWhiteSpace</setter>
1598
        <getter class="net.sf.saxon.Configuration">getStripsWhiteSpace</getter>
1599
        <configfile>global/@stripSpace</configfile>
1600
        <configfiledesc>
1601
            <p>Controls what whitespace is removed from input documents (all inter-element
1602
                whitespace, no inter-element whitespace, or all inter-element whitespace in elements
1603
                having element-only content models).</p>
1604
        </configfiledesc>
1605
        <typedesc>all|none|ignorable</typedesc>
1606
        <commandline for="TQV">-strip:(all|none|ignorable)</commandline>
1607
        <desc>
1608
            <p>Indicates whether all whitespace, no whitespace, or whitespace in elements defined in
1609
                a DTD or schema as having element-only content should be stripped from source
1610
                documents.</p>
1611
            <p>The default is "ignorable". This whitespace stripping is additional to
1612
                any stripping done as a result of the <code>xsl:strip-space</code> declaration in an
1613
                XSLT stylesheet.</p>
1614
        </desc>
1615
    </feature>
1616
    <feature>
1617
        <featureCode>72</featureCode>
1618
        <name>STYLE_PARSER_CLASS</name>
1619
        <type>Name of a class implementing the <code>org.xml.sax.XMLReader</code> interface</type>
1620
        <uri>http://saxon.sf.net/feature/styleParserClass</uri>
1621
        <editions>HE PE EE</editions>
1622
        <setter class="net.sf.saxon.Configuration">setStyleParserClass</setter>
1623
        <getter class="net.sf.saxon.Configuration">getStyleParserClass</getter>
1624
        <configfile>global/@styleParser</configfile>
1625
        <configfile>xslt/@styleParser</configfile>
1626
        <configfiledesc>
1627
            <p>XML parser used for stylesheets and schema documents.</p>
1628
        </configfiledesc>
1629
        <commandline for="TV">-y:classname</commandline>
1630
        <desc>
1631
            <p>XML parser used for stylesheets and schema documents.</p>
1632
            <p>The class will be instantiated. If it is an <code>XMLReader</code> it is used
1633
                directly; if it is a <code>SAXParserFactory</code> it is used to instantiate an
1634
                    <code>XMLReader</code>. The resulting <code>XMLReader</code> will be used to
1635
                parse stylesheet documents (that is, the principal stylesheet module plus any
1636
                secondary source documents read using <code>xsl:include</code> or
1637
                    <code>xsl:import</code>) and also schema documents.</p>
1638
        </desc>
1639
    </feature>
1640
    <feature>
1641
        <featureCode>73</featureCode>
1642
        <name>SUPPRESS_EVALUATION_EXPIRY_WARNING</name>
1643
        <type>boolean</type>
1644
        <uri>http://saxon.sf.net/feature/suppressEvaluationExpiryWarning</uri>
1645
        <editions>PE EE</editions>
1646
        <configfile>global/@suppressEvaluationExpiryWarning</configfile>
1647
        <configfiledesc>
1648
            <p>Suppresses the warning issued to indicate that an evaluation license in use is due to
1649
                expire.</p>
1650
        </configfiledesc>
1651
        <desc>
1652
            <p>This is set to true to suppress the warning otherwise issued by command-line
1653
                interfaces indicating that an evaluation license is in use and is due to expire in a
1654
                set number of days.</p>
1655
        </desc>
1656
    </feature>
1657
    <feature>
1658
        <featureCode>74</featureCode>
1659
        <name>SUPPRESS_XPATH_WARNINGS</name>
1660
        <type>boolean</type>
1661
        <uri>http://saxon.sf.net/feature/suppressXPathWarnings</uri>
1662
        <editions>HE PE EE</editions>
1663
        <configfile>global/@suppressXPathWarnings</configfile>
1664
        <configfiledesc>
1665
            <p>Suppresses all warnings issued by the XPath and XQuery parsers.</p>
1666
        </configfiledesc>
1667
        <desc>
1668
            <p>Suppresses all warnings issued by the XPath and XQuery parsers.</p>
1669
            <p>Examples of warnings that are suppressed are the warning produced when keywords such
1670
                as <code>true</code> and <code>return</code> are interpreted as element names.</p>
1671
        </desc>
1672
    </feature>
1673
    <feature>
1674
        <featureCode>75</featureCode>
1675
        <name>SUPPRESS_XSLT_NAMESPACE_CHECK</name>
1676
        <type>boolean</type>
1677
        <uri>http://saxon.sf.net/feature/suppressXsltNamespaceCheck</uri>
1678
        <editions>HE PE EE</editions>
1679
        <configfile>global/@suppressXsltNamespaceCheck</configfile>
1680
        <configfiledesc>
1681
            <p>Suppresses the warning when there is no commonality between the namespaces used in
1682
                stylesheet match patterns and the namespaces used in the source document.</p>
1683
        </configfiledesc>
1684
        <desc>
1685
            <p>This is set to true to suppress the warning when there is no commonality between the
1686
                namespaces used in stylesheet match patterns and the namespaces used in the source
1687
                document.</p>
1688
        </desc>
1689
    </feature>
1690
    <feature>
1691
        <featureCode>76</featureCode>
1692
        <name>THRESHOLD_FOR_COMPILING_TYPES</name>
1693
        <type>integer</type>
1694
        <uri>http://saxon.sf.net/feature/thresholdForCompilingTypes</uri>
1695
        <editions>HE PE EE</editions>
1696
        <configfile>xsd/@thresholdForCompilingTypes</configfile>
1697
        <configfiledesc>
1698
            <p>Indicates how often an XSD simple type definition must be used before Saxon generates
1699
                bytecode to implement validation of input data against that type.</p>
1700
        </configfiledesc>
1701
        <desc>
1702
            <p>Indicates how often an XSD simple type definition must be used before Saxon generates
1703
                bytecode to implement validation of input data against that type.</p>
1704
            <p>By default, Saxon-EE generates Java bytecode to speed up the validation of input
1705
                strings against user-defined simple types after the type has been used 100 times
1706
                (during the life of a Saxon Configuration). This threshold may be changed using this
1707
                configuration option. It may be useful to raise the threshold if the number of
1708
                user-defined types is large, and the bytecode is creating memory pressure.</p>
1709
        </desc>
1710
    </feature>
1711
    <feature>
1712
        <featureCode>77</featureCode>
1713
        <name>TIMING</name>
1714
        <type>boolean</type>
1715
        <uri>http://saxon.sf.net/feature/timing</uri>
1716
        <editions>HE PE EE</editions>
1717
        <setter class="net.sf.saxon.Configuration">setTiming</setter>
1718
        <getter class="net.sf.saxon.Configuration">isTiming</getter>
1719
        <configfile>global/@timing</configfile>
1720
        <configfiledesc>
1721
            <p>Outputs progress messages to <code>System.err</code>. Equivalent to the
1722
                    <code>-t</code> option on the command line.</p>
1723
        </configfiledesc>
1724
        <commandline for="TQV">-t</commandline>
1725
        <desc>
1726
            <p>This is set to true to cause basic timing and tracing information to be output to the
1727
                standard error output stream.</p>
1728
            <p>The name of the feature is poorly chosen, since much
1729
                of the information that is output has nothing to do with timing, for example the
1730
                names of output files for <code>xsl:result-document</code> are traced, as are the
1731
                names of schema documents loaded.</p>
1732
        </desc>
1733
    </feature>
1734
    <feature>
1735
        <featureCode>78</featureCode>
1736
        <name>TRACE_EXTERNAL_FUNCTIONS</name>
1737
        <type>boolean</type>
1738
        <uri>http://saxon.sf.net/feature/trace-external-functions</uri>
1739
        <editions>PE EE</editions>
1740
        <configfile>global/@traceExternalFunctions</configfile>
1741
        <configfiledesc>
1742
            <p>Provides diagnostics when external functions are dynamically loaded.</p>
1743
        </configfiledesc>
1744
        <commandline for="TQ">-TJ</commandline>
1745
        <desc>
1746
            <p>If this option is set, Saxon will output (to the standard error output) progress
1747
                information about its attempts to locate and disambiguate references to reflexive
1748
                Java extension functions. This is useful for diagnostics if the XQuery or XSLT
1749
                compiler is failing to locate user-written extension functions.</p>
1750
        </desc>
1751
    </feature>
1752
    <feature>
1753
        <featureCode>79</featureCode>
1754
        <name>TRACE_LISTENER</name>
1755
        <type>Instance of the class <link>net.sf.saxon.lib.TraceListener</link></type>
1756
        <uri>http://saxon.sf.net/feature/traceListener</uri>
1757
        <editions>HE PE EE</editions>
1758
        <setter class="net.sf.saxon.Configuration">setTraceListener</setter>
1759
        <getter class="net.sf.saxon.Configuration">getTraceListener</getter>
1760
        <commandline for="TQ">-TL:classname</commandline>
1761
        <desc>
1762
            <p>The <code>TraceListener</code> will be notified of significant events occurring
1763
                during a query or transformation, for tracing or debugging purposes.</p>
1764
            <p>Setting a <code>TraceListener</code> automatically sets the
1765
                    <link>net.sf.saxon.lib.Feature#COMPILE_WITH_TRACING</link> option.</p>
1766
            <p>Avoid this option if more than one transformation or query is running concurrently:
1767
                use the feature <link>net.sf.saxon.lib.Feature#TRACE_LISTENER_CLASS</link>
1768
                instead. Alternatively, it is possible to set a <code>TraceListener</code> for an
1769
                individual query or transformation.</p>
1770
        </desc>
1771
    </feature>
1772
    <feature>
1773
        <featureCode>80</featureCode>
1774
        <name>TRACE_LISTENER_CLASS</name>
1775
        <type>Name of a class implementing <link>net.sf.saxon.lib.TraceListener</link></type>
1776
        <uri>http://saxon.sf.net/feature/traceListenerClass</uri>
1777
        <editions>HE PE EE</editions>
1778
        <setter class="net.sf.saxon.Configuration">setTraceListenerClass</setter>
1779
        <getter class="net.sf.saxon.Configuration">getTraceListenerClass</getter>
1780
        <configfile>global/@traceListener</configfile>
1781
        <configfiledesc>
1782
            <p>User-defined class to be used for handling run-time trace output.</p>
1783
        </configfiledesc>
1784
        <commandline for="TQ">-TL:classname</commandline>
1785
        <desc>
1786
            <p>The class will be instantiated once for each query or transformation, and the
1787
                resulting <code>TraceListener</code> will be notified of significant events
1788
                occurring during that query or transformation, for tracing or debugging
1789
                purposes.</p>
1790
            <p>Setting a <code>TraceListener</code> automatically sets the
1791
                    <link>net.sf.saxon.lib.Feature#COMPILE_WITH_TRACING</link> option.</p>
1792
        </desc>
1793
    </feature>
1794
    <feature>
1795
        <featureCode>81</featureCode>
1796
        <name>TRACE_LISTENER_OUTPUT_FILE</name>
1797
        <type>string (file name)</type>
1798
        <uri>http://saxon.sf.net/feature/traceListenerOutputFile</uri>
1799
        <editions>HE PE EE</editions>
1800
        <configfile>global/@traceListenerOutputFile</configfile>
1801
        <configfiledesc>
1802
            <p>Supplies a file as destination for trace listener output.</p>
1803
        </configfiledesc>
1804
        <desc>
1805
            <p>When trace listening is switched on (for example by using -T on the command line),
1806
                this file will be supplied to the trace listener to use as the output destination.
1807
                If the option is not supplied, trace listener output is sent to the standard error
1808
                stream.</p>
1809
        </desc>
1810
    </feature>
1811
    <feature>
1812
        <featureCode>82</featureCode>
1813
        <name>TRACE_OPTIMIZER_DECISIONS</name>
1814
        <type>boolean</type>
1815
        <uri>http://saxon.sf.net/feature/trace-optimizer-decisions</uri>
1816
        <editions>PE EE</editions>
1817
        <configfile>global/@traceOptimizerDecisions</configfile>
1818
        <configfiledesc>
1819
            <p>Causes tracing of decisions made by the optimizer.</p>
1820
        </configfiledesc>
1821
        <commandline for="TQ">-explain</commandline>
1822
        <desc>
1823
            <p>If this option is set, Saxon will output (to the standard error output) detailed
1824
                information about the rewrites to the expression tree made by the optimizer. This
1825
                information is mainly useful for internal system debugging, but it is also possible
1826
                to digest it to analyze the ways in which the expression has been optimized for the
1827
                purpose of performance analysis and tuning.</p>
1828
        </desc>
1829
    </feature>
1830
    <feature>
1831
        <featureCode>83</featureCode>
1832
        <name>TREE_MODEL</name>
1833
        <type>integer (<link>net.sf.saxon.event.Builder#STANDARD_TREE</link> or
1834
                <link>net.sf.saxon.event.Builder#TINY_TREE</link> or or
1835
                <link>net.sf.saxon.event.Builder#TINY_TREE_CONDENSED</link>)</type>
1836
        <uri>http://saxon.sf.net/feature/treeModel</uri>
1837
        <editions>HE PE EE</editions>
1838
        <setter class="net.sf.saxon.Configuration">setTreeModel</setter>
1839
        <getter class="net.sf.saxon.Configuration">getTreeModel</getter>
1840
        <commandline for="TQ">-tree:(linked|tiny|tinyc)</commandline>
1841
        <desc>
1842
            <p>Selects an implementation of the Saxon tree model. The default is
1843
                    <code>TINY_TREE</code>.</p>
1844
            <p>For running XQuery Update, use the linked tree, because it is the only implementation
1845
                that is updateable.</p>
1846
        </desc>
1847
    </feature>
1848
    <feature>
1849
        <featureCode>84</featureCode>
1850
        <name>TREE_MODEL_NAME</name>
1851
        <type>string ("linkedTree" or "tinyTree" or "tinyTreeCondensed")</type>
1852
        <uri>http://saxon.sf.net/feature/treeModelName</uri>
1853
        <editions>HE PE EE</editions>
1854
        <setter class="net.sf.saxon.Configuration">setTreeModel</setter>
1855
        <getter class="net.sf.saxon.Configuration">getTreeModel</getter>
1856
        <configfile>global/@treeModel</configfile>
1857
        <configfiledesc>
1858
            <p>Determines the tree model implementation used for input files: TinyTree, LinkedTree,
1859
                or TinyTree(condensed).</p>
1860
        </configfiledesc>
1861
        <typedesc>linkedTree|tinyTree| tinyTreeCondensed</typedesc>
1862
        <commandline for="TQ">-tree:(linked|tiny|tinyc)</commandline>
1863
        <desc>
1864
            <p>Selects an implementation of the Saxon tree model. The default is
1865
                    <code>tinyTree</code>.</p>
1866
            <p>For running XQuery Update, use the linked tree, because it is the only implementation
1867
                that is updateable.</p>
1868
        </desc>
1869
    </feature>
1870
    <feature>
1871
        <featureCode>85</featureCode>
1872
        <name>UNPARSED_TEXT_URI_RESOLVER</name>
1873
        <type>Instance of a class implementing
1874
            <code>net.sf.saxon.lib.UnparsedTextURIResolver</code></type>
1875
        <uri>http://saxon.sf.net/feature/unparsedTextURIResolver</uri>
1876
        <editions>HE PE EE</editions>
1877
        <typedesc>Name of a class implementing the
1878
                <link>net.sf.saxon.lib.UnparsedTextURIResolver</link> interface</typedesc>
1879
        <desc>
1880
            <p>The supplied <code>UnparsedTextURIResolver</code> will be used to resolve
1881
                (dereference) all URIs specifed in calls to the <code>unparsed-text()</code>,
1882
                    <code>unparsed-text-lines()</code>, and <code>unparsed-text-available()</code>
1883
                functions.</p>
1884
        </desc>
1885
    </feature>
1886
    <feature>
1887
        <featureCode>86</featureCode>
1888
        <name>UNPARSED_TEXT_URI_RESOLVER_CLASS</name>
1889
        <type>Name of a class implementing
1890
            <code>net.sf.saxon.lib.UnparsedTextURIResolver</code></type>
1891
        <uri>http://saxon.sf.net/feature/unparsedTextURIResolverClass</uri>
1892
        <editions>HE PE EE</editions>
1893
        <configfile>global/@unparsedTextURIResolver</configfile>
1894
        <configfiledesc>
1895
            <p>The class name of the <code>UnparsedTextURIResolver</code> to be used for deferencing
1896
                URIs used in calls on <code>fn:unparsed-text()</code> and related functions.</p>
1897
        </configfiledesc>
1898
        <typedesc>Name of a class implementing the
1899
                <link>net.sf.saxon.lib.UnparsedTextURIResolver</link> interface</typedesc>
1900
        <desc>
1901
            <p>An instance of the specified <code>UnparsedTextURIResolver</code> class will be
1902
                created, and used to resolve (dereference) all URIs specifed in calls to the
1903
                    <code>unparsed-text()</code>, <code>unparsed-text-lines()</code>, and
1904
                    <code>unparsed-text-available()</code> functions.</p>
1905
        </desc>
1906
    </feature>
1907
    <feature>
1908
        <featureCode>87</featureCode>
1909
        <name>URI_RESOLVER_CLASS</name>
1910
        <type>Name of a class implementing <code>javax.xml.transform.URIResolver</code></type>
1911
        <uri>http://saxon.sf.net/feature/uriResolverClass</uri>
1912
        <editions>HE PE EE</editions>
1913
        <setter class="net.sf.saxon.Configuration">setURIResolver</setter>
1914
        <getter class="net.sf.saxon.Configuration">getURIResolver</getter>
1915
        <configfile>global/@uriResolver</configfile>
1916
        <configfiledesc>
1917
            <p>The <code>URIResolver</code> to be used for deferencing URIs used in <a
1918
                    class="bodylink code" href="/xsl-elements/include">xsl:include</a>, <a
1919
                    class="bodylink code" href="/xsl-elements/import">xsl:import</a>, <a
1920
                    class="bodylink code" href="/functions/fn/doc">doc()</a>, and <a
1921
                    class="bodylink code" href="/functions/fn/document">document()</a>.</p>
1922
        </configfiledesc>
1923
        <typedesc>Name of a class implementing the JAXP <code>javax.xml.transform.URIResolver</code>
1924
            interface</typedesc>
1925
        <commandline for="TQ">-r:classname</commandline>
1926
        <desc>
1927
            <p>An instance of the specified <code>URIResolver</code> class will be created, and used
1928
                to resolve (dereference) all URIs specifed in calls to the <code>doc()</code> and
1929
                    <code>document()</code> functions, as well as URIs used in
1930
                    <code>xsl:include</code> and <code>xsl:import</code> and location hints for
1931
                XQuery modules and XSD schema documents.</p>
1932
        </desc>
1933
    </feature>
1934
    <feature>
1935
        <featureCode>88</featureCode>
1936
        <name>USE_PI_DISABLE_OUTPUT_ESCAPING</name>
1937
        <type>boolean</type>
1938
        <uri>http://saxon.sf.net/feature/use-pi-disable-output-escaping</uri>
1939
        <editions>HE PE EE</editions>
1940
        <configfile>global/@usePiDisableOutputEscaping</configfile>
1941
        <configfiledesc>
1942
            <p>When sending output to a user-defined content handler, indicates whether JAXP-defined
1943
                processing instructions are used to signal the start and end of text in which output
1944
                escaping is disabled.</p>
1945
        </configfiledesc>
1946
        <desc>
1947
            <p>This option determines whether a <code>TransformerHandler</code> created with this
1948
                    <code>TransformerFactory</code> or <code>Configuration</code> recognizes the
1949
                JAXP-defined processing instructions <code>Result.PI_DISABLE_OUTPUT_ESCAPING</code>
1950
                and <code>Result.PI_ENABLE_OUTPUT_ESCAPING</code> in the input stream as
1951
                instructions to disable or to re-enable output escaping. The default value is
1952
                    <b>false</b>.</p>
1953
        </desc>
1954
    </feature>
1955
    <feature>
1956
        <featureCode>89</featureCode>
1957
        <name>USE_TYPED_VALUE_CACHE</name>
1958
        <type>boolean</type>
1959
        <uri>http://saxon.sf.net/feature/use-typed-value-cache</uri>
1960
        <editions>EE</editions>
1961
        <configfile>global/@useTypedValueCache</configfile>
1962
        <configfiledesc>
1963
            <p>If true, typed values of element and attribute nodes are cached in the TinyTree. Uses
1964
                extra memory, may make execution faster.</p>
1965
        </configfiledesc>
1966
        <desc>
1967
            <p>This option is relevant only when the TinyTree is used; it determines whether (for a
1968
                validated document) a cache will be maintained containing the typed values of nodes.</p>
1969
            <p>Typed values are held in the cache only for elements and attributes whose type is
1970
                other than string, untypedAtomic, or anyURI. The default value is true. Setting this
1971
                value to false can reduce memory requirements at the cost of requiring recomputation
1972
                of typed values on each access.</p>
1973
        </desc>
1974
    </feature>
1975
    <feature>
1976
        <featureCode>90</featureCode>
1977
        <name>USE_XSI_SCHEMA_LOCATION</name>
1978
        <type>boolean</type>
1979
        <uri>http://saxon.sf.net/feature/useXsiSchemaLocation</uri>
1980
        <editions>EE</editions>
1981
        <setter class="net.sf.saxon.lib.ParseOptions">setUseXsiSchemaLocation</setter>
1982
        <getter class="net.sf.saxon.lib.ParseOptions">isUseXsiSchemaLocation</getter>
1983
        <configfile>xsd/@useXsiSchemaLocation</configfile>
1984
        <configfiledesc>
1985
            <p>Indicates whether the schema processor takes account of
1986
                    <code>xsi:schemaLocation</code> and <code>xsi:noNamespaceSchemaLocation</code>
1987
                attributes appearing in the instance document.</p>
1988
        </configfiledesc>
1989
        <commandline for="TQV">-xsiloc:(on|off)</commandline>
1990
        <desc>
1991
            <p>This option determines whether or not to use the <code>xsi:schemaLocation</code>
1992
                    and<code> xsi:noNamespaceSchemaLocation</code> attributes in an instance
1993
                document to locate a schema for validation.</p>
1994
            <p>Note, these attribute are only consulted if validation is requested; the presence of
1995
                one of these attributes never by itself triggers validation.</p>
1996
        </desc>
1997
    </feature>
1998
    <feature>
1999
        <featureCode>91</featureCode>
2000
        <name>VALIDATION_COMMENTS</name>
2001
        <type>boolean</type>
2002
        <uri>http://saxon.sf.net/feature/validation-comments</uri>
2003
        <editions>EE</editions>
2004
        <setter class="net.sf.saxon.lib.ParseOptions">setAddCommentsAfterValidationErrors</setter>
2005
        <getter class="net.sf.saxon.lib.ParseOptions">isAddCommentsAfterValidationErrors</getter>
2006
        <configfile>global/@validationComments</configfile>
2007
        <configfiledesc>
2008
            <p>Only relevant when <code>validationWarnings=true</code>, indicates that validation
2009
                error messages should where possible be added as comments in the document instance
2010
                being validated rather than fatal errors.</p>
2011
        </configfiledesc>
2012
        <commandline for="QT">-outval:recover</commandline>
2013
        <desc>
2014
            <p>This option determines whether non-fatal validation errors in XQuery or XSLT result
2015
                documents should result in comments being inserted into the result tree. The
2016
                command-line flag <code>-outval:recover</code> sets both this option and the
2017
                    <link>net.sf.saxon.lib.Feature#VALIDATION_WARNINGS</link> option.</p>
2018
        </desc>
2019
    </feature>
2020
    <feature>
2021
        <featureCode>92</featureCode>
2022
        <name>VALIDATION_WARNINGS</name>
2023
        <type>boolean</type>
2024
        <uri>http://saxon.sf.net/feature/validation-warnings</uri>
2025
        <editions>EE</editions>
2026
        <configfile>global/@validationWarnings</configfile>
2027
        <configfiledesc>
2028
            <p>For result trees subjected to schema validation, indicates whether validation
2029
                failures should be treated as warnings rather than fatal errors.</p>
2030
        </configfiledesc>
2031
        <commandline for="QT">-outval:recover</commandline>
2032
        <desc>
2033
            <p>This option indicates (if true) that errors occuring while validating a final result
2034
                tree are not to be treated as fatal.</p>
2035
            <p>Regardless of the setting of this option, all validation errors are reported to the
2036
                    <code>error()</code> method of the <code>ErrorListener</code>, and validation is
2037
                terminated if the <code>error()</code> method throws an exception, or if the error
2038
                limit set in the <code>ParseOptions</code> object is reached.</p>
2039
            <p>This option primarily controls what happens at the end of a validation episode. If
2040
                the validation episode detected one or more validation errors, then when this option
2041
                is off, an exception is thrown, which will normally result in any query or
2042
                stylesheet failing with a dynamic error, and no output file being written. If the
2043
                option is on, no exception is thrown, and the output is written as if validation had
2044
                been successful. Note in this case that any type annotations present in a result
2045
                document are unreliable.</p>
2046
            <p>If this option is set when running XSLT or XQuery, it is ignored as far as input
2047
                files are concerned: validation errors in input files are still fatal. However, if
2048
                the option is set and a validation error occurs in a final output file, the output
2049
                file is still written and the process terminates as if successful.</p>
2050
            <p>The detailed interpretation of this option changed in Saxon 9.5.</p>
2051
        </desc>
2052
    </feature>
2053
    <feature>
2054
        <featureCode>93</featureCode>
2055
        <name>VERSION_WARNING</name>
2056
        <type>boolean</type>
2057
        <uri>http://saxon.sf.net/feature/version-warning</uri>
2058
        <editions>HE PE EE</editions>
2059
        <configfile>xslt/@versionWarning</configfile>
2060
        <configfiledesc>
2061
            <p>False suppresses the warning produced when the XSLT processor version is not the same
2062
                as the version in the <code>xsl:stylesheet</code> element. From Saxon 9.8, the
2063
                warning is no longer output, so this attribute is ignored.</p>
2064
        </configfiledesc>
2065
        <commandline for="T">-versmsg:(on|off)</commandline>
2066
        <desc>
2067
            <p>Indicates whether a warning message should be notified (to the
2068
                <code>ErrorListener</code>) if running Saxon against an XSLT stylesheet that
2069
                specifies <code>version="1.0"</code>.</p>
2070
            <p>From Saxon 9.8, the warning is no longer output (since XSLT 3.0 does not require
2071
                it), so this option is ignored.</p>
2072
            <!--<p>Indicates whether a warning message should be notified (to the
2073
                    <code>ErrorListener</code>) if running Saxon against an XSLT stylesheet that
2074
                specifies <code>version="1.0"</code>. The warning that an XSLT 1.0 stylesheet is
2075
                being processed using an XSLT 2.0 processor is output by default (because the W3C
2076
                specification requires it), but it may be suppressed using this option.</p>-->
2077
        </desc>
2078
    </feature>
2079
    <feature>
2080
        <featureCode>94</featureCode>
2081
        <name>XINCLUDE</name>
2082
        <type>boolean</type>
2083
        <uri>http://saxon.sf.net/feature/xinclude-aware</uri>
2084
        <editions>HE PE EE</editions>
2085
        <setter class="net.sf.saxon.Configuration">setXIncludeAware</setter>
2086
        <getter class="net.sf.saxon.Configuration">isXIncludeAware</getter>
2087
        <configfile>global/@xInclude</configfile>
2088
        <configfiledesc>
2089
            <p>Controls whether XInclude processing is applied to input files.</p>
2090
        </configfiledesc>
2091
        <commandline for="T">-xi:(on|off)</commandline>
2092
        <desc>
2093
            <p>Indicates whether source documents should have any XInclude directives expanded.</p>
2094
            <p>The default is false. The option applies to all input XML documents, including
2095
                stylesheets and schema documents. It can be overridden for individual documents
2096
                using the <link>net.sf.saxon.lib.ParseOptions</link> class.</p>
2097
            <p>This option relies on support in the underlying XML parser. If the XML parser does
2098
                not support XInclude processing, setting this option results in a parsing failure.</p>
2099
        </desc>
2100
    </feature>
2101
    <feature>
2102
        <featureCode>95</featureCode>
2103
        <name>XML_VERSION</name>
2104
        <type>string ("1.0" or "1.1")</type>
2105
        <uri>http://saxon.sf.net/feature/xml-version</uri>
2106
        <editions>HE PE EE</editions>
2107
        <setter class="net.sf.saxon.Configuration">setXMLVersion</setter>
2108
        <getter class="net.sf.saxon.Configuration">getXMLVersion</getter>
2109
        <configfile>global/@versionOfXml</configfile>
2110
        <configfiledesc>
2111
            <p>Determines whether XML 1.0 or XML 1.1 rules are used for names. (1.0 means the rules
2112
                before Edition 5.)</p>
2113
        </configfiledesc>
2114
        <typedesc>1.0|1.1</typedesc>
2115
        <commandline for="TQV">-xmlversion:(1.0|1.1)</commandline>
2116
        <desc>
2117
            <p>This determines the XML version used by the <code>Configuration</code>.</p>
2118
            <p>Note that source documents specifying <code>xml version="1.0"</code> or
2119
                    <code>"1.1"</code> are accepted regardless of this setting. The effect of this
2120
                switch is to change the validation rules for types such as <code>xs:Name</code> and
2121
                    <code>xs:NCName</code>, to change the characters allowed in names within XPath
2122
                expressions (etc.), to change the meaning of <code>\i</code> and <code>\c</code> in
2123
                regular expressions, and to determine whether the serializer allows XML 1.1
2124
                documents to be constructed. </p>
2125
            <p>The default is currently 1.0, but may change.</p>
2126
        </desc>
2127
    </feature>
2128
    <feature>
2129
        <featureCode>96</featureCode>
2130
        <name>XML_PARSER_FEATURE</name>
2131
        <type>boolean</type>
2132
        <uri>http://saxon.sf.net/feature/parserFeature?uri=</uri>
2133
        <editions>HE PE EE</editions>
2134
        <desc>
2135
            <p>Sets the value of a parser feature flag. The feature name is any fully-qualified
2136
                URI.</p>
2137
            <p>For example if the parser supports a feature
2138
                    <code>http://xml.org/sax/features/external-parameter-entities</code> then this
2139
                can be set by setting the value of the Configuration property:
2140
                    <code>http://saxon.sf.net/feature/parserFeature?uri=http%3A//xml.org/sax/features/external-parameter-entities</code>
2141
                to true.</p>
2142
        </desc>
2143
    </feature>
2144
    <feature>
2145
        <featureCode>97</featureCode>
2146
        <name>XML_PARSER_PROPERTY</name>
2147
        <type>boolean</type>
2148
        <uri>http://saxon.sf.net/feature/parserProperty?uri=</uri>
2149
        <editions>HE PE EE</editions>
2150
        <desc>
2151
            <p>Sets the value of a parser property flag. The property name is any fully-qualified
2152
                URI.</p>
2153
            <p>For example if the parser supports a property
2154
                    <code>http://apache.org/xml/properties/schema/external-schemaLocation</code>
2155
                then this can be set using the value of the Configuration property:
2156
                    <code>http://saxon.sf.net/feature/parserProperty?uri=http%3A//apache.org/xml/properties/schema/external-schemaLocation</code>
2157
                to the required value.</p>
2158
        </desc>
2159
    </feature>
2160
    <feature>
2161
        <featureCode>98</featureCode>
2162
        <name>XQUERY_ALLOW_UPDATE</name>
2163
        <type>boolean</type>
2164
        <uri>http://saxon.sf.net/feature/xqueryAllowUpdate</uri>
2165
        <editions>EE</editions>
2166
        <setter class="net.sf.saxon.query.StaticQueryContext">setUpdatingEnabled</setter>
2167
        <getter class="net.sf.saxon.query.StaticQueryContext">isUpdatingEnabled</getter>
2168
        <setter class="net.sf.saxon.s9api.XQueryCompiler">setUpdatingEnabled</setter>
2169
        <getter class="net.sf.saxon.s9api.XQueryCompiler">isUpdatingEnabled</getter>
2170
        <configfile>xquery/@allowUpdate</configfile>
2171
        <configfiledesc>
2172
            <p>Indicates whether XQuery Update syntax is accepted.</p>
2173
        </configfiledesc>
2174
        <commandline for="Q">-update:(on|off|discard)</commandline>
2175
        <desc>
2176
            <p>Determines whether XQuery Update syntax is accepted.</p>
2177
            <p>If true, update syntax is accepted, if false, it is not accepted. Setting the value to 
2178
                true does not mean that the query has to use update syntax, only that it may do so.</p>
2179
            <p>From Saxon 9.6, XQuery Update syntax and XQuery 3.0 syntax can be mixed, although
2180
                this combination is not defined by any W3C specification at the time of writing.</p>
2181
            <p>This option can be set for a particular XQuery compilation. When the option is set at
2182
                the <code>Configuration</code> level, it acts as a default.</p>
2183
            <p>On the command line, this option is combined with the option "discard" which
2184
                indicates that updates are allowed, but the updates are not written back to
2185
                filestore. This does not correspond to any option in the Java API, where writing an
2186
                updated document back to filestore only happens if explicitly requested.</p>
2187
        </desc>
2188
    </feature>
2189
    <feature>
2190
        <featureCode>99</featureCode>
2191
        <name>XQUERY_CONSTRUCTION_MODE</name>
2192
        <type>string ("strip" or "preserve")</type>
2193
        <uri>http://saxon.sf.net/feature/xqueryConstructionMode</uri>
2194
        <editions>HE PE EE</editions>
2195
        <setter class="net.sf.saxon.query.StaticQueryContext">setConstructionMode</setter>
2196
        <getter class="net.sf.saxon.query.StaticQueryContext">getConstructionMode</getter>
2197
        <configfile>xquery/@constructionMode</configfile>
2198
        <configfiledesc>
2199
            <p>Default value for construction mode in the static context.</p>
2200
        </configfiledesc>
2201
        <typedesc>preserve|strip</typedesc>
2202
        <desc>
2203
            <p>This option defines the default value of the construction mode in the XQuery static
2204
                context (overridable in the query prolog).</p>
2205
            <p>This option can be set for a particular XQuery compilation. When the option is set at
2206
                the <code>Configuration</code> level, it acts as a default.</p>
2207
        </desc>
2208
    </feature>
2209
    <feature>
2210
        <featureCode>100</featureCode>
2211
        <name>XQUERY_DEFAULT_ELEMENT_NAMESPACE</name>
2212
        <type>Namespace URI</type>
2213
        <uri>http://saxon.sf.net/feature/xqueryDefaultElementNamespace</uri>
2214
        <editions>HE PE EE</editions>
2215
        <setter class="net.sf.saxon.query.StaticQueryContext">setDefaultElementNamespace</setter>
2216
        <getter class="net.sf.saxon.query.StaticQueryContext">getDefaultElementNamespace</getter>
2217
        <configfile>xquery/@defaultElementNamespace</configfile>
2218
        <configfiledesc>
2219
            <p>Default namespace for elements and types.</p>
2220
        </configfiledesc>
2221
        <desc>
2222
            <p>This property defines the default namespace for elements and types that are not
2223
                qualified by a namespace prefix.</p>
2224
            <p>This option can be set for a particular XQuery compilation. When the option is set at
2225
                the <code>Configuration</code> level, it acts as a default.</p>
2226
        </desc>
2227
    </feature>
2228
    <feature>
2229
        <featureCode>101</featureCode>
2230
        <name>XQUERY_DEFAULT_FUNCTION_NAMESPACE</name>
2231
        <type>Namespace URI</type>
2232
            <uri>http://saxon.sf.net/feature/xqueryDefaultFunctionNamespace</uri>
2233
        <editions>HE PE EE</editions>
2234
        <setter class="net.sf.saxon.query.StaticQueryContext">setDefaultFunctionNamespace</setter>
2235
        <getter class="net.sf.saxon.query.StaticQueryContext">getDefaultFunctionNamespace</getter>
2236
        <configfile>xquery/@defaultFunctionNamespace</configfile>
2237
        <configfiledesc>
2238
            <p>Default namespace for functions.</p>
2239
        </configfiledesc>
2240
        <desc>
2241
            <p>This property defines the default namespace for function names that are not qualified
2242
                by a namespace prefix.</p>
2243
            <p>This option can be set for a particular XQuery compilation. When the option is set at
2244
                the <code>Configuration</code> level, it acts as a default.</p>
2245
        </desc>
2246
    </feature>
2247
    <feature>
2248
        <featureCode>102</featureCode>
2249
        <name>XQUERY_EMPTY_LEAST</name>
2250
        <type>boolean</type>
2251
        <uri>http://saxon.sf.net/feature/xqueryEmptyLeast</uri>
2252
        <editions>HE PE EE</editions>
2253
        <setter class="net.sf.saxon.query.StaticQueryContext">setEmptyLeast</setter>
2254
        <getter class="net.sf.saxon.query.StaticQueryContext">isEmptyLeast</getter>
2255
        <configfile>xquery/@emptyLeast</configfile>
2256
        <configfiledesc>
2257
            <p>True if the empty sequence comes first in sort order.</p>
2258
        </configfiledesc>
2259
        <desc>
2260
            <p>This property defines how the empty sequence is handled in XQuery sorting (the "order
2261
                by" clause). If true, <code>()</code> comes at the start of the sorted sequence; if
2262
                false, it comes last.</p>
2263
            <p>This option can be set for a particular XQuery compilation. When the option is set at
2264
                the <code>Configuration</code> level, it acts as a default.</p>
2265
        </desc>
2266
    </feature>
2267
    <feature>
2268
        <featureCode>103</featureCode>
2269
        <name>XQUERY_INHERIT_NAMESPACES</name>
2270
        <type>boolean</type>
2271
        <uri>http://saxon.sf.net/feature/xqueryInheritNamespaces</uri>
2272
        <editions>HE PE EE</editions>
2273
        <setter class="net.sf.saxon.query.StaticQueryContext">setInheritNamespaces</setter>
2274
        <getter class="net.sf.saxon.query.StaticQueryContext">isInheritNamespaces</getter>
2275
        <configfile>xquery/@inheritNamespaces</configfile>
2276
        <configfiledesc>
2277
            <p>Default value for "inherit namespaces" in the static context.</p>
2278
        </configfiledesc>
2279
        <desc>
2280
            <p>This property defines the default value of the <code>inherit-namespaces</code>
2281
                property in the XQuery static context.</p>
2282
            <p>This option can be set for a particular XQuery compilation. When the option is set at
2283
                the <code>Configuration</code> level, it acts as a default.</p>
2284
        </desc>
2285
    </feature>
2286
    <feature>
2287
        <featureCode>104</featureCode>
2288
        <name>XQUERY_MULTIPLE_MODULE_IMPORTS</name>
2289
        <type>boolean</type>
2290
        <uri>http://saxon.sf.net/feature/xqueryMultipleModuleImports</uri>
2291
        <editions>EE</editions>
2292
        <configfile>xquery/@multipleModuleImports</configfile>
2293
        <configfiledesc>
2294
            <p>If set to true, the XQuery processor attempts to fetch an XQuery module appearing in
2295
                an <code>import module</code> directive, whether or not a module with that module
2296
                URI has already been loaded, unless the location URI of the existing module is the
2297
                same as that of the requested module.</p>
2298
        </configfiledesc>
2299
        <desc>
2300
            <p>If the value is false, then when an <code>import module</code> declaration is
2301
                encountered for a module URI that is already among the known loaded modules (or
2302
                modules in the process of being compiled), the <code>import module</code> is treated
2303
                as a reference to the existing module. If the value is true, the system first checks
2304
                whether the supplied "location hints" match the known location of the existing
2305
                module, and the existing module is used only if there is a match.</p>
2306
        </desc>
2307
    </feature>
2308
    <feature>
2309
        <featureCode>105</featureCode>
2310
        <name>XQUERY_PRESERVE_BOUNDARY_SPACE</name>
2311
        <type>boolean</type>
2312
        <uri>http://saxon.sf.net/feature/xqueryPreserveBoundarySpace</uri>
2313
        <editions>HE PE EE</editions>
2314
        <setter class="net.sf.saxon.query.StaticQueryContext">setPreserveBoundarySpace</setter>
2315
        <getter class="net.sf.saxon.query.StaticQueryContext">isPreserveBoundarySpace</getter>
2316
        <configfile>xquery/@preserveBoundarySpace</configfile>
2317
        <configfiledesc>
2318
            <p>Policy for preserving boundary space within direct element content.</p>
2319
        </configfiledesc>
2320
        <desc>
2321
            <p>This property defines whether "boundary space" (insignificant space in direct element
2322
                constructors) should be retained or not.</p>
2323
            <p>This option can be set for a particular XQuery compilation. When the option is set at
2324
                the <code>Configuration</code> level, it acts as a default.</p>
2325
        </desc>
2326
    </feature>
2327
    <feature>
2328
        <featureCode>106</featureCode>
2329
        <name>XQUERY_PRESERVE_NAMESPACES</name>
2330
        <type>boolean</type>
2331
        <uri>http://saxon.sf.net/feature/xqueryPreserveNamespaces</uri>
2332
        <editions>HE PE EE</editions>
2333
        <setter class="net.sf.saxon.query.StaticQueryContext">setPreserveNamespaces</setter>
2334
        <getter class="net.sf.saxon.query.StaticQueryContext">isPreserveNamespaces</getter>
2335
        <configfile>xquery/@preserveNamespaces</configfile>
2336
        <configfiledesc>
2337
            <p>Default value for "preserve namespaces" in the static context.</p>
2338
        </configfiledesc>
2339
        <desc>
2340
            <p>This property defines whether unused namespace declarations are retained by XQuery
2341
                element copy operations.</p>
2342
            <p>This option can be set for a particular XQuery compilation. When the option is set at
2343
                the <code>Configuration</code> level, it acts as a default.</p>
2344
        </desc>
2345
    </feature>
2346
    <feature>
2347
        <featureCode>107</featureCode>
2348
        <name>XQUERY_REQUIRED_CONTEXT_ITEM_TYPE</name>
2349
        <type>string containing an ItemType, for example <code>document-node()</code></type>
2350
        <uri>http://saxon.sf.net/feature/xqueryRequiredContextItemType</uri>
2351
        <editions>HE PE EE</editions>
2352
        <setter class="net.sf.saxon.query.StaticQueryContext">setRequiredContextItemType</setter>
2353
        <getter class="net.sf.saxon.query.StaticQueryContext">getRequiredContextItemType</getter>
2354
        <setter class="net.sf.saxon.s9api.XQueryCompiler">setRequiredContextItemType</setter>
2355
        <getter class="net.sf.saxon.s9api.XQueryCompiler">getRequiredContextItemType</getter>
2356
        <configfile>xquery/@requiredContextItemType</configfile>
2357
        <configfiledesc>
2358
            <p>The required type for the context item.</p>
2359
        </configfiledesc>
2360
        <typedesc>An item type, e.g. <code>document-node()</code></typedesc>
2361
        <desc>
2362
            <p>This property defines the default expected context item type for a query.</p>
2363
            <p>This option can be set for a particular XQuery compilation. When the option is set at
2364
                the <code>Configuration</code> level, it acts as a default.</p>
2365
        </desc>
2366
    </feature>
2367
    <feature>
2368
        <featureCode>108</featureCode>
2369
        <name>XQUERY_SCHEMA_AWARE</name>
2370
        <type>boolean</type>
2371
        <uri>http://saxon.sf.net/feature/xquerySchemaAware</uri>
2372
        <editions>EE</editions>
2373
        <setter class="net.sf.saxon.query.StaticQueryContext">setSchemaAware</setter>
2374
        <getter class="net.sf.saxon.query.StaticQueryContext">isSchemaAware</getter>
2375
        <setter class="net.sf.saxon.s9api.XQueryCompiler">setSchemaAware</setter>
2376
        <getter class="net.sf.saxon.s9api.XQueryCompiler">isSchemaAware</getter>
2377
        <configfile>xquery/@schemaAware</configfile>
2378
        <configfiledesc>
2379
            <p>True if the query makes use of schema information.</p>
2380
        </configfiledesc>
2381
        <desc>
2382
            <p>A query will automatically be schema-aware if it contains an <code>import
2383
                    schema</code> declaration. This property allows a query to be marked as
2384
                schema-aware even if it contains no <code>import schema</code> declaration. It is
2385
                necessary for a query to be compiled as schema-aware if it is to handle typed
2386
                (validated) input documents in which nodes have type annotations based on their
2387
                schema-defined type.</p>
2388
            <p>This option can be set for a particular XQuery compilation. When the option is set at
2389
                the <code>Configuration</code> level, it acts as a default.</p>
2390
        </desc>
2391
    </feature>
2392
    <feature>
2393
        <featureCode>109</featureCode>
2394
        <name>XQUERY_STATIC_ERROR_LISTENER_CLASS</name>
2395
        <type>Name of a class implementing the JAXP interface
2396
                <code>javax.xml.transform.ErrorListener</code></type>
2397
        <uri>http://saxon.sf.net/feature/xqueryStaticErrorListenerClass</uri>
2398
        <editions>HE PE EE</editions>
2399
        <setter class="net.sf.saxon.query.StaticQueryContext">setErrorListener</setter>
2400
        <getter class="net.sf.saxon.query.StaticQueryContext">getErrorListener</getter>
2401
        <setter class="net.sf.saxon.s9api.XQueryCompiler">setErrorListener</setter>
2402
        <getter class="net.sf.saxon.s9api.XQueryCompiler">getErrorListener</getter>
2403
        <configfile>xquery/@staticErrorListener</configfile>
2404
        <configfiledesc>
2405
            <p>Receives notification of static errors occurring in a Query.</p>
2406
        </configfiledesc>
2407
        <desc>
2408
            <p>The specified class is instantiated to create an <code>ErrorListener</code>, and all
2409
                reports of static errors in a query will go to this <code>ErrorListener</code>.</p>
2410
            <p>This option can be set for a particular XQuery compilation. When the option is set at
2411
                the <code>Configuration</code> level, it acts as a default.</p>
2412
            <p>In the absence of this property, the global <code>ErrorListener</code> specified as
2413
                the value of the <link>net.sf.saxon.lib.Feature#ERROR_LISTENER_CLASS</link>
2414
                property is used.</p>
2415
        </desc>
2416
    </feature>
2417
    <feature>
2418
        <featureCode>110</featureCode>
2419
        <name>XQUERY_VERSION</name>
2420
        <type>string ("1.0" or "3.0" or "3.1")</type>
2421
        <uri>http://saxon.sf.net/feature/xqueryVersion</uri>
2422
        <editions>HE PE EE</editions>
2423
        <setter class="net.sf.saxon.query.StaticQueryContext">setLanguageVersion</setter>
2424
        <getter class="net.sf.saxon.query.StaticQueryContext">getLanguageVersion</getter>
2425
        <setter class="net.sf.saxon.s9api.XQueryCompiler">setLanguageVersion</setter>
2426
        <getter class="net.sf.saxon.s9api.XQueryCompiler">getLanguageVersion</getter>
2427
        <configfile>xquery/@version</configfile>
2428
        <configfiledesc>
2429
            <p>Indicates whether XQuery 3.0 or 3.1 syntax is accepted. From Saxon 9.8, an XQuery 3.1
2430
                processor is always used by default. So setting this property has no effect.</p>
2431
        </configfiledesc>
2432
        <typedesc>1.0|3.0|3.1</typedesc>
2433
        <desc>
2434
            <p>This property determines the version of XQuery used by the
2435
                <code>Configuration</code>.</p>
2436
            <p>From Saxon 9.8, an XQuery 3.1 processor is always used by default. So setting this
2437
                property has no effect.</p>
2438
            <!--<p>This property determines the version of XQuery used by the
2439
                <code>Configuration</code>. In order to use XQuery 3.0, it is necessary both to set
2440
                the XQuery compiler to process XQuery 3.0, and to specify XQuery 3.0 in the query
2441
                prolog of each module that uses XQuery 3.0 features.</p>
2442
            <p>This option can be set for a particular XQuery compilation. When the option is set at
2443
                the <code>Configuration</code> level, it acts as a default.</p>
2444
            <p>Note that XQuery 3.0 features cannot be used with XQuery Update.</p>
2445
            <p>XQuery 3.0 is supported only in Saxon-EE.</p>-->
2446
        </desc>
2447
    </feature>
2448
    <feature>
2449
        <featureCode>111</featureCode>
2450
        <name>XSD_VERSION</name>
2451
        <type>string ("1.0" or "1.1")</type>
2452
        <uri>http://saxon.sf.net/feature/xsd-version</uri>
2453
        <editions>EE</editions>
2454
        <configfile>xsd/@version</configfile>
2455
        <configfiledesc>
2456
            <p>Indicates whether XSD 1.1 syntax is accepted.</p>
2457
        </configfiledesc>
2458
        <typedesc>1.0|1.1</typedesc>
2459
        <desc>
2460
            <p>This property determines the version of XML Schema used by the
2461
                <code>Configuration</code>.</p>
2462
            <p>From Saxon 9.8, the default is XSD 1.1. If XSD 1.0 is
2463
                selected, XSD 1.1 features will be rejected, with the exception of the version
2464
                control attributes that allow sections of the schema to be marked as requiring XSD
2465
                1.0 or XSD 1.1.</p>
2466
        </desc>
2467
    </feature>
2468
    <feature>
2469
        <featureCode>112</featureCode>
2470
        <name>XSLT_ENABLE_ASSERTIONS</name>
2471
        <type>boolean</type>
2472
        <uri>http://saxon.sf.net/feature/enableAssertions</uri>
2473
        <editions>PE EE</editions>
2474
        <commandline for="T">-ea</commandline>
2475
        <configfile>xslt/@enableAssertions</configfile>
2476
        <configfiledesc>
2477
            <p>Indicates whether assertions (XSLT 3.0 xsl:assert instructions) are enabled.</p>
2478
        </configfiledesc>
2479
        <desc>
2480
            <p>This property indicates whether assertions (XSLT 3.0 xsl:assert instructions) are
2481
                enabled or disabled. They are disabled by default. Setting this property on causes
2482
                assertions to be enabled at compile time for all XSLT packages compiled using the
2483
                default configuration options.</p>
2484
            <p>This option can be set for a particular XSLT compilation. When the option is set at
2485
                the <code>Configuration</code> level (or on a <code>TransformerFactory</code>), it
2486
                acts as a default.</p>
2487
            <p>If assertions have been enabled at compile time for a particular package, they can
2488
                still be disabled at run-time (for all packages) by setting an option on the
2489
                    <code>Xslt30Transformer</code>. But if assertions were disabled at compile time,
2490
                enabling them at run-time has no effect.</p>
2491
        </desc>
2492
    </feature>
2493
    <feature>
2494
        <featureCode>113</featureCode>
2495
        <name>XSLT_INITIAL_MODE</name>
2496
        <type>string (a QName in Clark notation)</type>
2497
        <uri>http://saxon.sf.net/feature/initialMode</uri>
2498
        <editions>HE PE EE</editions>
2499
        <setter class="net.sf.saxon.s9api.XsltTransformer">setInitialMode</setter>
2500
        <getter class="net.sf.saxon.s9api.XsltTransformer">getInitialMode</getter>
2501
        <commandline for="T">-im:mode-name</commandline>
2502
        <configfile>xslt/@initialMode</configfile>
2503
        <configfiledesc>
2504
            <p>The name of a mode within a stylesheet in which execution should begin.</p>
2505
        </configfiledesc>
2506
        <typedesc>A mode name (QName in Clark notation <code>{uri}local</code>)</typedesc>
2507
        <desc>
2508
            <p>This property indicates the name of a mode within a stylesheet in which execution
2509
                (using template rules) should begin.</p>
2510
            <p>This option can be set for a particular XSLT transformation. When the option is set
2511
                at the <code>Configuration</code> (or on a <code>TransformerFactory</code>), it acts
2512
                as a default.</p>
2513
        </desc>
2514
    </feature>
2515
    <feature>
2516
        <featureCode>114</featureCode>
2517
        <name>XSLT_INITIAL_TEMPLATE</name>
2518
        <type>string (a QName in Clark notation)</type>
2519
        <uri>http://saxon.sf.net/feature/initialTemplate</uri>
2520
        <editions>HE PE EE</editions>
2521
        <setter class="net.sf.saxon.s9api.XsltTransformer">setInitialTemplate</setter>
2522
        <getter class="net.sf.saxon.s9api.XsltTransformer">getInitialTemplate</getter>
2523
        <commandline for="T">-it:template-name</commandline>
2524
        <configfile>xslt/@initialTemplate</configfile>
2525
        <configfiledesc>
2526
            <p>The name of a named template within a stylesheet where execution should begin.</p>
2527
        </configfiledesc>
2528
        <typedesc>A template name (QName in Clark notation <code>{uri}local</code>)</typedesc>
2529
        <desc>
2530
            <p>This property indicates the name of a named template within a stylesheet where
2531
                execution should begin.</p>
2532
            <p>This option can be set for a particular XSLT transformation. When the option is set
2533
                at the <code>Configuration</code> level (or on a <code>TransformerFactory</code>),
2534
                it acts as a default.</p>
2535
        </desc>
2536
    </feature>
2537
    <feature>
2538
        <featureCode>115</featureCode>
2539
        <name>XSLT_SCHEMA_AWARE</name>
2540
        <type>boolean</type>
2541
        <uri>http://saxon.sf.net/feature/xsltSchemaAware</uri>
2542
        <editions>EE</editions>
2543
        <setter class="net.sf.saxon.s9api.XsltCompiler">setSchemaAware</setter>
2544
        <getter class="net.sf.saxon.s9api.XsltCompiler">isSchemaAware</getter>
2545
        <configfile>xslt/@schemaAware</configfile>
2546
        <configfiledesc>
2547
            <p>Indicates whether stylesheet should be compiled to be able to handle schema-typed
2548
                input, even if they contain no <a class="bodylink code"
2549
                    href="/xsl-elements/import-schema">xsl:import-schema</a> declaration.</p>
2550
        </configfiledesc>
2551
        <desc>
2552
            <p>This property indicates whether stylesheets should be compiled with the ability to
2553
                handle schema-typed input documents. By default a stylesheet is compiled to handle
2554
                such input if it contains an <code>xsl:import-schema</code> instruction, and not
2555
                otherwise. It is necessary for a stylesheet to be compiled as schema-aware if it is
2556
                to handle typed (validated) input documents in which nodes have type annotations
2557
                based on their schema-defined type.</p>
2558
            <p>This option can be set for a particular XSLT compilation. When the option is set at
2559
                the <code>Configuration</code> level (or on a <code>TransformerFactory</code>), it
2560
                acts as a default.</p>
2561
        </desc>
2562
    </feature>
2563
    <feature>
2564
        <featureCode>116</featureCode>
2565
        <name>XSLT_STATIC_ERROR_LISTENER_CLASS</name>
2566
        <type>Name of a class implementing <code>javax.xml.transform.ErrorListener</code></type>
2567
        <uri>http://saxon.sf.net/feature/stylesheetErrorListener</uri>
2568
        <editions>HE PE EE</editions>
2569
        <setter class="net.sf.saxon.s9api.XsltCompiler">setErrorListener</setter>
2570
        <getter class="net.sf.saxon.s9api.XsltCompiler">getErrorListener</getter>
2571
        <configfile>xslt/@staticErrorListener</configfile>
2572
        <configfiledesc>
2573
            <p>Receives reports of compile-time errors in a stylesheet.</p>
2574
        </configfiledesc>
2575
        <typedesc>Name of a class implementing the JAXP
2576
                <code>javax.xml.transform.ErrorListener</code> interface</typedesc>
2577
        <desc>
2578
            <p>The specified class is instantiated to create an <code>ErrorListener</code>, and all
2579
                reports of static errors in a stylesheet will go to this
2580
                <code>ErrorListener</code>.</p>
2581
            <p>This option can be set for a particular XSLT compilation. When the option is set at
2582
                the <code>Configuration</code> level (or on a <code>TransformerFactory</code>), it
2583
                acts as a default.</p>
2584
            <p>In the absence of this property, the global <code>ErrorListener</code> specified as
2585
                the value of the <link>net.sf.saxon.lib.Feature#ERROR_LISTENER_CLASS</link>
2586
                property is used.</p>
2587
        </desc>
2588
    </feature>
2589
    <feature>
2590
        <featureCode>117</featureCode>
2591
        <name>XSLT_STATIC_URI_RESOLVER_CLASS</name>
2592
        <type>Name of a class implementing <code>javax.xml.transform.URIResolver</code></type>
2593
        <uri>http://saxon.sf.net/feature/stylesheetURIResolver</uri>
2594
        <editions>HE PE EE</editions>
2595
        <setter class="net.sf.saxon.s9api.XsltCompiler">setURIResolver</setter>
2596
        <getter class="net.sf.saxon.s9api.XsltCompiler">getURIResolver</getter>
2597
        <commandline for="T">-r:classname</commandline>
2598
        <configfile>xslt/@staticUriResolver</configfile>
2599
        <configfiledesc>
2600
            <p>User-defined class for dereferencing URIs on <a class="bodylink code"
2601
                    href="/xsl-elements/include">xsl:include</a> or <a class="bodylink code"
2602
                    href="/xsl-elements/import">xsl:import</a>. </p>
2603
        </configfiledesc>
2604
        <typedesc>Name of a class implementing the JAXP <code>javax.xml.transform.URIResolver</code>
2605
            interface</typedesc>
2606
        <desc>
2607
            <p>This property defines a <code>URIResolver</code> used when dereferencing the URIs
2608
                that appear in the <code>href</code> attributes of the <code>xsl:include</code> and
2609
                    <code>xsl:import</code> declarations. Note that this defaults to the setting of
2610
                the global <code>URI_RESOLVER</code> property.</p>
2611
            <p>This option can be set for a particular XSLT compilation. When the option is set at
2612
                the <code>Configuration</code> level (or on a <code>TransformerFactory</code>), it
2613
                acts as a default.</p>
2614
            <p>In the absence of this property, the global <code>URIResolver</code> specified as the
2615
                value of the <link>net.sf.saxon.lib.Feature#URI_RESOLVER_CLASS</link> property
2616
                is used.</p>
2617
        </desc>
2618
    </feature>
2619
    <feature>
2620
        <featureCode>118</featureCode>
2621
        <name>XSLT_VERSION</name>
2622
        <type>string ("2.0" or "3.0")</type>
2623
        <uri>http://saxon.sf.net/feature/xsltVersion</uri>
2624
        <editions>HE PE EE</editions>
2625
        <setter class="net.sf.saxon.s9api.XsltCompiler">setXsltLanguageVersion</setter>
2626
        <getter class="net.sf.saxon.s9api.XsltCompiler">getXsltLanguageVersion</getter>
2627
        <!--<commandline for="T">-xsltversion:(2.0|3.0)</commandline>-->
2628
        <configfile>xslt/@version</configfile>
2629
        <configfiledesc>
2630
            <p>XSLT language version to be supported by the processor. From Saxon 9.8, an XSLT 3.0
2631
                processor is always used by default. So setting this property has no effect.</p>
2632
            <!--<p>XSLT language version to be supported by the processor. The value 0.0 indicates that
2633
                the version is taken from the <code>xsl:stylesheet</code> element.</p>-->
2634
        </configfiledesc>
2635
        <typedesc>0.0, 2.0, or 3.0</typedesc>
2636
        <desc>
2637
            <p>This property determines the version of XSLT to be supported by default.</p>
2638
            <p>From Saxon 9.8, an XSLT 3.0 processor is always used by default. So setting this
2639
                property has no effect.</p>
2640
            <!--<p>XSLT 3.0 is supported only in Saxon-EE. If no value is specified for the property, an
2641
                XSLT 2.0 or XSLT 3.0 processor is used depending on the value of the
2642
                    <code>version</code> attribute of the <code>xsl:stylesheet</code> element.</p>-->
2643
        </desc>
2644
    </feature>
2645
    <feature>
2646
        <featureCode>119</featureCode>
2647
        <name>REGEX_BACKTRACKING_LIMIT</name>
2648
        <type>integer</type>
2649
        <uri>http://saxon.sf.net/feature/regexBacktrackingLimit</uri>
2650
        <editions>HE PE EE</editions>
2651
        <configfile>global/@regexBacktrackingLimit</configfile>
2652
        <configfiledesc>
2653
            <p>Sets a limit on the amount of backtracking performed during regular expression evaluation.</p>
2654
        </configfiledesc>
2655
        <desc>
2656
            <p>This property sets a limit on the amount of backtracking performed during regular expression evaluation.</p>
2657
            <p>The default is 10000000 (ten million) which typically represents an evaluation time of about ten seconds.
2658
            After this time, evaluation of the regular expression will fail rather than making further attempts to find a
2659
            match. If this limit is reached, it often suggests that there might be a better way of writing the regular expression.
2660
            The value can be set to -1 (minus one) to mean "unlimited".</p>
2661
            <p>Excessive backtracking is usually caused by nested loops in the regular expression, combined with processing
2662
            of long input strings. Try to ensure that when nested loops are used, there is an unambiguous condition that causes
2663
            the inner loop to terminate. For example <code>(/[^/]*)+</code> is fine (it matches a sequence of path segments separated
2664
                by <code>/</code> characters), because the presence of <code>/</code> forces the inner loop to terminate. By contrast,
2665
                <code>(/.*)+</code> matches the same input, but in many different ways, which could lead to excessive backtracking
2666
            to no useful purpose.</p>
2667
        </desc>
2668
    </feature>
2669
    <feature>
2670
        <featureCode>120</featureCode>
2671
        <name>XPATH_VERSION_FOR_XSD</name>
2672
        <type>integer</type>
2673
        <uri>http://saxon.sf.net/feature/xpathVersionForXsd</uri>
2674
        <editions>EE</editions>
2675
        <configfile>global/@xpathVersionForXsd</configfile>
2676
        <configfiledesc>
2677
            <p>Defines what version of the XPath language may be used in XML Schema 1.1 assertions and type alternatives.</p>
2678
        </configfiledesc>
2679
        <desc>
2680
            <p>The XSD 1.1 specification states that XPath version 2.0 is used for expressions appearing in assertions and type
2681
                alternatives. This option allows XPath 3.0 or 3.1 to be used instead.</p>
2682
            <p>The recognized values are the integers 20, 30, and 31 representing versions 2.0, 3.0, and 3.1 respectively.</p>           
2683
        </desc>
2684
    </feature>
2685
    <feature>
2686
        <featureCode>121</featureCode>
2687
        <name>XPATH_VERSION_FOR_XSLT</name>
2688
        <type>integer</type>
2689
        <uri>http://saxon.sf.net/feature/xpathVersionForXslt</uri>
2690
        <editions>HE PE EE</editions>
2691
        <configfile>global/@xpathVersionForXslt</configfile>
2692
        <configfiledesc>
2693
            <p>Defines what version of the XPath language may be used in XSLT 3.0 stylesheets.</p>
2694
        </configfiledesc>
2695
        <desc>
2696
            <p>The XSLT 3.0 specification states that processors are required to support XPath 3.0 expressions within stylesheets, together
2697
                with some extensions (maps) selected from the XPath 3.1 specification. Support for the full syntax of XPath 3.1 is
2698
                optional, but it is the default in Saxon. This option allows a different XPath language level to be selected.</p>
2699
            <p>The integer values 20, 30, and 31 denote XPath 2.0, 3.0, and 3.1 respectively, while the value 305 denotes XPath 3.0
2700
                with the extensions defined in the XSLT 3.0 specification.</p>
2701
        </desc>
2702
    </feature>
2703
    <feature>
2704
        <featureCode>122</featureCode>
2705
        <name>THRESHOLD_FOR_FUNCTION_INLINING</name>
2706
        <type>integer</type>
2707
        <uri>http://saxon.sf.net/feature/thresholdForFunctionInlining</uri>
2708
        <editions>EE</editions>
2709
        <configfile>global/@thresholdForFunctionInlining</configfile>
2710
        <configfiledesc>
2711
            <p>Defines a limit on the size of user-defined functions that will be inlined.</p>
2712
        </configfiledesc>
2713
        <desc>
2714
            <p>Saxon-EE performs inlining of user-defined functions that are sufficiently simple: they must not be recursive,
2715
                and they must be below a certain size. This option defines the size.</p>
2716
            <p>The value is (roughly) the number of nodes in the expression tree representing the function body. This
2717
                includes both explicit subexpressions, and subexpressions added by Saxon itself to perform implicit
2718
                operations such as type checking or conversion of function arguments. The default value is 100.</p>
2719
        </desc>
2720
    </feature>
2721
    <feature>
2722
        <featureCode>123</featureCode>
2723
        <name>THRESHOLD_FOR_HOTSPOT_BYTE_CODE</name>
2724
        <type>integer</type>
2725
        <uri>http://saxon.sf.net/feature/thresholdForHotspotByteCode</uri>
2726
        <editions>EE</editions>
2727
        <configfile>global/@thresholdForHotspotByteCode</configfile>
2728
        <configfiledesc>
2729
            <p>Defines how many times a code fragment must be executed before bytecode generation kicks in.</p>
2730
        </configfiledesc>
2731
        <desc>
2732
            <p>Saxon-EE generates bytecode to give faster execution of frequently-evaluated subexpressions.
2733
                Bytecode is generated when a candidate expression has been evaluated a certain number of
2734
                times, controlled by this parameter.
2735
            </p>
2736
            <p>Setting this parameter to 0 (or any negative value) has the effect of disabling bytecode
2737
                generation completely. Setting the parameter to a positive value has the effect of enabling
2738
                bytecode generation if it is not already enabled. Setting the value to 1 (one) causes bytecode
2739
                to be generated for candidate expressions the first time it is executed.</p>
2740
        </desc>
2741
    </feature>
2742
    
2743
    <feature>
2744
        <featureCode>124</featureCode>
2745
        <name>ALLOWED_PROTOCOLS</name>
2746
        <type>String</type>
2747
        <uri>http://saxon.sf.net/feature/allowedProtocols</uri>
2748
        <editions>EE</editions>
2749
        <configfile>global/@allowedProtocols</configfile>
2750
        <configfiledesc>
2751
            <p>Defines the protocols (for example "file" and "http") that may be used in URIs resolved
2752
                by Saxon.</p>
2753
        </configfiledesc>
2754
        <desc>
2755
            <p>The value is a comma-separated list of permitted protocols. A protocol is the 
2756
                scheme portion of a URI, or in the case of the JAR protocol, "jar" 
2757
                plus the scheme portion separated by colon. The value "all" gives access
2758
                to all protocols (which is the default). The value "" (empty string) disallows
2759
                all external resource access. (The format is thus the same as for 
2760
                <code>XMLConstants.ACCESS_EXTERNAL_SCHEMA</code> and similar attributes.)
2761
            </p>
2762
            <p>The value constrains access by Saxon (but not by underlying software, such
2763
                as the XML parser) to resources including the following:</p>
2764
            
2765
            <ul>
2766
                <li>Stylesheet modules</li>
2767
                <li>Schema documents</li>
2768
                <li>Query modules</li>
2769
                <li>Documents referenced from a stylesheet or query using functions such
2770
                    as <code>fn:doc</code>, <code>fn:document</code>, <code>fn:unparsed-text</code>,
2771
                    <code>fn:collection</code>, <code>fn:json-doc</code>, <code>fn:transform</code>, or by the
2772
                    <code>xsl:source-document</code> instruction.</li>
2773
                <li>Resources obtained using Saxon-supplied extension functions such as
2774
                    those in the EXPath file library (but it does not affect user-supplied
2775
                    extension functions).</li>
2776
            </ul>
2777
            <p>The constraint applies to the URI used to request
2778
                the resource; the constraint is applied by the standard URI resolvers, but if 
2779
                user-supplied resolvers are used (such as a <code>URIResolver</code>), they can decide
2780
                whether to apply the restrictions or not.</p>
2781
            <p>The constraint applies to URIs used as locations or location hints, not to URIs used as names. So
2782
            for XSD it applies to a schemaLocation, not a targetNamespace; for XQuery it applies to module
2783
            location hints, not to module URIs. In the case of XSLT packages, resolution from a package name
2784
            to a location is always under user/application control, so Saxon imposes no restrictions.</p>
2785
            <p>The format is the same as for <code>XMLConstants.ACCESS_EXTERNAL_SCHEMA</code>: either <code>"all"</code> to allow
2786
                all schemes/protocols, or a comma-separated list of scheme names such as <code>"http"</code>, <code>"file"</code>, <code>"ftp"</code>.
2787
                For a JAR file scheme, use the format <code>"jar:<i>scheme</i>"</code>, for example <code>"jar:file"</code>. A zero-length
2788
                string disallows all schemes.</p>
2789
        </desc>
2790

    
2791
    </feature>
2792
    
2793
    <feature>
2794
        <featureCode>125</featureCode>
2795
        <name>RETAIN_NODE_FOR_DIAGNOSTICS</name>
2796
        <type>boolean</type>
2797
        <uri>http://saxon.sf.net/feature/retainNodeForDiagnostics</uri>
2798
        <editions>EE</editions>
2799
        <configfile>global/@retainNodeForDiagnostics</configfile>
2800
        <configfiledesc>
2801
            <p>Indicates that the location information held in the run-time expression tree should retain links to nodes in the
2802
            original stylesheet tree.</p>
2803
        </configfiledesc>
2804
        <desc>
2805
            <p>By default, Saxon attempts to ensure that the run-time code contains no links to the original source stylesheet tree.
2806
                This allows the garbage collector to free memory.
2807
            </p>
2808
            <p>If this option is set, then <code>Location</code> objects held in the run-time expression tree may contain a link
2809
                to an element node in the source stylesheet, enabling a user-written <code>ErrorListener</code> to produce
2810
                improved diagnostics. This may be an appropriate setting to use, for example, in an IDE.</p>
2811
            <p>Links to source nodes are not retained in an exported SEF file, regardless of this setting.</p>
2812
        </desc>
2813
    </feature>
2814
  
2815
  <feature>
2816
    <featureCode>126</featureCode>
2817
    <name>ALLOW_UNRESOLVED_SCHEMA_COMPONENTS</name>
2818
    <type>boolean</type>
2819
    <uri>http://saxon.sf.net/feature/allowUnresolvedSchemaComponents</uri>
2820
    <editions>EE</editions>
2821
    <configfile>xsd/@allowUnresolvedSchemaComponents</configfile>
2822
    <configfiledesc>
2823
      <p>Indicates that the presence of an unresolved component reference in a schema
2824
        document does not automatically make the schema document invalid.</p>
2825
    </configfiledesc>
2826
    <desc>
2827
      <p>The W3C XSD specification (both 1.0 and 1.1) states that an unresolved
2828
        reference to an absent schema component does not automatically make the schema
2829
        invalid; the schema should be usable for validation provided that the missing
2830
        components are not actually needed in a particular validation episode.
2831
      </p>
2832
      <p>However, the W3C XSD conformance tests treat such an unresolved reference
2833
      as an error; the test is expected to report the schema as invalid. And this
2834
      is the way most schema processors actually operate, and probably what most
2835
      users would expect.</p>
2836
      <p>By default, the Saxon schema processor reports an unresolved reference
2837
      as an error in the schema.</p>
2838
      <p>If this option is set, then Saxon attempts to repair the schema so that
2839
      it is usable for validation, by substituting the missing components with default
2840
      components: for example if an attribute declaration refers to a type that has
2841
      not been defined, then <code>xs:error</code> is substituted, making any instance
2842
      of the attribute invalid.</p>
2843
      </desc>
2844
  </feature>
2845
    
2846
    <feature>
2847
        <featureCode>127</featureCode>
2848
        <name>ZIP_URI_PATTERN</name>
2849
        <type>string</type>
2850
        <uri>http://saxon.sf.net/feature/zipUriPattern</uri>
2851
        <editions>EE</editions>
2852
        <configfile>xsd/@zipUriPattern</configfile>
2853
        <configfiledesc>
2854
            <p>A regular expression used to decide whether a collection URI is to
2855
                be treated as representing a ZIP file. The default pattern is
2856
                "^jar:|\.jar$|\.zip$" which matches a URI that starts with "jar:"
2857
                or that ends with ".jar" or ".zip".</p>
2858
        </configfiledesc>
2859
        <desc>
2860
            <p>This is used by the standard Collection Finder and may not be relevant
2861
                if a custom Collection Finder is in use.
2862
            </p>
2863
            <p>If the absolutized URI passed to the collection() function matches
2864
            this pattern, then the URI will be treated as a reference to a ZIP file
2865
            (and will therefore fail if the URI does not resolve to a resource that can
2866
            be opened as a ZIP file).</p>
2867
            
2868
        </desc>
2869
    </feature>
2870
    
2871
 
2872

    
2873
</features>
(2-2/8)