BloombergLP::balxml::Formatter

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

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

Member Functions

NameDescription
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

NameDescription
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.