org.apache.xml.serializer

Class ToTextStream

Implemented Interfaces:
org.xml.sax.ContentHandler, DeclHandler, ErrorHandler, DOM2DTM.CharacterNodeHandler, DOMSerializer, ExtendedContentHandler, ExtendedLexicalHandler, org.xml.sax.ext.LexicalHandler, SerializationHandler, Serializer, SerializerConstants, XSLOutputAttributes

public class ToTextStream
extends ToStream

Author:
Santiago Pericas-Geertsen

Fields inherited from interface org.apache.xml.serializer.ExtendedContentHandler

HTML_ATTREMPTY, HTML_ATTRURL, NO_BAD_CHARS

Fields inherited from interface org.apache.xml.serializer.SerializerConstants

BEGCDATA, CDATA_CONTINUE, CDATA_DELIMITER_CLOSE, CDATA_DELIMITER_OPEN, CNTCDATA, DEFAULT_SAX_SERIALIZER, EMPTYSTRING, ENDCDATA, ENTITY_AMP, ENTITY_CRLF, ENTITY_GT, ENTITY_LT, ENTITY_QUOT, XMLNS_PREFIX, XMLNS_URI, XML_PREFIX

Constructor Summary

ToTextStream()
Default constructor.

Method Summary

void
addAttribute(String name, String value)
From XSLTC
void
addAttribute(String uri, String localName, String rawName, String type, String value)
void
addUniqueAttribute(String qName, String value, int flags)
Add a unique attribute
void
cdata(ch[] , int start, int length)
Receive notification of cdata.
void
characters(String characters)
From XSLTC
void
characters(ch[] , int start, int length)
Receive notification of character data.
void
charactersRaw(ch[] , int start, int length)
If available, when the disable-output-escaping attribute is used, output raw text without escaping.
void
comment(String data)
Called when a Comment is to be constructed.
void
comment(ch[] , int start, int length)
Report an XML comment anywhere in the document.
void
endCDATA()
void
endDocument()
Receive notification of the end of a document.
void
endElement(String elemName)
void
endElement(String namespaceURI, String localName, String name)
Receive notification of the end of an element.
void
entityReference(String name)
Receive notivication of a entityReference.
void
flushPending()
This method flushes any pending events, which can be startDocument() closing the opening tag of an element, or closing an open CDATA section.
void
ignorableWhitespace(ch[] , int start, int length)
Receive notification of ignorable whitespace in element content.
void
namespaceAfterStartElement(String prefix, String uri)
This method is used when a prefix/uri namespace mapping is indicated after the element was started with a startElement() and before and endElement().
void
processingInstruction(String target, String data)
Receive notification of a processing instruction.
void
startElement(String elementNamespaceURI, String elementLocalName, String elementName)
From XSLTC
void
startElement(String namespaceURI, String localName, String name, Attributes atts)
Receive notification of the beginning of an element.
void
startPrefixMapping(String prefix, String uri)
Begin the scope of a prefix-URI Namespace mapping just before another element is about to start.
boolean
startPrefixMapping(String prefix, String uri, boolean shouldFlush)
Handle a prefix/uri mapping, which is associated with a startElement() that is soon to follow.

Methods inherited from class org.apache.xml.serializer.ToStream

addAttributeAlways, attributeDecl, characters, characters, comment, elementDecl, endCDATA, endDTD, endElement, endElement, endNonEscaping, endPrefixMapping, externalEntityDecl, flushPending, getIndentAmount, getOutputFormat, getOutputStream, getWriter, ignorableWhitespace, internalEntityDecl, processAttributes, reset, serialize, setCdataSectionElements, setContentHandler, setEscaping, setIndentAmount, setLineSepUse, setOutputFormat, setOutputStream, setTransformer, setWriter, skippedEntity, startCDATA, startDTD, startElement, startElement, startElement, startEntity, startNonEscaping, startPrefixMapping, startPrefixMapping, writeAttrString

Methods inherited from class org.apache.xml.serializer.SerializerBase

addAttribute, addAttribute, addAttributeAlways, addAttributes, asContentHandler, asDOMSerializer, characters, close, comment, endEntity, entityReference, error, fatalError, fireEndEntity, getDoctypePublic, getDoctypeSystem, getEncoding, getIndent, getIndentAmount, getMediaType, getNamespaceMappings, getNamespaceURI, getNamespaceURIFromPrefix, getOmitXMLDeclaration, getPrefix, getStandalone, getTransformer, getVersion, namespaceAfterStartElement, reset, setDoctype, setDoctypePublic, setDoctypeSystem, setDocumentLocator, setEncoding, setIndent, setIndentAmount, setMediaType, setNamespaceMappings, setOmitXMLDeclaration, setSourceLocator, setStandalone, setTransformer, setVersion, startDocument, warning

Constructor Details

ToTextStream

public ToTextStream()
Default constructor.

Method Details

addAttribute

public void addAttribute(String name,
                         String value)
From XSLTC
Specified by:
addAttribute in interface ExtendedContentHandler
Overrides:
addAttribute in interface SerializerBase

addAttribute

public void addAttribute(String uri,
                         String localName,
                         String rawName,
                         String type,
                         String value)
Specified by:
addAttribute in interface ExtendedContentHandler
Overrides:
addAttribute in interface SerializerBase

addUniqueAttribute

public void addUniqueAttribute(String qName,
                               String value,
                               int flags)
            throws SAXException
Add a unique attribute
Specified by:
addUniqueAttribute in interface ExtendedContentHandler

cdata

public void cdata(ch[] ,
                  int start,
                  int length)
            throws org.xml.sax.SAXException
Receive notification of cdata.

The Parser will call this method to report each chunk of character data. SAX parsers may return all contiguous character data in a single chunk, or they may split it into several chunks; however, all of the characters in any single event must come from the same external entity, so that the Locator provides useful information.

The application must not attempt to read from the array outside of the specified range.

Note that some parsers will report whitespace using the ignorableWhitespace() method rather than this one (validating parsers must do so).

Parameters:
start - The start position in the array.
length - The number of characters to read from the array.

characters

public void characters(String characters)
            throws SAXException
From XSLTC
Specified by:
characters in interface ExtendedContentHandler
Overrides:
characters in interface ToStream

characters

public void characters(ch[] ,
                       int start,
                       int length)
            throws org.xml.sax.SAXException
Receive notification of character data.

The Parser will call this method to report each chunk of character data. SAX parsers may return all contiguous character data in a single chunk, or they may split it into several chunks; however, all of the characters in any single event must come from the same external entity, so that the Locator provides useful information.

The application must not attempt to read from the array outside of the specified range.

Note that some parsers will report whitespace using the ignorableWhitespace() method rather than this one (validating parsers must do so).

Parameters:
start - The start position in the array.
length - The number of characters to read from the array.

charactersRaw

public void charactersRaw(ch[] ,
                          int start,
                          int length)
            throws org.xml.sax.SAXException
If available, when the disable-output-escaping attribute is used, output raw text without escaping.
Parameters:
start - The start position in the array.
length - The number of characters to read from the array.

comment

public void comment(String data)
            throws org.xml.sax.SAXException
Called when a Comment is to be constructed. Note that Xalan will normally invoke the other version of this method. %REVIEW% In fact, is this one ever needed, or was it a mistake?
Specified by:
comment in interface ExtendedLexicalHandler
Overrides:
comment in interface SerializerBase
Parameters:
data - The comment data.

comment

public void comment(ch[] ,
                    int start,
                    int length)
            throws org.xml.sax.SAXException
Report an XML comment anywhere in the document. This callback will be used for comments inside or outside the document element, including comments in the external DTD subset (if read).
Overrides:
comment in interface ToStream
Parameters:
start - The starting position in the array.
length - The number of characters to use from the array.

endCDATA

public void endCDATA()
            throws SAXException
Overrides:
endCDATA in interface ToStream
See Also:
org.xml.sax.ext.LexicalHandler.endCDATA()

endDocument

public void endDocument()
            throws org.xml.sax.SAXException
Receive notification of the end of a document.

The SAX parser will invoke this method only once, and it will be the last method invoked during the parse. The parser shall not invoke this method until it has either abandoned parsing (because of an unrecoverable error) or reached the end of input.


endElement

public void endElement(String elemName)
            throws SAXException
Specified by:
endElement in interface ExtendedContentHandler
Overrides:
endElement in interface ToStream

endElement

public void endElement(String namespaceURI,
                       String localName,
                       String name)
            throws org.xml.sax.SAXException
Receive notification of the end of an element.

The SAX parser will invoke this method at the end of every element in the XML document; there will be a corresponding startElement() event for every endElement() event (even when the element is empty).

If the element name has a namespace prefix, the prefix will still be attached to the name.

Overrides:
endElement in interface ToStream
Parameters:
namespaceURI - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed.
localName - The local name (without prefix), or the empty string if Namespace processing is not being performed.
name - The qualified name (with prefix), or the empty string if qualified names are not available.

entityReference

public void entityReference(String name)
            throws org.xml.sax.SAXException
Receive notivication of a entityReference.
Specified by:
entityReference in interface ExtendedContentHandler
Overrides:
entityReference in interface SerializerBase
Parameters:
name - non-null reference to the name of the entity.

flushPending

public void flushPending()
            throws org.xml.sax.SAXException
This method flushes any pending events, which can be startDocument() closing the opening tag of an element, or closing an open CDATA section.
Specified by:
flushPending in interface SerializationHandler
Overrides:
flushPending in interface ToStream

ignorableWhitespace

public void ignorableWhitespace(ch[] ,
                                int start,
                                int length)
            throws org.xml.sax.SAXException
Receive notification of ignorable whitespace in element content.

Validating Parsers must use this method to report each chunk of ignorable whitespace (see the W3C XML 1.0 recommendation, section 2.10): non-validating parsers may also use this method if they are capable of parsing and using content models.

SAX parsers may return all contiguous whitespace in a single chunk, or they may split it into several chunks; however, all of the characters in any single event must come from the same external entity, so that the Locator provides useful information.

The application must not attempt to read from the array outside of the specified range.

Overrides:
ignorableWhitespace in interface ToStream
Parameters:
start - The start position in the array.
length - The number of characters to read from the array.
See Also:
characters

namespaceAfterStartElement

public void namespaceAfterStartElement(String prefix,
                                       String uri)
            throws SAXException
This method is used when a prefix/uri namespace mapping is indicated after the element was started with a startElement() and before and endElement(). startPrefixMapping(prefix,uri) would be used before the startElement() call.
Specified by:
namespaceAfterStartElement in interface ExtendedContentHandler
Overrides:
namespaceAfterStartElement in interface SerializerBase
Parameters:
prefix - the prefix associated with the given URI.
uri - the URI of the namespace

processingInstruction

public void processingInstruction(String target,
                                  String data)
            throws org.xml.sax.SAXException
Receive notification of a processing instruction.

The Parser will invoke this method once for each processing instruction found: note that processing instructions may occur before or after the main document element.

A SAX parser should never report an XML declaration (XML 1.0, section 2.8) or a text declaration (XML 1.0, section 4.3.1) using this method.

Parameters:
target - The processing instruction target.
data - The processing instruction data, or null if none was supplied.

startElement

public void startElement(String elementNamespaceURI,
                         String elementLocalName,
                         String elementName)
            throws SAXException
From XSLTC
Specified by:
startElement in interface ExtendedContentHandler
Overrides:
startElement in interface ToStream

startElement

public void startElement(String namespaceURI,
                         String localName,
                         String name,
                         Attributes atts)
            throws org.xml.sax.SAXException
Receive notification of the beginning of an element.

The Parser will invoke this method at the beginning of every element in the XML document; there will be a corresponding endElement() event for every startElement() event (even when the element is empty). All of the element's content will be reported, in order, before the corresponding endElement() event.

If the element name has a namespace prefix, the prefix will still be attached. Note that the attribute list provided will contain only attributes with explicit values (specified or defaulted): #IMPLIED attributes will be omitted.

Overrides:
startElement in interface ToStream
Parameters:
namespaceURI - The Namespace URI, or the empty string if the element has no Namespace URI or if Namespace processing is not being performed.
localName - The local name (without prefix), or the empty string if Namespace processing is not being performed.
name - The qualified name (with prefix), or the empty string if qualified names are not available.
atts - The attributes attached to the element, if any.
See Also:
endElement, org.xml.sax.AttributeList

startPrefixMapping

public void startPrefixMapping(String prefix,
                               String uri)
            throws org.xml.sax.SAXException
Begin the scope of a prefix-URI Namespace mapping just before another element is about to start. This call will close any open tags so that the prefix mapping will not apply to the current element, but the up comming child.
Overrides:
startPrefixMapping in interface ToStream
Parameters:
prefix - The Namespace prefix being declared.
uri - The Namespace URI the prefix is mapped to.
See Also:
org.xml.sax.ContentHandler.startPrefixMapping

startPrefixMapping

public boolean startPrefixMapping(String prefix,
                                  String uri,
                                  boolean shouldFlush)
            throws SAXException
Handle a prefix/uri mapping, which is associated with a startElement() that is soon to follow. Need to close any open start tag to make sure than any name space attributes due to this event are associated wih the up comming element, not the current one.
Specified by:
startPrefixMapping in interface ExtendedContentHandler
Overrides:
startPrefixMapping in interface ToStream
Parameters:
prefix - The Namespace prefix being declared.
uri - The Namespace URI the prefix is mapped to.
shouldFlush - true if any open tags need to be closed first, this will impact which element the mapping applies to (open parent, or its up comming child)
Returns:
returns true if the call made a change to the current namespace information, false if it did not change anything, e.g. if the prefix/namespace mapping was already in scope from before.

Copyright B) 2004 Apache XML Project. All Rights Reserved.