Changes specific to .NET
The classes Step and Predicate are now available on .NET. As on Java these
classes can be used to navigate XML documents from the Saxon API. The extensions
are designed to make it easier to manipulate the inputs and outputs of the XPath, XSLT,
XQuery, and XSD processors directly in the Java or .NET code. (These were introduced for
the Java s9api interface in Saxon 9.9, and more information can be found in the 9.9
change log in the "S9API interface" category.) In the .NET API, Step
and
Predicate
are wrapper classes for Func
s, which map an
XdmItem
to an IEnumerable
of XdmItem
objects,
or to a boolean value respectively. The Steps
and Predicates classes provide
a library of useful predefined Step
and Predicate
functions.
For use with the above classes, the XdmValue class
has a number of new methods. The Select
method makes use of the
Step
class to apply a function to the items of the XDM value, to produce an
IEnumerable
of XDM items. The Concat
method provides a way
to concatenate two IEnumerable
objects of XdmItem
s.
The methods Where
, AnyMatch
and AllMatch
provide
a way to filter the items of the XdmValue
by some predicate.
In addition, the XdmNode class now has a
Select
method which applies a step navigation to the node object. The class also
has new Children
methods: the first has a single Predicate
argument to filter the child nodes, while the other versions can be used to select the
child nodes with a specified name.
The XdmItem class has a new IsNode
method to provide an simple way to determine if the item is a node or some other type.
The Processor class now has the
BindExtensions
method which provides a simple way to load reflexive
extension functions written in C# or VB.NET, as an alternative dynamic loading. The
method passes Saxon a reference to the containing type.
The enum type HostLanguage is added which provides a better way to identify the origins of an error.
For the XPath, XQuery, and XSLT compilers it is now possible to set the error list as an
IList
of XmlProcessingError objects. This new
error class provides more informative details about the error detected.
The XsltCompiler class now has a
ClearParameter
method to clear the values of all stylesheet parameters
previously set.