S9API interface

A new method Processor.writeXdmValue(XdmValue, Destination) has been added, allowing any XDM value (for example, a document node) to be written to any Destination (for example, a Serializer, a Validator, or a Transformer). For usage examples, see the S9APIExamples demonstration program.

A new constructor has been added to XdmValue allowing an XdmValue to be constructed from a sequence of items.

A new interface MessageListener is available. A user-written implementation of MessageListener may be registered with the XsltTransformer to receive notification of xsl:message output. The class has a single method message(), which is called once for each message; the parameters include the message content (as an XML document), a boolean indicating whether terminate="yes" was requested, and a SourceLocator to distinguish which xsl:message instruction generated the output.

New methods have been added to ItemTypeFactory to allow creation of ItemTypes and XdmAtomicValues representing external Java objects, which can be passed to a stylesheet or query for use in conjunction with external functions (extension functions). An example of how to achieve this has been added to the sample application S9APIExamples.java (test QueryF).

New methods are provided on the XQueryCompiler allowing the query to be supplied as a File, as a Reader, or as an InputStream. Methods are also provided to specify the encoding of the query source text.

New methods are available on classes XQueryEvaluator and XsltTransformer to allow the output from the trace() function to be directed to a specified output stream, or to be discarded.

A new method is available on the XPathCompiler class to import a schema namespace for reference within the body of the expression.

New methods are available on XQueryExecutable and XPathExecutable to obtain the result type of the query or expression, as determined by static analysis.

New methods are available on ItemType and OccurrenceIndicator to determine whether one type subsumes another.

These methods make it easier to write application code that can handle query results when the type of the result is not known a priori.

A new method is available on XPathCompiler allowing XSLT patterns to be compiled. A pattern is treated as an expression that returns true if the pattern matches the context node, false otherwise.

A new method is available on XPathSelector to return the effective boolean value of the XPath expression.