Format XML tags, attributes, and data with indentation and wrapping.

Synopsis

Declared in <balxml_formatter.h>

class Formatter;

Description

This class provides a set of XML‐style formatting utilities that enable transparent indentation and wrapping for users attempting to format data with XML tags and attributes. A formatter object is instantiated with a pointer to an output stream or streambuf. Users can then use the provided utilities to write element tags, attributes, data in a valid XML sequence into the underlying stream.

This class has no features that would impair thread safety. However, it does not mediate between two threads attempting to access the same stream.

Type Aliases

Name

Description

WhitespaceType

WhitespaceType describes options available when outputting textual data of an element between its pair of opening and closing tags.

Member Functions

Name

Description

Formatter [constructor]

Constructors

addAttribute

Add an attribute of the specified name and value to the currently open element.

addBlankLine

Insert newline characters into the output stream such that a blank line results.

addComment

Write the specified comment into the stream.

addData

Add the specified value as the data content of the current element.

addElementAndData

Add an element of the specified name containing the specified value.

addHeader

Add an XML declaration header with the optionally specified encoding.

addListData

Add the specified value as space‐separated list data content.

addNewline

Insert a literal newline into the XML output. If following a call to openElement, or addAttribute, add a closing > to the opened tag.

addValidComment

Write the specified comment into the stream.

closeElement

Close the most recently opened element of the specified name.

encoderOptions

Return the encoder options being used.

flush

Insert the closing > if there is an incomplete tag, and flush the output stream.

indentLevel

Return the current level of indentation.

openElement

Open an element of the specified name.

outputColumn

Return the current column position where the next output starts.

rawOutputStream

Return a reference to the underlying output stream.

reset

Reset the formatter such that it can be used to format a new XML document as if the formatter were just constructed

spacesPerLevel

Return the number of spaces per indentation level.

status

Return 0 if no errors have been detected since construction or since the last call to reset, otherwise return a negative value.

wrapColumn

Return the line width where line‐wrapping takes place.

Static Data Members

Name

Description

BAEXML_NEWLINE_INDENT

Deprecated alias for e_NEWLINE_INDENT.

e_NEWLINE_INDENT

In addition to wrapping and indentation, place tags and data on separate lines.

e_PRESERVE_WHITESPACE

Preserve whitespace in element text; data is output as‐is.

e_WORDWRAP

Wrap long lines when output would otherwise exceed the wrap column.

e_WORDWRAP_INDENT

Wrap long lines and indent continuation lines after wrapping.

Created with MrDocs