Package net.sf.saxon.dom
Class DOMObjectModel
java.lang.Object
net.sf.saxon.dom.DOMObjectModel
- All Implemented Interfaces:
Serializable
,ExternalObjectModel
This interface must be implemented by any third-party object model that can
be wrapped with a wrapper that implements the Saxon Object Model (the NodeInfo interface).
This implementation of the interface supports wrapping of DOM Documents.
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetDocumentBuilder
(Result result) Test whether this object model recognizes a particular kind of JAXP Result object, and if it does, return a Receiver that builds an instance of this data model from a sequence of events.Get the URI of the external object model as used in the JAXP factory interfaces for obtaining an XPath implementationstatic DOMObjectModel
Get a reusable instance instance of this class.getJPConverter
(Class targetClass) Get a converter from XPath values to values in the external object modelgetNodeListCreator
(Object node) Get a converter that converts a sequence of XPath nodes to this model's representation of a node list.getPJConverter
(Class targetClass) Get a converter from XPath values to values in the external object modelstatic void
Test showing a DOM NodeList returned by an extension functionboolean
sendSource
(Source source, Receiver receiver, PipelineConfiguration pipe) Test whether this object model recognizes a particular kind of JAXP Source object, and if it does, send the contents of the document to a supplied Receiver, and return true.static NodeList
sortArrayToNodeList
(Value source) Sample extension functionunravel
(Source source, Configuration config) Wrap or unwrap a node using this object model to return the corresponding Saxon node.
-
Constructor Details
-
DOMObjectModel
public DOMObjectModel()Create an instance of the DOMObjectModel class.When possible, use the getInstance() method in preference, as the instance is then reusable.
-
-
Method Details
-
getInstance
Get a reusable instance instance of this class.Note, this is not actually a singleton instance; the class also has a public constructor, which is needed to support the automatic loading of object models into the Configuration.
- Returns:
- the singleton instance
-
getIdentifyingURI
Get the URI of the external object model as used in the JAXP factory interfaces for obtaining an XPath implementation- Specified by:
getIdentifyingURI
in interfaceExternalObjectModel
-
getPJConverter
Get a converter from XPath values to values in the external object model- Specified by:
getPJConverter
in interfaceExternalObjectModel
- Parameters:
targetClass
- the required class of the result of the conversion. If this class represents a node or list of nodes in the external object model, the method should return a converter that takes a native node or sequence of nodes as input and returns a node or sequence of nodes in the external object model representation. Otherwise, it should return null.- Returns:
- a converter, if the targetClass is recognized as belonging to this object model; otherwise null
-
getJPConverter
Description copied from interface:ExternalObjectModel
Get a converter from XPath values to values in the external object model- Specified by:
getJPConverter
in interfaceExternalObjectModel
- Parameters:
targetClass
- the required class of the result of the conversion. If this class represents a node or list of nodes in the external object model, the method should return a converter that takes an object of this class as input and returns a node or sequence of nodes in the native Saxon representation. Otherwise, it should return null.- Returns:
- a converter, if the targetClass is recognized as belonging to this object model; otherwise null
-
getNodeListCreator
Get a converter that converts a sequence of XPath nodes to this model's representation of a node list.- Specified by:
getNodeListCreator
in interfaceExternalObjectModel
- Parameters:
node
- an example of the kind of node used in this model- Returns:
- if the model does not recognize this node as one of its own, return null. Otherwise return a PJConverter that takes a list of XPath nodes (represented as NodeInfo objects) and returns a collection of nodes in this object model
-
getDocumentBuilder
Test whether this object model recognizes a particular kind of JAXP Result object, and if it does, return a Receiver that builds an instance of this data model from a sequence of events. If the Result is not recognised, return null.- Specified by:
getDocumentBuilder
in interfaceExternalObjectModel
- Parameters:
result
- a JAXP result object- Returns:
- a Receiver that writes to that result, if available; or null otherwise
- Throws:
XPathException
-
sendSource
public boolean sendSource(Source source, Receiver receiver, PipelineConfiguration pipe) throws XPathException Test whether this object model recognizes a particular kind of JAXP Source object, and if it does, send the contents of the document to a supplied Receiver, and return true. Otherwise, return false- Specified by:
sendSource
in interfaceExternalObjectModel
- Parameters:
source
- a JAXP Source objectreceiver
- the Receiver that is to receive the data from the Sourcepipe
- configuration information- Returns:
- true if the data from the Source has been sent to the Receiver, false otherwise
- Throws:
XPathException
-
unravel
Wrap or unwrap a node using this object model to return the corresponding Saxon node. If the supplied source does not belong to this object model, return null- Specified by:
unravel
in interfaceExternalObjectModel
- Parameters:
source
- a JAXP Source objectconfig
- the Saxon configuration- Returns:
- a NodeInfo corresponding to the Source, if this can be constructed; otherwise null
-
main
Test showing a DOM NodeList returned by an extension function- Throws:
Exception
-
sortArrayToNodeList
Sample extension function- Parameters:
source
-- Returns:
- Throws:
Exception
-