net.sf.saxon.java
public class JavaPlatform extends java.lang.Object implements Platform
Modifier and Type | Method and Description |
---|---|
void |
addFunctionLibraries(FunctionLibraryList list,
Configuration config,
int hostLanguage)
Add the platform-specific function libraries to a function library list.
|
boolean |
canReturnCollationKeys(StringCollator collation)
Given a collation, determine whether it is capable of returning collation keys.
|
RegularExpression |
compileRegularExpression(java.lang.CharSequence regex,
int xmlVersion,
int syntax,
java.lang.CharSequence flags)
Create a compiled regular expression
|
void |
declareJavaClass(FunctionLibrary library,
java.lang.String uri,
java.lang.Class theClass)
Register a namespace-to-Java-class mapping declared using saxon:script in an XSLT stylesheet
|
java.lang.Object |
getCollationKey(NamedCollation namedCollation,
java.lang.String value)
Given a collation, get a collation key.
|
SchemaType |
getExternalObjectType(Configuration config,
java.lang.String uri,
java.lang.String localName)
Get a SchemaType representing a wrapped external (Java or .NET) object
|
static JavaPlatform |
getInstance()
Get the singleton instance of this class
|
javax.xml.transform.Source |
getParserSource(PipelineConfiguration pipe,
javax.xml.transform.stream.StreamSource input,
int validation,
boolean dtdValidation,
int stripspace)
Convert a StreamSource to either a SAXSource or a PullSource, depending on the native
parser of the selected platform
|
java.lang.String |
getPlatformSuffix()
Get a suffix letter to add to the Saxon version number to identify the platform
|
java.lang.String |
getPlatformVersion()
Get the platform version
|
void |
initialize(Configuration config)
Perform platform-specific initialization of the configuration
|
boolean |
isDotNet()
Return true if this is the .NET platform
|
boolean |
isJava()
Return true if this is the Java platform
|
java.net.URI |
makeAbsolute(java.lang.String relativeURI,
java.lang.String base)
Construct an absolute URI from a relative URI and a base URI.
|
StringCollator |
makeCollation(Configuration config,
java.util.Properties props,
java.lang.String uri)
Obtain a collation with a given set of properties.
|
void |
makeExtensionLibrary(Configuration config)
Make the default extension function factory appropriate to the platform
|
public static JavaPlatform getInstance()
public void initialize(Configuration config)
initialize
in interface Platform
config
- the Saxon Configurationpublic boolean isJava()
public boolean isDotNet()
public java.net.URI makeAbsolute(java.lang.String relativeURI, java.lang.String base) throws java.net.URISyntaxException
new URL(baseURL, relativeURL)
.
Spaces in either URI are converted to %20
If no base URI is available, and the relative URI is not an absolute URI, then the current directory is used as a base URI.
makeAbsolute
in interface Platform
relativeURI
- the relative URI. Null is permitted provided that the base URI is an absolute URIbase
- the base URIjava.net.URISyntaxException
- if either of the strings is not a valid URI or
if the resolution failspublic java.lang.String getPlatformVersion()
getPlatformVersion
in interface Platform
public java.lang.String getPlatformSuffix()
getPlatformSuffix
in interface Platform
public javax.xml.transform.Source getParserSource(PipelineConfiguration pipe, javax.xml.transform.stream.StreamSource input, int validation, boolean dtdValidation, int stripspace)
getParserSource
in interface Platform
pipe
- the pipeline configurationinput
- the supplied StreamSourcevalidation
- indicates whether schema validation is requireddtdValidation
- indicates whether DTD validation is requiredstripspace
- indicates whether whitespace text nodes should be strippedpublic RegularExpression compileRegularExpression(java.lang.CharSequence regex, int xmlVersion, int syntax, java.lang.CharSequence flags) throws XPathException
compileRegularExpression
in interface Platform
regex
- the source text of the regular expression, in XML Schema or XPath syntaxxmlVersion
- set to integer 10 for XML 1.0, 11 for XML 1.1syntax
- requests XPath or XML Schema regex syntaxflags
- the flags argument as supplied to functions such as fn:matches(), in string form @throws XPathException if the syntax of the regular expression or flags is incorrect @return the compiled regular expressionXPathException
public StringCollator makeCollation(Configuration config, java.util.Properties props, java.lang.String uri) throws XPathException
makeCollation
in interface Platform
config
- the configuration objectprops
- the desired properties of the collationuri
- the collation URIXPathException
- if a fatal error occurspublic boolean canReturnCollationKeys(StringCollator collation)
canReturnCollationKeys
in interface Platform
collation
- the collation, provided as a Comparatorpublic java.lang.Object getCollationKey(NamedCollation namedCollation, java.lang.String value)
getCollationKey
in interface Platform
namedCollation
- the collation in usevalue
- the string whose collation key is requiredjava.lang.ClassCastException
- if the collation is not one that is capable of supplying
collation keys (this should have been checked in advance)public void makeExtensionLibrary(Configuration config)
makeExtensionLibrary
in interface Platform
config
- the Saxon Configurationpublic void addFunctionLibraries(FunctionLibraryList list, Configuration config, int hostLanguage)
Configuration.setExtensionBinder(String, net.sf.saxon.functions.FunctionLibrary)
addFunctionLibraries
in interface Platform
list
- the function library list that is to be extendedconfig
- the ConfigurationhostLanguage
- the host language, for example Configuration.XQUERYpublic void declareJavaClass(FunctionLibrary library, java.lang.String uri, java.lang.Class theClass)
declareJavaClass
in interface Platform
library
- the library to contain the function, which must be a JavaExtensionLibraryuri
- the namespace of the function nametheClass
- the Java class that implements this namespacepublic SchemaType getExternalObjectType(Configuration config, java.lang.String uri, java.lang.String localName)
Platform
getExternalObjectType
in interface Platform
config
- the Saxon Configurationuri
- the namespace URI of the schema typelocalName
- the local name of the schema type