Package net.sf.saxon.dom
Class DOMObjectModel
- java.lang.Object
-
- net.sf.saxon.dom.DOMObjectModel
-
- All Implemented Interfaces:
java.io.Serializable
,ExternalObjectModel
public class DOMObjectModel extends java.lang.Object implements ExternalObjectModel, java.io.Serializable
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:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description DOMObjectModel()
Create an instance of the DOMObjectModel class.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Receiver
getDocumentBuilder(javax.xml.transform.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.java.lang.String
getIdentifyingURI()
Get the URI of the external object model as used in the JAXP factory interfaces for obtaining an XPath implementationstatic DOMObjectModel
getInstance()
Get a reusable instance instance of this class.JPConverter
getJPConverter(java.lang.Class targetClass)
Get a converter from XPath values to values in the external object modelPJConverter
getNodeListCreator(java.lang.Object node)
Get a converter that converts a sequence of XPath nodes to this model's representation of a node list.PJConverter
getPJConverter(java.lang.Class targetClass)
Get a converter from XPath values to values in the external object modelstatic void
main(java.lang.String[] args)
Test showing a DOM NodeList returned by an extension functionboolean
sendSource(javax.xml.transform.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 org.w3c.dom.NodeList
sortArrayToNodeList(Value source)
Sample extension functionNodeInfo
unravel(javax.xml.transform.Source source, Configuration config)
Wrap or unwrap a node using this object model to return the corresponding Saxon node.
-
-
-
Method Detail
-
getInstance
public static DOMObjectModel 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
public java.lang.String 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
public PJConverter getPJConverter(java.lang.Class targetClass)
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
public JPConverter getJPConverter(java.lang.Class targetClass)
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
public PJConverter getNodeListCreator(java.lang.Object node)
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
public Receiver getDocumentBuilder(javax.xml.transform.Result result) throws XPathException
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(javax.xml.transform.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
public NodeInfo unravel(javax.xml.transform.Source source, Configuration config)
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
public static void main(java.lang.String[] args) throws java.lang.Exception
Test showing a DOM NodeList returned by an extension function- Throws:
java.lang.Exception
-
sortArrayToNodeList
public static org.w3c.dom.NodeList sortArrayToNodeList(Value source) throws java.lang.Exception
Sample extension function- Parameters:
source
-- Returns:
- Throws:
java.lang.Exception
-
-