com.icl.saxon.output

Class Emitter

Implemented Interfaces:
Result
Known Direct Subclasses:
Builder, ContentHandlerProxy, DocumentHandlerProxy, DOMEmitter, ErrorEmitter, ProxyEmitter, XMLEmitter

public abstract class Emitter
extends java.lang.Object
implements Result

Emitter: This interface defines methods that must be implemented by components that format SAXON output. There is one emitter for XML, one for HTML, and so on. Additional methods are concerned with setting options and providing a Writer.

The interface is deliberately designed to be as close as possible to the standard SAX2 ContentHandler interface, however, it allows additional information to be made available.

Field Summary

protected Locator
locator
protected NamePool
namePool
protected Properties
outputProperties
protected OutputStream
outputStream
protected String
systemId
protected Writer
writer

Method Summary

abstract void
characters(char[] chars, int start, int len)
Output character data
abstract void
comment(char[] chars, int start, int length)
Output a comment.
abstract void
endDocument()
Notify document end
abstract void
endElement(int nameCode)
Output an element end tag
NamePool
getNamePool()
Get the namepool used for this document
Properties
getOutputProperties()
Get the output properties
OutputStream
getOutputStream()
Get the output stream
String
getSystemId()
Get the System ID
Writer
getWriter()
Get the output writer
static Emitter
makeEmitter(String className)
load a named output emitter or document handler and check it is OK.
abstract void
processingInstruction(String name, String data)
Output a processing instruction
void
setDocumentLocator(Locator locator)
Set locator, to identify position in the document.
void
setEscaping(boolean escaping)
Switch escaping on or off.
void
setNamePool(NamePool namePool)
Set the namePool in which all name codes can be found
void
setOutputProperties(Properties props)
Set the output properties
void
setOutputStream(OutputStream stream)
Set the output destination as a byte stream
void
setSystemId(String systemId)
Set the System ID
void
setUnparsedEntity(String name, String uri)
Set unparsed entity URI Used only when supplying input from a parser.
void
setWriter(Writer writer)
Set the output destination as a character stream
abstract void
startDocument()
Notify document start
abstract void
startElement(int nameCode, Attributes attributes, int[] namespaces, int nscount)
Output an element start tag.
boolean
usesWriter()
Determine whether the Emitter wants a Writer for character output or an OutputStream for binary output

Field Details

locator

protected Locator locator

namePool

protected NamePool namePool

outputProperties

protected Properties outputProperties

outputStream

protected OutputStream outputStream

systemId

protected String systemId

writer

protected Writer writer

Method Details

characters

public abstract void characters(char[] chars,
                                int start,
                                int len)
            throws TransformerException
Output character data

comment

public abstract void comment(char[] chars,
                             int start,
                             int length)
            throws TransformerException
Output a comment.
(The method signature is borrowed from the SAX2 LexicalHandler interface)

endDocument

public abstract void endDocument()
            throws TransformerException
Notify document end

endElement

public abstract void endElement(int nameCode)
            throws TransformerException
Output an element end tag

getNamePool

public NamePool getNamePool()
Get the namepool used for this document

getOutputProperties

public Properties getOutputProperties()
Get the output properties

getOutputStream

public OutputStream getOutputStream()
Get the output stream

getSystemId

public String getSystemId()
Get the System ID

getWriter

public Writer getWriter()
Get the output writer

makeEmitter

public static Emitter makeEmitter(String className)
            throws TransformerException
load a named output emitter or document handler and check it is OK.

processingInstruction

public abstract void processingInstruction(String name,
                                           String data)
            throws TransformerException
Output a processing instruction

setDocumentLocator

public void setDocumentLocator(Locator locator)
Set locator, to identify position in the document. Used only when supplying input from a parser.

setEscaping

public void setEscaping(boolean escaping)
            throws TransformerException
Switch escaping on or off. This is called when the XSLT disable-output-escaping attribute is used to switch escaping on or off. It is also called at the start and end of a CDATA section It is not called for other sections of output (e.g. comments) where escaping is inappropriate.

setNamePool

public void setNamePool(NamePool namePool)
Set the namePool in which all name codes can be found

setOutputProperties

public void setOutputProperties(Properties props)
Set the output properties

setOutputStream

public void setOutputStream(OutputStream stream)
Set the output destination as a byte stream

setSystemId

public void setSystemId(String systemId)
Set the System ID

setUnparsedEntity

public void setUnparsedEntity(String name,
                              String uri)
            throws TransformerException
Set unparsed entity URI Used only when supplying input from a parser.

setWriter

public void setWriter(Writer writer)
Set the output destination as a character stream

startDocument

public abstract void startDocument()
            throws TransformerException
Notify document start

startElement

public abstract void startElement(int nameCode,
                                  Attributes attributes,
                                  int[] namespaces,
                                  int nscount)
            throws TransformerException
Output an element start tag.
Parameters:
namespaces - Array of namespace codes identifying the namespace prefix/uri pairs associated with this element
nscount - Number of significant entries within namespaces array

usesWriter

public boolean usesWriter()
Determine whether the Emitter wants a Writer for character output or an OutputStream for binary output