Java constructors are called by using the function named new()
.
If there are several constructors, then again
the system tries to find the one that is the best fit, according to the types of the supplied arguments. The result
of calling new()
is an XPath value whose type is denoted by a QName whose local name
is the actual Java class (for example java.sql.Connection
or java.util.List
)
and whose namespace
URI is http://saxon.sf.net/java-type
(conventional prefix class
). Any '$'
characters in the class name are replaced by '-' characters in the QName.
The only things that can be done with a wrapped Java Object
are to assign it to a variable, to pass it to an extension function, and to convert it to a string, number,
or boolean, using the rules given below.
The use of external object types in namespace http://saxon.sf.net/java-type
reflects the
Java type hierarchy. For example, if a variable is declared to accept a type of jt:java.util.List
, then
a value of type jt:java.util.ArrayList
will be accepted, but a value of type jt:java.util.HashMap
will not.