Class NamePoolConverter

  • All Implemented Interfaces:
    javax.xml.transform.Result, Receiver

    public class NamePoolConverter
    extends ProxyReceiver
    This class is a filter that passes all Receiver events through unchanged, except that it changes namecodes to allow for the source and the destination using different NamePools. This is necessary when a stylesheet has been constructed as a general document (e.g. as the result of a transformation) and is passed to newTemplates() to be compiled as a stylesheet.
    Author:
    Michael Kay
    • Constructor Detail

      • NamePoolConverter

        public NamePoolConverter​(Receiver next,
                                 NamePool oldPool,
                                 NamePool newPool)
        Constructor
        Parameters:
        next - the next receiver in the pipeline
        oldPool - the old namepool
        newPool - th new namepool
    • Method Detail

      • setUnderlyingReceiver

        public void setUnderlyingReceiver​(Receiver receiver)
        Set the underlying emitter. This call is mandatory before using the Emitter. This version is modified from that of the parent class to avoid setting the namePool of the destination Receiver.
        Overrides:
        setUnderlyingReceiver in class ProxyReceiver
        Parameters:
        receiver - the underlying receiver, the one that is to receive events after processing by this filter.
      • startElement

        public void startElement​(NodeName nameCode,
                                 SchemaType typeCode,
                                 int locationId,
                                 int properties)
                          throws XPathException
        Output element start tag
        Specified by:
        startElement in interface Receiver
        Overrides:
        startElement in class ProxyReceiver
        Parameters:
        nameCode - integer code identifying the name of the element within the name pool.
        typeCode - integer code identifying the element's type within the name pool.
        locationId - an integer which can be interpreted using a LocationProvider to return information such as line number and system ID. If no location information is available, the value zero is supplied.
        properties - properties of the element node
        Throws:
        XPathException - if an error occurs
      • namespace

        public void namespace​(NamespaceBinding namespaceBinding,
                              int properties)
                       throws XPathException
        Handle a namespace
        Specified by:
        namespace in interface Receiver
        Overrides:
        namespace in class ProxyReceiver
        Parameters:
        namespaceBinding - the prefix/uri pair representing the namespace binding
        properties - any special properties to be passed on this call
        Throws:
        XPathException - if an error occurs
      • attribute

        public void attribute​(NodeName nameCode,
                              SimpleType typeCode,
                              java.lang.CharSequence value,
                              int locationId,
                              int properties)
                       throws XPathException
        Handle an attribute
        Specified by:
        attribute in interface Receiver
        Overrides:
        attribute in class ProxyReceiver
        Parameters:
        nameCode - The name of the attribute, as held in the name pool
        typeCode - The type of the attribute, as held in the name pool
        value - the string value of the attribute
        locationId - an integer which can be interpreted using a LocationProvider to return information such as line number and system ID. If no location information is available, the value zero is supplied.
        properties - Bit significant value. The following bits are defined:
        DISABLE_ESCAPING
        Disable escaping for this attribute
        NO_SPECIAL_CHARACTERS
        Attribute value contains no special characters
        Throws:
        XPathException - if an error occurs