net.sf.saxon.serialize

## Class HTMLEmitter

- java.lang.Object
- - net.sf.saxon.serialize.Emitter
  - - net.sf.saxon.serialize.XMLEmitter
    - - net.sf.saxon.serialize.HTMLEmitter

- All Implemented Interfaces:
    Result, Receiver
  Direct Known Subclasses:
    HTML40Emitter, HTML50Emitter

      public abstract class HTMLEmitter
      extends XMLEmitter

  This class generates HTML output
  Author:
    Michael H. Kay

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `version`

    - ### Fields inherited from class net.sf.saxon.serialize.XMLEmitter

      `characterReferenceGenerator, declarationIsWritten, elementCode, elementStack, indentForNextAttribute, openStartTag, started, startedElement, undeclareNamespaces`

    - ### Fields inherited from class net.sf.saxon.serialize.Emitter

      `allCharactersEncodable, characterSet, namePool, outputProperties, outputStream, pipelineConfig, streamResult, systemId, writer`

    - ### Fields inherited from interface javax.xml.transform.Result

      `PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `HTMLEmitter()` Constructor

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `characters(CharSequence chars, int locationId, int properties)` Character data.
    `void` | `endElement()` Output an element end tag.
    `protected static boolean` | `isEmptyTag(String tag)`
    `protected abstract boolean` | `isHTMLElement(NodeName name)` Decide whether an element is "serialized as an HTML element" in the language of the 3.0 specification
    `void` | `open()` Output start of document
    `protected void` | `openDocument()` Do the real work of starting the document.
    `void` | `processingInstruction(String target, CharSequence data, int locationId, int properties)` Handle a processing instruction.
    `protected static void` | `setEmptyTag(String tag)`
    `void` | `setEscapeNonAscii(Boolean escape)` Say that all non-ASCII characters should be escaped, regardless of the character encoding
    `void` | `startContent()` Notify the start of the content, that is, the completion of all attributes and namespaces.
    `void` | `startElement(NodeName elemName, SchemaType typeCode, int locationId, int properties)` Output element start tag
    `protected void` | `writeAttribute(NodeName elCode, String attname, CharSequence value, int properties)` Write attribute name=value pair.
    `protected void` | `writeDocType(NodeName name, String displayName, String systemId, String publicId)` Output the document type declaration
    `protected void` | `writeEscape(CharSequence chars, boolean inAttribute)` Escape characters.

    - ### Methods inherited from class net.sf.saxon.serialize.XMLEmitter

      `attribute, close, closeStartTag, comment, emptyElementTagCloser, endDocument, getAttributeIndentString, namespace, setCharacterReferenceGenerator, setIndentForNextAttribute, startDocument, testCharacters, usesTypeAnnotations, writeCharSequence, writeDeclaration, writeDocTypeWithNullSystemId`

    - ### Methods inherited from class net.sf.saxon.serialize.Emitter

      `getConfiguration, getOutputProperties, getOutputStream, getPipelineConfiguration, getSystemId, getWriter, makeOutputStream, makeWriter, setOutputProperties, setOutputStream, setPipelineConfiguration, setStreamResult, setSystemId, setUnparsedEntity, setWriter, usesWriter`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### version

          protected int version

  - ### Constructor Detail

    - #### HTMLEmitter

          public HTMLEmitter()

      Constructor

  - ### Method Detail

    - #### setEmptyTag

          protected static void setEmptyTag(String tag)

    - #### isEmptyTag

          protected static boolean isEmptyTag(String tag)

    - #### setEscapeNonAscii

          public void setEscapeNonAscii(Boolean escape)

      Say that all non-ASCII characters should be escaped, regardless of the character encoding
      Overrides:
        `setEscapeNonAscii` in class `XMLEmitter`
      Parameters:
        `escape` - true if all non ASCII characters should be escaped

    - #### isHTMLElement

          protected abstract boolean isHTMLElement(NodeName name)

      Decide whether an element is "serialized as an HTML element" in the language of the 3.0 specification
      Returns:
        true if the element

    - #### open

          public void open()
                    throws XPathException

      Output start of document
      Specified by:
        `open` in interface `Receiver`
      Overrides:
        `open` in class `XMLEmitter`
      Throws:
        `XPathException` - if an error occurs

    - #### openDocument

          protected void openDocument()
                               throws XPathException

      Description copied from class: `XMLEmitter`
      Do the real work of starting the document. This happens when the first content is written.
      Overrides:
        `openDocument` in class `XMLEmitter`
      Throws:
        `XPathException` - f an error occurs opening the output file

    - #### writeDocType

          protected void writeDocType(NodeName name,
                          String displayName,
                          String systemId,
                          String publicId)
                               throws XPathException

      Output the document type declaration
      Overrides:
        `writeDocType` in class `XMLEmitter`
      Parameters:
        `displayName` - The element name
        `systemId` - The DOCTYPE system identifier
        `publicId` - The DOCTYPE public identifier
        `name` - the qualified name of the element
      Throws:
        `XPathException` - if an error occurs writing to the output

    - #### startElement

          public void startElement(NodeName elemName,
                          SchemaType typeCode,
                          int locationId,
                          int properties)
                            throws XPathException

      Output element start tag
      Specified by:
        `startElement` in interface `Receiver`
      Overrides:
        `startElement` in class `XMLEmitter`
      Parameters:
        `elemName` - the name of the element.
        `typeCode` - the type annotation of the element.
        `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` - bit-significant properties of the element node. If there are no revelant properties, zero is supplied. The definitions of the bits are in class `ReceiverOptions`
      Throws:
        `XPathException` - if an error occurs

    - #### startContent

          public void startContent()
                            throws XPathException

      Description copied from interface: `Receiver`
      Notify the start of the content, that is, the completion of all attributes and namespaces. Note that the initial receiver of output from XSLT instructions will not receive this event, it has to detect it itself. Note that this event is reported for every element even if it has no attributes, no namespaces, and no content.
      Specified by:
        `startContent` in interface `Receiver`
      Overrides:
        `startContent` in class `XMLEmitter`
      Throws:
        `XPathException` - if an error occurs

    - #### writeAttribute

          protected void writeAttribute(NodeName elCode,
                            String attname,
                            CharSequence value,
                            int properties)
                                 throws XPathException

      Write attribute name=value pair. Overrides the XML behaviour if the name and value are the same (we assume this is a boolean attribute to be minimised), or if the value is a URL.
      Overrides:
        `writeAttribute` in class `XMLEmitter`
      Parameters:
        `elCode` - The element name is not used in this version of the method, but is used in the HTML subclass.
        `attname` - The attribute name, which has already been validated to ensure it can be written in this encoding
        `value` - The value of the attribute
        `properties` - Any special properties of the attribute
      Throws:
        `XPathException` - if an error occurs

    - #### writeEscape

          protected void writeEscape(CharSequence chars,
                         boolean inAttribute)
                              throws IOException,
                                     XPathException

      Escape characters. Overrides the XML behaviour
      Overrides:
        `writeEscape` in class `XMLEmitter`
      Parameters:
        `chars` - The character sequence containing the string
        `inAttribute` - Set to true if the text is in an attribute value
      Throws:
        `IOException`
        `XPathException`

    - #### endElement

          public void endElement()
                          throws XPathException

      Output an element end tag.
      Specified by:
        `endElement` in interface `Receiver`
      Overrides:
        `endElement` in class `XMLEmitter`
      Throws:
        `XPathException` - if an error occurs

    - #### characters

          public void characters(CharSequence chars,
                        int locationId,
                        int properties)
                          throws XPathException

      Character data.
      Specified by:
        `characters` in interface `Receiver`
      Overrides:
        `characters` in class `XMLEmitter`
      Parameters:
        `chars` - The characters
        `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` - Bit significant value. The following bits are defined:
      DISABLE_ESCAPING
        Disable escaping for this text node
      USE_CDATA
        Output as a CDATA section
      Throws:
        `XPathException` - if an error occurs

    - #### processingInstruction

          public void processingInstruction(String target,
                                   CharSequence data,
                                   int locationId,
                                   int properties)
                                     throws XPathException

      Handle a processing instruction.
      Specified by:
        `processingInstruction` in interface `Receiver`
      Overrides:
        `processingInstruction` in class `XMLEmitter`
      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.
      Throws:
        `XPathException` - if an error occurs

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.