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 ReceivergetDocumentBuilder(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.StringgetIdentifyingURI()Get the URI of the external object model as used in the JAXP factory interfaces for obtaining an XPath implementationstatic DOMObjectModelgetInstance()Get a reusable instance instance of this class.JPConvertergetJPConverter(java.lang.Class targetClass)Get a converter from XPath values to values in the external object modelPJConvertergetNodeListCreator(java.lang.Object node)Get a converter that converts a sequence of XPath nodes to this model's representation of a node list.PJConvertergetPJConverter(java.lang.Class targetClass)Get a converter from XPath values to values in the external object modelstatic voidmain(java.lang.String[] args)Test showing a DOM NodeList returned by an extension functionbooleansendSource(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.NodeListsortArrayToNodeList(Value source)Sample extension functionNodeInfounravel(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:
getIdentifyingURIin interfaceExternalObjectModel
-
getPJConverter
public PJConverter getPJConverter(java.lang.Class targetClass)
Get a converter from XPath values to values in the external object model- Specified by:
getPJConverterin 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:ExternalObjectModelGet a converter from XPath values to values in the external object model- Specified by:
getJPConverterin 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:
getNodeListCreatorin 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:
getDocumentBuilderin 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 XPathExceptionTest 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:
sendSourcein 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:
unravelin 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.ExceptionTest 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
-
-