Class DOMObjectModel

java.lang.Object
net.sf.saxon.dom.DOMObjectModel
All Implemented Interfaces:
Serializable, ExternalObjectModel

public class DOMObjectModel extends Object implements ExternalObjectModel, 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:
  • 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

      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 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 interface ExternalObjectModel
    • getPJConverter

      public PJConverter getPJConverter(Class targetClass)
      Get a converter from XPath values to values in the external object model
      Specified by:
      getPJConverter in interface ExternalObjectModel
      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(Class targetClass)
      Description copied from interface: ExternalObjectModel
      Get a converter from XPath values to values in the external object model
      Specified by:
      getJPConverter in interface ExternalObjectModel
      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(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 interface ExternalObjectModel
      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(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 interface ExternalObjectModel
      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 interface ExternalObjectModel
      Parameters:
      source - a JAXP Source object
      receiver - the Receiver that is to receive the data from the Source
      pipe - configuration information
      Returns:
      true if the data from the Source has been sent to the Receiver, false otherwise
      Throws:
      XPathException
    • unravel

      public NodeInfo unravel(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 interface ExternalObjectModel
      Parameters:
      source - a JAXP Source object
      config - the Saxon configuration
      Returns:
      a NodeInfo corresponding to the Source, if this can be constructed; otherwise null
    • main

      public static void main(String[] args) throws Exception
      Test showing a DOM NodeList returned by an extension function
      Throws:
      Exception
    • sortArrayToNodeList

      public static NodeList sortArrayToNodeList(Value source) throws Exception
      Sample extension function
      Parameters:
      source -
      Returns:
      Throws:
      Exception