org.apache.xalan.xsltc.runtime

## Class StringValueHandler

- java.lang.Object
- - org.apache.xml.serializer.EmptySerializer
  - - org.apache.xalan.xsltc.runtime.StringValueHandler

All Implemented Interfaces:
  DOMSerializer, ExtendedContentHandler, ExtendedLexicalHandler, SerializationHandler, Serializer, ContentHandler, DTDHandler, ErrorHandler, DeclHandler, LexicalHandler

    public final class StringValueHandler
    extends EmptySerializer

Author:
  Jacek Ambroziak, Santiago Pericas-Geertsen, Morten Jorgensen

### Field Summary

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

`HTML_ATTREMPTY, HTML_ATTRURL, NO_BAD_CHARS`

### Constructor Summary

Constructors
Constructor and Description
`StringValueHandler()`

### Method Summary

Methods
`void` `characters(char[] ch, int off, int len)` Receive notification of character data.
`void` `characters(java.lang.String characters)` This method is used to notify of a character event, but passing the data as a character String rather than the standard character array.
`void` `endElement(java.lang.String qname)` This method is used to notify that an element has ended.
`java.lang.String` `getValue()`
`java.lang.String` `getValueOfPI()` The value of a PI must not contain the substring "?
`boolean` `setEscaping(boolean bool)` Turns special character escaping on/off.
`void` `startElement(java.lang.String qname)` This method is used to notify of the start of an element

### Methods inherited from class org.apache.xml.serializer.EmptySerializer

`addAttribute, addAttribute, addAttribute, addAttributes, addUniqueAttribute, addXSLAttribute, asContentHandler, asDOM3Serializer, asDOMSerializer, attributeDecl, characters, close, comment, comment, elementDecl, endCDATA, endDocument, endDTD, endElement, endEntity, endPrefixMapping, entityReference, error, externalEntityDecl, fatalError, flushPending, getDoctypePublic, getDoctypeSystem, getEncoding, getIndent, getIndentAmount, getMediaType, getNamespaceMappings, getNamespaceURI, getNamespaceURIFromPrefix, getOmitXMLDeclaration, getOutputFormat, getOutputProperty, getOutputPropertyDefault, getOutputStream, getPrefix, getStandalone, getTransformer, getVersion, getWriter, ignorableWhitespace, internalEntityDecl, namespaceAfterStartElement, notationDecl, processingInstruction, reset, serialize, setCdataSectionElements, setCdataSectionElements, setContentHandler, setDoctype, setDoctypePublic, setDoctypeSystem, setDocumentLocator, setDTDEntityExpansion, setEncoding, setIndent, setIndentAmount, setMediaType, setNamespaceMappings, setOmitXMLDeclaration, setOutputFormat, setOutputProperty, setOutputPropertyDefault, setOutputStream, setSourceLocator, setStandalone, setTransformer, setVersion, setWriter, skippedEntity, startCDATA, startDocument, startDTD, startElement, startElement, startEntity, startPrefixMapping, startPrefixMapping, unparsedEntityDecl, warning`

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

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

### Constructor Detail

#### StringValueHandler

    public StringValueHandler()

### Method Detail

#### characters

    public void characters(char[] ch,
                  int off,
                  int len)
                    throws SAXException

Description copied from interface: `ContentHandler`
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.

Individual characters may consist of more than one Java `char` value. There are two important cases where this happens, because characters can't be represented in just sixteen bits. In one case, characters are represented in a Surrogate Pair, using two special Unicode values. Such characters are in the so-called "Astral Planes", with a code point above U+FFFF. A second case involves composite characters, such as a base character combining with one or more accent characters.

Your code should not assume that algorithms using `char`-at-a-time idioms will be working in character units; in some cases they will split characters. This is relevant wherever XML permits arbitrary characters, such as attribute values, processing instruction data, and comments as well as in data reported from this method. It's also generally relevant whenever Java code manipulates internationalized text; the issue isn't unique to XML.

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

Specified by:
  `characters` in interface `ContentHandler`
Overrides:
  `characters` in class `EmptySerializer`
Parameters:
  `ch` - the characters from the XML document
  `off` - the start position in the array
  `len` - the number of characters to read from the array
Throws:
  `SAXException` - any SAX exception, possibly wrapping another exception
See Also:
  `ContentHandler.characters(char[], int, int)`

#### getValue

    public java.lang.String getValue()

#### characters

    public void characters(java.lang.String characters)
                    throws SAXException

Description copied from interface: `ExtendedContentHandler`
This method is used to notify of a character event, but passing the data as a character String rather than the standard character array.

Specified by:
  `characters` in interface `ExtendedContentHandler`
Overrides:
  `characters` in class `EmptySerializer`
Parameters:
  `characters` - the character data
Throws:
  `SAXException`
See Also:
  `ExtendedContentHandler.characters(java.lang.String)`

#### startElement

    public void startElement(java.lang.String qname)
                      throws SAXException

Description copied from interface: `ExtendedContentHandler`
This method is used to notify of the start of an element

Specified by:
  `startElement` in interface `ExtendedContentHandler`
Overrides:
  `startElement` in class `EmptySerializer`
Parameters:
  `qname` - the fully qualified name of the element
Throws:
  `SAXException`
See Also:
  `ExtendedContentHandler.startElement(java.lang.String)`

#### endElement

    public void endElement(java.lang.String qname)
                    throws SAXException

Description copied from interface: `ExtendedContentHandler`
This method is used to notify that an element has ended. Unlike the standard SAX method

     endElement(namespaceURI,localName,qName)

only the last parameter is passed. If needed the serializer can derive the localName from the qualified name and derive the namespaceURI from its implementation.

Specified by:
  `endElement` in interface `ExtendedContentHandler`
Overrides:
  `endElement` in class `EmptySerializer`
Parameters:
  `qname` - the fully qualified element name.
Throws:
  `SAXException`
See Also:
  `ExtendedContentHandler.endElement(java.lang.String)`

#### setEscaping

    public boolean setEscaping(boolean bool)

Description copied from interface: `SerializationHandler`
Turns special character escaping on/off. Note that characters will never, even if this option is set to 'true', be escaped within CDATA sections in output XML documents.

Specified by:
  `setEscaping` in interface `SerializationHandler`
Overrides:
  `setEscaping` in class `EmptySerializer`
Parameters:
  `bool` - true if escaping is to be set on.
See Also:
  `SerializationHandler.setEscaping(boolean)`

#### getValueOfPI

    public java.lang.String getValueOfPI()

The value of a PI must not contain the substring "?>". Should that substring be present, replace it by "? >".