Package net.sf.saxon

Class AugmentedSource

  • All Implemented Interfaces:
    javax.xml.transform.Source

    public class AugmentedSource
    extends java.lang.Object
    implements javax.xml.transform.Source
    This class is an extension of the JAXP Source interface. The class can be used wherever a JAXP Source object can be used, and it provides additional information about the way that the Source is to be processed: for example, it indicates whether or not it should be validated against a schema. Other options that can be set include the SAX XMLReader to be used, and the choice of whether a source in the form of an existing tree should be copied or wrapped.
    Since:
    8.8
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      void addFilter​(ProxyReceiver filter)
      Add a filter to the list of filters to be applied to the raw input
      void close()
      Close any resources held by this Source.
      javax.xml.transform.Source getContainedSource()
      Get the Source object wrapped by this AugmentedSource
      int getDTDValidation()
      Get whether or not DTD validation of this source is required
      org.xml.sax.EntityResolver getEntityResolver()
      Deprecated.
      since 9.1 (setting an EntityResolver has never had any effect)
      javax.xml.transform.ErrorListener getErrorListener()
      Get the ErrorListener that will be used when parsing
      java.util.List getFilters()
      Get the list of filters to be applied to the input.
      int getSchemaValidation()
      Get whether or not schema validation of this source is required
      int getStripSpace()
      Get the space-stripping action to be applied to the source document
      java.lang.String getSystemId()
      Get the System ID.
      StructuredQName getTopLevelElement()
      Get the name of the top-level element for validation.
      SchemaType getTopLevelType()
      Get the type of the document element for validation.
      int getTreeModel()
      Get the tree model that will be used.
      java.lang.Boolean getWrapDocument()
      Assuming that the contained Source is a node in a tree, determine whether a tree will be created as a view of this supplied tree, or as a copy.
      org.xml.sax.XMLReader getXMLReader()
      Get the SAX parser (XMLReader) to be used
      boolean isLineNumbering()
      Get whether line numbers are to be maintained in the constructed document
      boolean isLineNumberingSet()
      Determine whether setLineNumbering() has been called
      boolean isPleaseCloseAfterUse()
      Determine whether or not the user of this Source is encouraged to close it as soon as reading is finished.
      boolean isXIncludeAware()
      Get state of XInclude processing.
      boolean isXIncludeAwareSet()
      Determine whether setXIncludeAware() has been called.
      static AugmentedSource makeAugmentedSource​(javax.xml.transform.Source source)
      Create an AugmentedSource that wraps a given Source object.
      void setDTDValidationMode​(int option)
      Set whether or not DTD validation of this source is required
      void setEntityResolver​(org.xml.sax.EntityResolver resolver)
      Deprecated.
      since 9.1 (this method has never had any effect, other than allowing the EntityResolver to be retrieved using the getEntityResolver() method)
      void setErrorListener​(javax.xml.transform.ErrorListener listener)
      Set an ErrorListener to be used when parsing
      void setLineNumbering​(boolean lineNumbering)
      Set whether line numbers are to be maintained in the constructed document
      void setPleaseCloseAfterUse​(boolean close)
      Set whether or not the user of this Source is encouraged to close it as soon as reading is finished.
      void setSchemaValidationMode​(int option)
      Set whether or not schema validation of this source is required
      void setSourceIsXQJ​(boolean flag)
      Indicate that this Source is supporting the weird XQJ createItemFromDocument(XMLReader) method.
      void setStripSpace​(int stripAction)
      Set the space-stripping action to be applied to the source document
      void setSystemId​(java.lang.String id)
      Set the System ID.
      void setTopLevelElement​(StructuredQName elementName)
      Set the name of the top-level element for validation.
      void setTopLevelType​(SchemaType type)
      Set the type of the top-level element for validation.
      void setTreeModel​(int model)
      Set the tree model to use.
      void setWrapDocument​(java.lang.Boolean wrap)
      Assuming that the contained Source is a node in a tree, indicate whether a tree should be created as a view of this supplied tree, or as a copy.
      void setXIncludeAware​(boolean state)
      Set state of XInclude processing.
      void setXMLReader​(org.xml.sax.XMLReader parser)
      Set the SAX parser (XMLReader) to be used
      boolean sourceIsXQJ()
      Ask whether this Source is supporting the weird XQJ createItemFromDocument(XMLReader) method.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface javax.xml.transform.Source

        isEmpty
    • Method Detail

      • makeAugmentedSource

        public static AugmentedSource makeAugmentedSource​(javax.xml.transform.Source source)
        Create an AugmentedSource that wraps a given Source object. If this is already an AugmentedSource, the original AugmentedSource is returned. Note that this means that setting any properties on the returned AugmentedSource will also affect the original.
        Parameters:
        source - the Source object to be wrapped
        Returns:
        an AugmentedSource
        Since:
        8.8
      • addFilter

        public void addFilter​(ProxyReceiver filter)
        Add a filter to the list of filters to be applied to the raw input
        Parameters:
        filter - the filter to be added
      • getFilters

        public java.util.List getFilters()
        Get the list of filters to be applied to the input. Returns null if there are no filters.
        Returns:
        the list of filters, if there are any
      • getContainedSource

        public javax.xml.transform.Source getContainedSource()
        Get the Source object wrapped by this AugmentedSource
        Returns:
        the contained Source object
        Since:
        8.8
      • setTreeModel

        public void setTreeModel​(int model)
        Set the tree model to use. Default is the tiny tree
        Parameters:
        model - one of Builder.TINY_TREE or Builder.LINKED_TREE
        Since:
        8.9
      • getTreeModel

        public int getTreeModel()
        Get the tree model that will be used.
        Returns:
        one of Builder.TINY_TREE or Builder.LINKED_TREE, or {link Builder#UNSPECIFIED_TREE_MODEL} if no call on setTreeModel() has been made
        Since:
        8.9
      • getSchemaValidation

        public int getSchemaValidation()
        Get whether or not schema validation of this source is required
        Returns:
        the validation mode requested, or Validation.DEFAULT to use the default validation mode from the Configuration.
        Since:
        8.8
      • setTopLevelElement

        public void setTopLevelElement​(StructuredQName elementName)
        Set the name of the top-level element for validation. If a top-level element is set then the document being validated must have this as its outermost element
        Parameters:
        elementName - the QName of the required top-level element, or null to unset the value
        Since:
        9.0
      • getTopLevelElement

        public StructuredQName getTopLevelElement()
        Get the name of the top-level element for validation. If a top-level element is set then the document being validated must have this as its outermost element
        Returns:
        the QName of the required top-level element, or null if no value is set
        Since:
        9.0
      • setTopLevelType

        public void setTopLevelType​(SchemaType type)
        Set the type of the top-level element for validation. If this is set then the document element is validated against this type
        Parameters:
        type - the schema type required for the document element, or null to unset the value
        Since:
        9.0
      • getTopLevelType

        public SchemaType getTopLevelType()
        Get the type of the document element for validation. If this is set then the document element of the document being validated must have this type
        Returns:
        the type of the required top-level element, or null if no value is set
        Since:
        9.0
      • getDTDValidation

        public int getDTDValidation()
        Get whether or not DTD validation of this source is required
        Returns:
        the validation mode requested, or Validation.DEFAULT to use the default validation mode from the Configuration.
        Since:
        8.8
      • setLineNumbering

        public void setLineNumbering​(boolean lineNumbering)
        Set whether line numbers are to be maintained in the constructed document
        Parameters:
        lineNumbering - true if line numbers are to be maintained
        Since:
        8.8
      • isLineNumbering

        public boolean isLineNumbering()
        Get whether line numbers are to be maintained in the constructed document
        Returns:
        true if line numbers are maintained
        Since:
        8.8
      • isLineNumberingSet

        public boolean isLineNumberingSet()
        Determine whether setLineNumbering() has been called
        Returns:
        true if setLineNumbering() has been called
        Since:
        8.9
      • setXMLReader

        public void setXMLReader​(org.xml.sax.XMLReader parser)
        Set the SAX parser (XMLReader) to be used
        Parameters:
        parser - the SAX parser
        Since:
        8.8
      • getXMLReader

        public org.xml.sax.XMLReader getXMLReader()
        Get the SAX parser (XMLReader) to be used
        Returns:
        the parser
        Since:
        8.8
      • setWrapDocument

        public void setWrapDocument​(java.lang.Boolean wrap)
        Assuming that the contained Source is a node in a tree, indicate whether a tree should be created as a view of this supplied tree, or as a copy.
        Parameters:
        wrap - if true, the node in the supplied Source is wrapped, to create a view. If false, the node and its contained subtree is copied. If null, the system default is chosen.
        Since:
        8.8
      • getWrapDocument

        public java.lang.Boolean getWrapDocument()
        Assuming that the contained Source is a node in a tree, determine whether a tree will be created as a view of this supplied tree, or as a copy.
        Returns:
        if true, the node in the supplied Source is wrapped, to create a view. If false, the node and its contained subtree is copied. If null, the system default is chosen.
        Since:
        8.8
      • setSystemId

        public void setSystemId​(java.lang.String id)
        Set the System ID. This sets the System Id on the underlying Source object.
        Specified by:
        setSystemId in interface javax.xml.transform.Source
        Parameters:
        id - the System ID. This provides a base URI for the document, and also the result of the document-uri() function
        Since:
        8.8
      • getSystemId

        public java.lang.String getSystemId()
        Get the System ID. This gets the System Id on the underlying Source object.
        Specified by:
        getSystemId in interface javax.xml.transform.Source
        Returns:
        the System ID: effectively the base URI.
        Since:
        8.8
      • setXIncludeAware

        public void setXIncludeAware​(boolean state)

        Set state of XInclude processing.

        If XInclude markup is found in the document instance, should it be processed as specified in XML Inclusions (XInclude) Version 1.0.

        XInclude processing defaults to false.

        Parameters:
        state - Set XInclude processing to true or false
        Since:
        8.9
      • isXIncludeAwareSet

        public boolean isXIncludeAwareSet()

        Determine whether setXIncludeAware() has been called.

        Returns:
        true if setXIncludeAware() has been called
        Since:
        8.9
      • isXIncludeAware

        public boolean isXIncludeAware()

        Get state of XInclude processing.

        Returns:
        current state of XInclude processing. Default value is false.
        Since:
        8.9
      • setEntityResolver

        public void setEntityResolver​(org.xml.sax.EntityResolver resolver)
        Deprecated.
        since 9.1 (this method has never had any effect, other than allowing the EntityResolver to be retrieved using the getEntityResolver() method)
        Set an EntityResolver to be used when parsing
        Parameters:
        resolver - the EntityResolver to be used
        Since:
        8.9
      • getEntityResolver

        public org.xml.sax.EntityResolver getEntityResolver()
        Deprecated.
        since 9.1 (setting an EntityResolver has never had any effect)
        Get the EntityResolver that will be used when parsing
        Returns:
        the EntityResolver, if one has been set using setEntityResolver(org.xml.sax.EntityResolver), otherwise null.
        Since:
        8.9
      • setErrorListener

        public void setErrorListener​(javax.xml.transform.ErrorListener listener)
        Set an ErrorListener to be used when parsing
        Parameters:
        listener - the ErrorListener to be used
        Since:
        8.9
      • getErrorListener

        public javax.xml.transform.ErrorListener getErrorListener()
        Get the ErrorListener that will be used when parsing
        Returns:
        the ErrorListener, if one has been set using setErrorListener(javax.xml.transform.ErrorListener), otherwise null.
        Since:
        8.9
      • setPleaseCloseAfterUse

        public void setPleaseCloseAfterUse​(boolean close)
        Set whether or not the user of this Source is encouraged to close it as soon as reading is finished. Normally the expectation is that any Stream in a StreamSource will be closed by the component that created the Stream. However, in the case of a Source returned by a URIResolver, there is no suitable interface (the URIResolver has no opportunity to close the stream). Also, in some cases such as reading of stylesheet modules, it is possible to close the stream long before control is returned to the caller who supplied it. This tends to make a difference on .NET, where a file often can't be opened if there is a stream attached to it.
        Parameters:
        close - true if the source should be closed as soon as it has been consumed
        Since:
        8.8
      • isPleaseCloseAfterUse

        public boolean isPleaseCloseAfterUse()
        Determine whether or not the user of this Source is encouraged to close it as soon as reading is finished.
        Returns:
        true if the source should be closed as soon as it has been consumed
        Since:
        8.8
      • setSourceIsXQJ

        public void setSourceIsXQJ​(boolean flag)
        Indicate that this Source is supporting the weird XQJ createItemFromDocument(XMLReader) method. This contains a preinitialized XMLReader that needs to be invoked in a special way
        Parameters:
        flag - set to true if this is a special XQJ SAXSource
      • sourceIsXQJ

        public boolean sourceIsXQJ()
        Ask whether this Source is supporting the weird XQJ createItemFromDocument(XMLReader) method. This contains a preinitialized XMLReader that needs to be invoked in a special way
        Returns:
        true if this is a special XQJ SAXSource
      • close

        public void close()
        Close any resources held by this Source. This only works if the underlying Source is one that is recognized as holding closable resources.
        Since:
        8.8