## Xalan-C++ API Documentation

### The Xalan C++ XSLT Processor Version 1.7

Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members

# FormatterToXML Class Reference

FormatterToXML formats SAX-style events into XML. More...

`#include <FormatterToXML.hpp>`

Inheritance diagram for FormatterToXML

Collaboration diagram for FormatterToXML:

List of all members.

## Public Types

- typedef std::vector<bool> BoolStackType
- typedef std::vector<XalanDOMChar> DOMCharBufferType
- typedef std::vector<char> ByteBufferType
- enum eDummy {
  eDefaultIndentAmount = 0
  }

## Public Methods

- FormatterToXML ( Writer& writer, const XalanDOMString& version = XalanDOMString(), bool doIndent = false, int indent = eDefaultIndentAmount, const XalanDOMString& encoding = XalanDOMString(), const XalanDOMString& mediaType = XalanDOMString(), const XalanDOMString& doctypeSystem = XalanDOMString(), const XalanDOMString& doctypePublic = XalanDOMString(), bool xmlDecl = true, const XalanDOMString& standalone = XalanDOMString(), eFormat format = OUTPUT_METHOD_XML, bool fBufferData = true)
    Constructor for customized encoding and doctype. More...
- virtual ~FormatterToXML ()
- virtual void setDocumentLocator (const LocatorType* const locator)
- virtual void startDocument ()
- virtual void endDocument ()
- virtual void startElement ( const XMLCh* const name, AttributeListType& attrs)
- virtual void endElement (const XMLCh* const name)
- virtual void characters ( const XMLCh* const chars, const unsigned int length)
- virtual void charactersRaw ( const XMLCh* const chars, const unsigned int length)
- virtual void entityReference (const XMLCh* const name)
    Receive notification of a entityReference. More...
- virtual void ignorableWhitespace ( const XMLCh* const chars, const unsigned int length)
- virtual void processingInstruction ( const XMLCh* const target, const XMLCh* const data)
- virtual void resetDocument ()
- virtual void comment (const XMLCh* const data)
    Called when a Comment is to be constructed. More...
- virtual void cdata ( const XMLCh* const ch, const unsigned int length)
- virtual Writer* getWriter () const
- virtual const XalanDOMString& getDoctypeSystem () const
- virtual const XalanDOMString& getDoctypePublic () const
- virtual const XalanDOMString& getEncoding () const
- virtual const XalanDOMString& getMediaType () const
- virtual int getIndent () const
- const XalanDOMString& getVersion () const
- const XalanDOMString& getStandalone () const
- bool getShouldWriteXMLHeader () const
- void setShouldWriteXMLHeader (bool b)
- bool getStripCData () const
- void setStripCData (bool b)
- bool getEscapeCData () const
- void setEscapeCData (bool b)
- bool getDoIndent () const
- void setDoIndent (bool value)
- void setIndent (int value)

## Protected Types

- typedef void (FormatterToXML::* AccumCharFunctionType )(XalanDOMChar)
- typedef void (FormatterToXML::* AccumStringFunctionType )(const XalanDOMChar*)
- typedef void (FormatterToXML::* AccumDOMStringFunctionType )(const XalanDOMString&)
- typedef void (FormatterToXML::* AccumArrayFunctionType )( const XalanDOMChar[], XalanDOMString::size_type, XalanDOMString::size_type)
- typedef void (FormatterToXML::* FlushFunctionType )()
- enum eDummyTwo {
  SPECIALSSIZE = 256
  }

## Protected Methods

- void outputLineSep ()
    Output a line break.
- void accumName (XalanDOMChar ch)
    Append a wide character to the buffer. More...
- void accumContent (XalanDOMChar ch)
    Append a wide character to the buffer. More...
- void accumName (const XalanDOMChar* chars)
    Append a null-terminated array of wide characters to the buffer. More...
- void accumContent (const XalanDOMChar* chars)
    Append a null-terminated array of wide characters to the buffer. More...
- void accumName ( const XalanDOMChar chars[], XalanDOMString::size_type start, XalanDOMString::size_type length)
    Append an array of wide character to the buffer. More...
- void accumContent ( const XalanDOMChar chars[], XalanDOMString::size_type start, XalanDOMString::size_type length)
    Append an array of wide character to the buffer. More...
- void accumName (const XalanDOMString& str)
    Append a string to the buffer. More...
- void accumContent (const XalanDOMString& str)
    Append a string to the buffer. More...
- XalanDOMString::size_type accumDefaultEscape ( XalanDOMChar ch, XalanDOMString::size_type i, const XalanDOMChar chars[], XalanDOMString::size_type len, bool escLF)
    Escape and accum a character.
- virtual bool accumDefaultEntity ( XalanDOMChar ch, bool escLF)
    Handle one of the default entities, return false if it is not a default entity.
- void initAttrCharsMap ()
    Set the attribute characters what will require special mapping.
- void initCharsMap ()
    Set the output characters what will require special mapping.
- void flushChars ()
    Flush the char buffer.
- void flushBytes ()
    Flush the byte buffer.
- void flushWriter ()
- void openElementForChildren ()
- bool childNodesWereAdded ()
- bool shouldIndent () const
- void writeParentTagEnd ()
    Check to see if a parent's ">" has been written, and, if it has not, write it.
- void indent (int n)
    Prints a newline character and n spaces. More...
- virtual void writeNormalizedChars ( const XalanDOMChar ch[], XalanDOMString::size_type start, XalanDOMString::size_type length, bool isCData)
    Write normalized characters to the writer. More...
- void writeNumberedEntityReference (unsigned long theNumber)
    Write a number into the buffer as an entity reference. More...
- virtual void writeAttrString ( const XalanDOMChar* theString, XalanDOMString::size_type theStringLength)
    Write an attribute string. More...
- virtual void accumCommentData (const XalanDOMChar* data)
    Write the data for a comment. More...

## Protected Attributes

- Writer* const m_writer
    The writer where the XML will be written.
- XalanOutputStream* const m_stream
    The stream where the XML will be written.
- XalanDOMChar m_maxCharacter
    The maximum character size before we have to resort to escaping.
- XalanDOMChar m_attrCharsMap [SPECIALSSIZE]
- XalanDOMChar m_charsMap [SPECIALSSIZE]
- bool m_shouldWriteXMLHeader
    If true, XML header should be written to output.
- bool m_ispreserve
    State flag to tell if preservation of whitespace is important.
- bool m_doIndent
    Flag to tell if indenting (pretty-printing) is on.
- bool m_startNewLine
    Flag to signal that a newline should be added.
- bool m_needToOutputDocTypeDecl
    Flag to tell that we need to add the doctype decl, which we can't do until the first element is encountered.
- bool m_isprevtext
    State flag that tells if the previous node processed was text, so we can tell if we should preserve whitespace.
- bool m_stripCData
    If true, cdata sections are simply stripped of their CDATA brackets, without escaping.
- bool m_nextIsRaw
    Tell if the next text should be raw.
- bool m_inCData
    Tells if we're in CData section.
- bool m_encodingIsUTF
    Flag to quickly tell if the encoding is capable of full Unicode support.
- const XalanDOMString m_doctypeSystem
    The System ID for the doc type.
- const XalanDOMString m_doctypePublic
    The public ID for the doc type.
- XalanDOMString m_encoding
    The character encoding.
- int m_currentIndent
    Flag to keep track of the indent amount.
- int m_indent
    Amount to indent.
- BoolStackType m_preserves
    Stack to keep track of whether or not we need to preserve whitespace.
- XalanDOMString m_stringBuffer

## Static Protected Methods

- void throwInvalidUTF16SurrogateException (XalanDOMChar ch)
    Throw an exception when an invalid surrogate is encountered. More...
- void throwInvalidUTF16SurrogateException ( XalanDOMChar ch, XalanDOMChar next)
    Throw an exception when an invalid surrogate is encountered. More...
- bool isUTF16Surrogate (XalanDOMChar ch)

## Detailed Description

FormatterToXML formats SAX-style events into XML.

## Member Typedef Documentation

typedef void (FormatterToXML::* FormatterToXML::AccumArrayFunctionType)( const XalanDOMChar[], XalanDOMString::size_type, XalanDOMString::size_type)`[protected]`

typedef void (FormatterToXML::* FormatterToXML::AccumCharFunctionType)(XalanDOMChar)`[protected]`

typedef void (FormatterToXML::* FormatterToXML::AccumDOMStringFunctionType)(const XalanDOMString&)`[protected]`

typedef void (FormatterToXML::* FormatterToXML::AccumStringFunctionType)(const XalanDOMChar*)`[protected]`

typedef std::vector<bool> FormatterToXML::BoolStackType

typedef std::vector<char> FormatterToXML::ByteBufferType

typedef std::vector<XalanDOMChar> FormatterToXML::DOMCharBufferType

typedef void (FormatterToXML::* FormatterToXML::FlushFunctionType)()`[protected]`

## Member Enumeration Documentation

enum FormatterToXML::eDummy

Enumeration values:

  eDefaultIndentAmount |

enum FormatterToXML::eDummyTwo`[protected]`

Enumeration values:

  SPECIALSSIZE |

## Constructor & Destructor Documentation

FormatterToXML::FormatterToXML ( | Writer & writer,
| const XalanDOMString & version = XalanDOMString(),
| bool doIndent = false,
| int indent = eDefaultIndentAmount,
| const XalanDOMString & encoding = XalanDOMString(),
| const XalanDOMString & mediaType = XalanDOMString(),
| const XalanDOMString & doctypeSystem = XalanDOMString(),
| const XalanDOMString & doctypePublic = XalanDOMString(),
| bool xmlDecl = true,
| const XalanDOMString & standalone = XalanDOMString(),
| eFormat format = OUTPUT_METHOD_XML,
| bool fBufferData = true )

Constructor for customized encoding and doctype.

Parameters:

  writer | character output stream to use
  version | version of the output method
  doIndent | true if output is to be indented
  indent | number of spaces to indent at each nesting level
  encoding | character encoding in use by writer
  mediaType | media type (MIME content type) of the data
  doctypeSystem | system identifier to be used in the document type declaration
  doctypePublic | public identifier to be used in the document type declaration
  xmlDecl | true if the XSLT processor should output an XML declaration
  standalone | true if the XSLT processor should output a standalone document declaration
  format | should be used only by derived classes.
  fBufferData | If true, data will be buffered in the formatter

virtual FormatterToXML::~FormatterToXML ( | )`[virtual]`

## Member Function Documentation

void FormatterToXML::accumCommentData ( | const XalanDOMChar * data )`[protected, virtual]`

Write the data for a comment.

Parameters:

  data | The comment's data.

Reimplemented in FormatterToHTML.

void FormatterToXML::accumContent ( | const XalanDOMString & str )`[protected]`

Append a string to the buffer.

Parameters:

  str | the string to append

void FormatterToXML::accumContent ( | const XalanDOMChar chars[],
| XalanDOMString::size_type start,
| XalanDOMString::size_type length )`[protected]`

Append an array of wide character to the buffer.

@chars the array to append @start the offset into the array to start from @length the number of characters to append

void FormatterToXML::accumContent ( | const XalanDOMChar * chars )`[protected]`

Append a null-terminated array of wide characters to the buffer.

@chars the array to append

void FormatterToXML::accumContent ( | XalanDOMChar ch )`[protected]`

Append a wide character to the buffer.

@ch the character to append.

bool FormatterToXML::accumDefaultEntity ( | XalanDOMChar ch,
| bool escLF )`[protected, virtual]`

Handle one of the default entities, return false if it is not a default entity.

Reimplemented in FormatterToHTML.

XalanDOMString::size_type FormatterToXML::accumDefaultEscape ( | XalanDOMChar ch,
| XalanDOMString::size_type i,
| const XalanDOMChar chars[],
| XalanDOMString::size_type len,
| bool escLF )`[protected]`

Escape and accum a character.

void FormatterToXML::accumName ( | const XalanDOMString & str )`[protected]`

Append a string to the buffer.

Characters that are not representable in the encoding are not written as entities.

Parameters:

  str | the string to append

void FormatterToXML::accumName ( | const XalanDOMChar chars[],
| XalanDOMString::size_type start,
| XalanDOMString::size_type length )`[protected]`

Append an array of wide character to the buffer.

Characters that are not representable in the encoding are not written as entities.

@chars the array to append @start the offset into the array to start from @length the number of characters to append

void FormatterToXML::accumName ( | const XalanDOMChar * chars )`[protected]`

Append a null-terminated array of wide characters to the buffer.

Characters that are not representable in the encoding are not written as entities.

@chars the array to append

void FormatterToXML::accumName ( | XalanDOMChar ch )`[protected]`

Append a wide character to the buffer.

Characters that are not representable in the encoding are not written as entities.

@ch the character to append.

virtual void FormatterToXML::cdata ( | const XMLCh *const ch,
| const unsigned int length )`[virtual]`

Reimplemented in FormatterToHTML.

virtual void FormatterToXML::characters ( | const XMLCh *const chars,
| const unsigned int length )`[virtual]`

Reimplemented in FormatterToHTML.

virtual void FormatterToXML::charactersRaw ( | const XMLCh *const chars,
| const unsigned int length )`[virtual]`

bool FormatterToXML::childNodesWereAdded ( | )`[protected]`

virtual void FormatterToXML::comment ( | const XMLCh *const data )`[virtual]`

Called when a Comment is to be constructed.

Parameters:

  data | pointer to comment data

Exceptions:

  SAXException |

Reimplemented from FormatterListener.

virtual void FormatterToXML::endDocument ( | )`[virtual]`

Reimplemented from FormatterListener.

Reimplemented in FormatterToHTML.

virtual void FormatterToXML::endElement ( | const XMLCh *const name )`[virtual]`

Reimplemented from FormatterListener.

Reimplemented in FormatterToHTML.

virtual void FormatterToXML::entityReference ( | const XMLCh *const name )`[virtual]`

Receive notification of a entityReference.

Parameters:

  data | pointer to characters from the XML document

Exceptions:

  SAXException |

Reimplemented from FormatterListener.

Reimplemented in FormatterToHTML.

void FormatterToXML::flushBytes ( | )`[protected]`

Flush the byte buffer.

void FormatterToXML::flushChars ( | )`[protected]`

Flush the char buffer.

void FormatterToXML::flushWriter ( | )`[protected]`

bool FormatterToXML::getDoIndent ( | ) const`[]`

virtual const XalanDOMString& FormatterToXML::getDoctypePublic ( | ) const`[virtual]`

Reimplemented from FormatterListener.

virtual const XalanDOMString& FormatterToXML::getDoctypeSystem ( | ) const`[virtual]`

Reimplemented from FormatterListener.

virtual const XalanDOMString& FormatterToXML::getEncoding ( | ) const`[virtual]`

Reimplemented from FormatterListener.

bool FormatterToXML::getEscapeCData ( | ) const`[]`

virtual int FormatterToXML::getIndent ( | ) const`[virtual]`

Reimplemented from FormatterListener.

virtual const XalanDOMString& FormatterToXML::getMediaType ( | ) const`[virtual]`

Reimplemented from FormatterListener.

bool FormatterToXML::getShouldWriteXMLHeader ( | ) const`[]`

const XalanDOMString & FormatterToXML::getStandalone ( | ) const`[]`

bool FormatterToXML::getStripCData ( | ) const`[]`

const XalanDOMString & FormatterToXML::getVersion ( | ) const`[]`

virtual Writer* FormatterToXML::getWriter ( | ) const`[virtual]`

Reimplemented from FormatterListener.

virtual void FormatterToXML::ignorableWhitespace ( | const XMLCh *const chars,
| const unsigned int length )`[virtual]`

void FormatterToXML::indent ( | int n )`[protected]`

Prints a newline character and n spaces.

Parameters:

  n | Number of spaces to print.

void FormatterToXML::initAttrCharsMap ( | )`[protected]`

Set the attribute characters what will require special mapping.

void FormatterToXML::initCharsMap ( | )`[protected]`

Set the output characters what will require special mapping.

bool FormatterToXML::isUTF16Surrogate ( | XalanDOMChar ch )`[static, protected]`

void FormatterToXML::openElementForChildren ( | )`[protected]`

void FormatterToXML::outputLineSep ( | )`[protected]`

Output a line break.

virtual void FormatterToXML::processingInstruction ( | const XMLCh *const target,
| const XMLCh *const data )`[virtual]`

Reimplemented from FormatterListener.

Reimplemented in FormatterToHTML.

virtual void FormatterToXML::resetDocument ( | )`[virtual]`

Reimplemented from FormatterListener.

void FormatterToXML::setDoIndent ( | bool value )`[]`

virtual void FormatterToXML::setDocumentLocator ( | const LocatorType *const locator )`[virtual]`

Reimplemented from FormatterListener.

void FormatterToXML::setEscapeCData ( | bool b )`[]`

void FormatterToXML::setIndent ( | int value )`[]`

void FormatterToXML::setShouldWriteXMLHeader ( | bool b )`[]`

void FormatterToXML::setStripCData ( | bool b )`[]`

bool FormatterToXML::shouldIndent ( | ) const`[protected]`

virtual void FormatterToXML::startDocument ( | )`[virtual]`

Reimplemented from FormatterListener.

Reimplemented in FormatterToHTML.

virtual void FormatterToXML::startElement ( | const XMLCh *const name,
| AttributeListType & attrs )`[virtual]`

Reimplemented from FormatterListener.

Reimplemented in FormatterToHTML.

void FormatterToXML::throwInvalidUTF16SurrogateException ( | XalanDOMChar ch,
| XalanDOMChar next )`[static, protected]`

Throw an exception when an invalid surrogate is encountered.

Parameters:

  ch | The first character in the surrogate
  next | The next character in the surrogate

void FormatterToXML::throwInvalidUTF16SurrogateException ( | XalanDOMChar ch )`[static, protected]`

Throw an exception when an invalid surrogate is encountered.

Parameters:

  ch | The first character in the surrogate

void FormatterToXML::writeAttrString ( | const XalanDOMChar * theString,
| XalanDOMString::size_type theStringLength )`[protected, virtual]`

Write an attribute string.

Parameters:

  theString | The string to write.
  theStringLength | The length of the string.

Reimplemented in FormatterToHTML.

void FormatterToXML::writeNormalizedChars ( | const XalanDOMChar ch[],
| XalanDOMString::size_type start,
| XalanDOMString::size_type length,
| bool isCData )`[protected, virtual]`

Write normalized characters to the writer.

Parameters:

  ch | the string to write.
  start | the start offset into the string.
  length | the length of the string.
  isCData | true if writing CDATA.

void FormatterToXML::writeNumberedEntityReference ( | unsigned long theNumber )`[protected]`

Write a number into the buffer as an entity reference.

Parameters:

  theNumber | the number to write.

void FormatterToXML::writeParentTagEnd ( | )`[protected]`

Check to see if a parent's ">" has been written, and, if it has not, write it.

## Member Data Documentation

XalanDOMChar FormatterToXML::m_attrCharsMap[SPECIALSSIZE]`[protected]`

XalanDOMChar FormatterToXML::m_charsMap[SPECIALSSIZE]`[protected]`

int FormatterToXML::m_currentIndent`[protected]`

Flag to keep track of the indent amount.

bool FormatterToXML::m_doIndent`[protected]`

Flag to tell if indenting (pretty-printing) is on.

const XalanDOMString FormatterToXML::m_doctypePublic`[protected]`

The public ID for the doc type.

const XalanDOMString FormatterToXML::m_doctypeSystem`[protected]`

The System ID for the doc type.

XalanDOMString FormatterToXML::m_encoding`[protected]`

The character encoding.

bool FormatterToXML::m_encodingIsUTF`[protected]`

Flag to quickly tell if the encoding is capable of full Unicode support.

bool FormatterToXML::m_inCData`[protected]`

Tells if we're in CData section.

int FormatterToXML::m_indent`[protected]`

Amount to indent.

bool FormatterToXML::m_ispreserve`[protected]`

State flag to tell if preservation of whitespace is important.

bool FormatterToXML::m_isprevtext`[protected]`

State flag that tells if the previous node processed was text, so we can tell if we should preserve whitespace.

XalanDOMChar FormatterToXML::m_maxCharacter`[protected]`

The maximum character size before we have to resort to escaping.

bool FormatterToXML::m_needToOutputDocTypeDecl`[protected]`

Flag to tell that we need to add the doctype decl, which we can't do until the first element is encountered.

bool FormatterToXML::m_nextIsRaw`[protected]`

Tell if the next text should be raw.

BoolStackType FormatterToXML::m_preserves`[protected]`

Stack to keep track of whether or not we need to preserve whitespace.

bool FormatterToXML::m_shouldWriteXMLHeader`[protected]`

If true, XML header should be written to output.

bool FormatterToXML::m_startNewLine`[protected]`

Flag to signal that a newline should be added.

XalanOutputStream *const FormatterToXML::m_stream`[protected]`

The stream where the XML will be written.

XalanDOMString FormatterToXML::m_stringBuffer`[protected]`

bool FormatterToXML::m_stripCData`[protected]`

If true, cdata sections are simply stripped of their CDATA brackets, without escaping.

Writer *const FormatterToXML::m_writer`[protected]`

The writer where the XML will be written.

The documentation for this class was generated from the following file:

- FormatterToXML.hpp

Interpreting class diagrams

Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.

Xalan-C++ XSLT Processor Version 1.7 Copyright © 1999-2004 The Apache Software Foundation. All Rights Reserved.