Class SequenceWriter

  • All Implemented Interfaces:
    javax.xml.transform.Result, Receiver
    Direct Known Subclasses:
    SequenceOutputter

    public abstract class SequenceWriter
    extends SequenceReceiver
    This outputter is used when writing a sequence of atomic values and nodes, for example, when xsl:variable is used with content and an "as" attribute. The outputter builds the sequence; the concrete subclass is responsible for deciding what to do with the resulting items.

    This class is not used to build temporary trees. For that, the ComplexContentOutputter is used.

    Author:
    Michael H. Kay
    • Constructor Summary

      Constructors 
      Constructor Description
      SequenceWriter()  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      void append​(Item item, int locationId, int copyNamespaces)
      Append an item to the sequence, performing any necessary type-checking and conversion
      void attribute​(int nameCode, int typeCode, java.lang.CharSequence value, int locationId, int properties)
      Output an attribute value.
      void characters​(java.lang.CharSequence s, int locationId, int properties)
      Produce text content output.
      void close()
      Close the output
      void comment​(java.lang.CharSequence comment, int locationId, int properties)
      Write a comment.
      void endDocument()
      Notify the end of a document node
      void endElement()
      Output an element end tag.
      boolean hasOpenNodes()
      Determine whether there are any open document or element nodes in the output
      void namespace​(int nscode, int properties)
      Output a namespace declaration.
      void processingInstruction​(java.lang.String target, java.lang.CharSequence data, int locationId, int properties)
      Write a processing instruction No-op in this implementation
      void startContent()
      The startContent() event is notified after all namespaces and attributes of an element have been notified, and before any child nodes are notified.
      void startDocument​(int properties)
      Start of a document node.
      void startElement​(int nameCode, int typeCode, int locationId, int properties)
      Output an element start tag.
      abstract void write​(Item item)
      Abstract method to be supplied by subclasses: output one item in the sequence.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • SequenceWriter

        public SequenceWriter()
    • Method Detail

      • write

        public abstract void write​(Item item)
                            throws XPathException
        Abstract method to be supplied by subclasses: output one item in the sequence.
        Throws:
        XPathException
      • hasOpenNodes

        public boolean hasOpenNodes()
        Determine whether there are any open document or element nodes in the output
      • startElement

        public void startElement​(int nameCode,
                                 int typeCode,
                                 int locationId,
                                 int properties)
                          throws XPathException
        Output an element start tag.
        Parameters:
        nameCode - The element name code - a code held in the Name Pool
        typeCode - Integer code identifying the type of this element. Zero identifies the default type, that is xs:anyType
        properties - bit-significant flags indicating any special information
        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.
        Throws:
        XPathException
      • namespace

        public void namespace​(int nscode,
                              int properties)
                       throws XPathException
        Output a namespace declaration.
        This is added to a list of pending namespaces for the current start tag. If there is already another declaration of the same prefix, this one is ignored. Note that unlike SAX2 startPrefixMapping(), this call is made AFTER writing the start tag.
        Parameters:
        nscode - The namespace code
        properties - Allows special properties to be passed if required
        Throws:
        XPathException - if there is no start tag to write to (created using writeStartTag), or if character content has been written since the start tag was written.
      • attribute

        public void attribute​(int nameCode,
                              int typeCode,
                              java.lang.CharSequence value,
                              int locationId,
                              int properties)
                       throws XPathException
        Output an attribute value.
        Parameters:
        nameCode - An integer code representing the name of the attribute, as held in the Name Pool
        typeCode - Integer code identifying the type annotation of the attribute; zero represents the default type (xs:untypedAtomic)
        value - The value of the attribute
        properties - Bit significant flags for passing extra information to the serializer, e.g. to disable escaping
        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.
        Throws:
        XPathException - if there is no start tag to write to (created using writeStartTag), or if character content has been written since the start tag was written.
      • startContent

        public void startContent()
                          throws XPathException
        The startContent() event is notified after all namespaces and attributes of an element have been notified, and before any child nodes are notified.
        Throws:
        XPathException - for any failure
      • characters

        public void characters​(java.lang.CharSequence s,
                               int locationId,
                               int properties)
                        throws XPathException
        Produce text content output.
        Parameters:
        s - The String to be output
        properties - bit-significant flags for extra information, e.g. disable-output-escaping
        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.
        Throws:
        XPathException - for any failure
      • comment

        public void comment​(java.lang.CharSequence comment,
                            int locationId,
                            int properties)
                     throws XPathException
        Write a comment.
        Parameters:
        comment - The content of the comment
        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 - Additional information about the comment. The following bits are defined:
        CHECKED
        Comment is known to be legal (e.g. doesn't contain "--")
        Throws:
        XPathException
      • processingInstruction

        public void processingInstruction​(java.lang.String target,
                                          java.lang.CharSequence data,
                                          int locationId,
                                          int properties)
                                   throws XPathException
        Write a processing instruction No-op in this implementation
        Parameters:
        target - The PI name. This must be a legal name (it will not be checked).
        data - The data portion of the processing instruction
        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 - Additional information about the PI. The following bits are defined:
        CHECKED
        Data is known to be legal (e.g. doesn't contain "?>")
        Throws:
        XPathException