com.icl.saxon.output
Class XMLEmitter

java.lang.Object
  extended bycom.icl.saxon.output.Emitter
      extended bycom.icl.saxon.output.XMLEmitter
All Implemented Interfaces:
Result
Direct Known Subclasses:
HTMLEmitter, MessageEmitter, TEXTEmitter, XHTMLEmitter

public class XMLEmitter
extends Emitter

XMLEmitter is an Emitter that generates XML output to a specified destination.


Field Summary
protected  CharacterSet characterSet
           
protected  boolean declarationIsWritten
           
protected  boolean empty
           
protected  boolean escaping
           
protected  java.lang.String lastDisplayName
           
protected  int lastNameCode
           
protected  java.lang.String lastPrefix
           
protected  java.lang.String lastURI
           
protected  boolean openStartTag
           
protected  boolean preferHex
           
 
Fields inherited from class com.icl.saxon.output.Emitter
locator, namePool, outputProperties, outputStream, systemId, writer
 
Fields inherited from interface javax.xml.transform.Result
PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING
 
Constructor Summary
XMLEmitter()
           
 
Method Summary
 void characters(char[] ch, int start, int length)
          Character data.
protected  void closeStartTag(int nameCode, boolean emptyTag)
           
 void comment(char[] ch, int start, int length)
          Handle a comment.
protected  java.lang.String emptyElementTagCloser(int nameCode)
          Close an empty element tag.
 void endDocument()
          End of the document.
 void endElement(int nameCode)
          End of an element.
protected  void outputCharacterReference(int charval)
           
 void processingInstruction(java.lang.String target, java.lang.String data)
          Handle a processing instruction.
 void setDocumentLocator(org.xml.sax.Locator locator)
          Set Document Locator.
 void setEscaping(boolean escaping)
          Set escaping on or off
 void setOutputProperties(java.util.Properties details)
          Set output properties
 void setResult(Result result)
          Set the result destination
 void setUnparsedEntity(java.lang.String name, java.lang.String uri)
          Set the URI for an unparsed entity in the document.
 void startDocument()
          Start of the document.
 void startElement(int nameCode, org.xml.sax.Attributes attributes, int[] namespaces, int nscount)
          Start of an element.
protected  boolean testCharacters(char[] array, int start, int len)
           
protected  void testCharacters(java.lang.String name)
          Test that all characters in a name are supported in the target encoding
protected  void writeAttribute(int elCode, java.lang.String attname, java.lang.String type, java.lang.String value)
           
 void writeDeclaration()
          Output the XML declaration
protected  void writeDocType(java.lang.String type, java.lang.String systemId, java.lang.String publicId)
           
protected  void writeEscape(char[] ch, int start, int length, boolean inAttribute)
          Write contents of array to current writer, after escaping special characters
 
Methods inherited from class com.icl.saxon.output.Emitter
getNamePool, getOutputProperties, getOutputStream, getSystemId, getWriter, makeEmitter, setNamePool, setOutputStream, setSystemId, setWriter, usesWriter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

characterSet

protected CharacterSet characterSet

empty

protected boolean empty

escaping

protected boolean escaping

openStartTag

protected boolean openStartTag

declarationIsWritten

protected boolean declarationIsWritten

preferHex

protected boolean preferHex

lastNameCode

protected int lastNameCode

lastDisplayName

protected java.lang.String lastDisplayName

lastPrefix

protected java.lang.String lastPrefix

lastURI

protected java.lang.String lastURI
Constructor Detail

XMLEmitter

public XMLEmitter()
Method Detail

setDocumentLocator

public void setDocumentLocator(org.xml.sax.Locator locator)
Set Document Locator. Provided merely to satisfy the interface.

Overrides:
setDocumentLocator in class Emitter

startDocument

public void startDocument()
                   throws TransformerException
Start of the document. Make the writer and write the XML declaration.

Specified by:
startDocument in class Emitter
Throws:
TransformerException

writeDeclaration

public void writeDeclaration()
                      throws TransformerException
Output the XML declaration

Throws:
TransformerException

writeDocType

protected void writeDocType(java.lang.String type,
                            java.lang.String systemId,
                            java.lang.String publicId)
                     throws TransformerException
Throws:
TransformerException

endDocument

public void endDocument()
                 throws TransformerException
End of the document. Close the output stream.

Specified by:
endDocument in class Emitter
Throws:
TransformerException

startElement

public void startElement(int nameCode,
                         org.xml.sax.Attributes attributes,
                         int[] namespaces,
                         int nscount)
                  throws TransformerException
Start of an element. Output the start tag, escaping special characters.

Specified by:
startElement in class Emitter
Parameters:
namespaces - Array of namespace codes identifying the namespace prefix/uri pairs associated with this element
nscount - Number of significant entries within namespaces array
Throws:
TransformerException

closeStartTag

protected void closeStartTag(int nameCode,
                             boolean emptyTag)
                      throws TransformerException
Throws:
TransformerException

emptyElementTagCloser

protected java.lang.String emptyElementTagCloser(int nameCode)
Close an empty element tag. (This is overridden in XHTMLEmitter).


writeAttribute

protected void writeAttribute(int elCode,
                              java.lang.String attname,
                              java.lang.String type,
                              java.lang.String value)
                       throws TransformerException
Throws:
TransformerException

testCharacters

protected void testCharacters(java.lang.String name)
                       throws TransformerException
Test that all characters in a name are supported in the target encoding

Throws:
TransformerException

testCharacters

protected boolean testCharacters(char[] array,
                                 int start,
                                 int len)

endElement

public void endElement(int nameCode)
                throws TransformerException
End of an element.

Specified by:
endElement in class Emitter
Throws:
TransformerException

characters

public void characters(char[] ch,
                       int start,
                       int length)
                throws TransformerException
Character data.

Specified by:
characters in class Emitter
Throws:
TransformerException

processingInstruction

public void processingInstruction(java.lang.String target,
                                  java.lang.String data)
                           throws TransformerException
Handle a processing instruction.

Specified by:
processingInstruction in class Emitter
Throws:
TransformerException

writeEscape

protected void writeEscape(char[] ch,
                           int start,
                           int length,
                           boolean inAttribute)
                    throws java.io.IOException
Write contents of array to current writer, after escaping special characters

Parameters:
ch - The character array containing the string
start - The start position of the input string within the character array
length - The length of the input string within the character array This method converts the XML special characters (such as < and &) into their predefined entities.
Throws:
java.io.IOException

outputCharacterReference

protected void outputCharacterReference(int charval)
                                 throws java.io.IOException
Throws:
java.io.IOException

setEscaping

public void setEscaping(boolean escaping)
Set escaping on or off

Overrides:
setEscaping in class Emitter

comment

public void comment(char[] ch,
                    int start,
                    int length)
             throws TransformerException
Handle a comment.

Specified by:
comment in class Emitter
Throws:
TransformerException

setResult

public void setResult(Result result)
Set the result destination


setOutputProperties

public void setOutputProperties(java.util.Properties details)
Set output properties

Overrides:
setOutputProperties in class Emitter

setUnparsedEntity

public void setUnparsedEntity(java.lang.String name,
                              java.lang.String uri)
                       throws TransformerException
Set the URI for an unparsed entity in the document.

Overrides:
setUnparsedEntity in class Emitter
Throws:
TransformerException