BloombergLP::balxml::Formatter_CompactImplUtil::addAttribute

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

Synopsis

Declared in <balxml_formatter_compactimpl.h>

template<class VALUE_TYPE>
static
std::ostream&
addAttribute(
    std::ostream& stream,
    State* state,
    std::string_view const& name,
    VALUE_TYPE const& value,
    int valueFormattingMode = 0,
    EncoderOptions const& encoderOptions = EncoderOptions());

Description

Formatting depends on the specified state, which is updated accordingly. Return the stream. value can be of the following types: char, short, int, bsls::Types::Int64, float, double, bsl::string, bdlt::Datetime, bdlt::Date, and bdlt::Time. Precede this name="value" pair with a single space. Wrap line (write the attribute on next line with proper indentation), if the length of name="value" is too long. Optionally specify a valueFormattingMode and encoderOptions to control the formatting of value. If value is of type bsl::string, it is truncated at any invalid UTF-8 byte-sequence or any control character. The list of invalid control characters includes characters in the range [0x00, 0x20)] and 0x7F (DEL) but does not include 0x9, 0xA, and 0x0D. The five special characters: apostrophe, double quote, ampersand, less than, and greater than are escaped in the output XML. If value is of type char, it is cast to a signed byte value with a range [ -128 .. 127 ]. The behavior is undefined unless the last manipulator was openElement or addAttribute.

Return Value

a reference to the modifiable stream

Parameters

NameDescription
streamoutput stream
stateformatter state to consult and update
nameattribute name
valueattribute value
valueFormattingModeoptional formatting mode for value
encoderOptionsoptional encoder options for value