## com.icl.saxon.output
Class XMLEmitter

    java.lang.Object
      |
      +--com.icl.saxon.output.Emitter
            |
            +--com.icl.saxon.output.XMLEmitter

All Implemented Interfaces:
  javax.xml.transform.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(javax.xml.transform.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 javax.xml.transform.TransformerException

  Start of the document. Make the writer and write the XML declaration.

  Specified by:
    `startDocument` in class `Emitter`
    `javax.xml.transform.TransformerException`

### writeDeclaration

    public void writeDeclaration()
                          throws javax.xml.transform.TransformerException

  Output the XML declaration

    `javax.xml.transform.TransformerException`

### writeDocType

    protected void writeDocType(java.lang.String type,
                                java.lang.String systemId,
                                java.lang.String publicId)
                         throws javax.xml.transform.TransformerException

    `javax.xml.transform.TransformerException`

### endDocument

    public void endDocument()
                     throws javax.xml.transform.TransformerException

  End of the document. Close the output stream.

  Specified by:
    `endDocument` in class `Emitter`
    `javax.xml.transform.TransformerException`

### startElement

    public void startElement(int nameCode,
                             org.xml.sax.Attributes attributes,
                             int[] namespaces,
                             int nscount)
                      throws javax.xml.transform.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
    `javax.xml.transform.TransformerException`

### closeStartTag

    protected void closeStartTag(int nameCode,
                                 boolean emptyTag)
                          throws javax.xml.transform.TransformerException

    `javax.xml.transform.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 javax.xml.transform.TransformerException

    `javax.xml.transform.TransformerException`

### testCharacters

    protected void testCharacters(java.lang.String name)
                           throws javax.xml.transform.TransformerException

  Test that all characters in a name are supported in the target encoding

    `javax.xml.transform.TransformerException`

### testCharacters

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

### endElement

    public void endElement(int nameCode)
                    throws javax.xml.transform.TransformerException

  End of an element.

  Specified by:
    `endElement` in class `Emitter`
    `javax.xml.transform.TransformerException`

### characters

    public void characters(char[] ch,
                           int start,
                           int length)
                    throws javax.xml.transform.TransformerException

  Character data.

  Specified by:
    `characters` in class `Emitter`
    `javax.xml.transform.TransformerException`

### processingInstruction

    public void processingInstruction(java.lang.String target,
                                      java.lang.String data)
                               throws javax.xml.transform.TransformerException

  Handle a processing instruction.

  Specified by:
    `processingInstruction` in class `Emitter`
    `javax.xml.transform.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.
    `java.io.IOException`

### outputCharacterReference

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

    `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 javax.xml.transform.TransformerException

  Handle a comment.

  Specified by:
    `comment` in class `Emitter`
    `javax.xml.transform.TransformerException`

### setResult

    public void setResult(javax.xml.transform.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 javax.xml.transform.TransformerException

  Set the URI for an unparsed entity in the document.

  Overrides:
    `setUnparsedEntity` in class `Emitter`
    `javax.xml.transform.TransformerException`