libxml++ 5.6.1

Public Types | Public Member Functions | Protected Types | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
xmlpp::Parser Class Referenceabstract

XML parser. More...

`#include <libxml++/parsers/parser.h>`

Inheritance diagram for xmlpp::Parser:
[legend]

## Public Types
using | size_type = unsigned int

## Public Member Functions
| Parser ()
| ~Parser () override
bool | get_include_default_attributes () const noexcept
| See set_include_default_attributes().
void | get_parser_options (int & set_options, int & clear_options) const noexcept
| See set_parser_options().
bool | get_substitute_entities () const noexcept
| See set_substitute_entities().
bool | get_throw_messages () const noexcept
| See set_throw_messages().
bool | get_validate () const noexcept
| See set_validate().
virtual void | parse_file (const std::string & filename)=0
| Parse an XML document from a file.
virtual void | parse_memory (const ustring & contents)=0
| Parse an XML document from a string.
virtual void | parse_memory_raw (const unsigned char * contents, size_type bytes_count)=0
| Parse an XML document from raw memory.
virtual void | parse_stream (std::istream & in)=0
| Parse an XML document from a stream.
void | set_include_default_attributes (bool val=true) noexcept
| Set whether default attribute values from the DTD shall be included in the node tree.
void | set_parser_options (int set_options=0, int clear_options=0) noexcept
| Set and/or clear parser option flags.
void | set_substitute_entities (bool val=true) noexcept
| Set whether the parser will automatically substitute entity references with the text of the entities' definitions.
void | set_throw_messages (bool val=true) noexcept
| Set whether the parser will collect and throw error and warning messages.
void | set_validate (bool val=true) noexcept
| By default, the parser will not validate the XML file.
Public Member Functions inherited from xmlpp::NonCopyable
| NonCopyable (const NonCopyable &)=delete
| NonCopyable (NonCopyable &&)=delete
NonCopyable & | operator= (const NonCopyable &)=delete
NonCopyable & | operator= (NonCopyable &&)=delete

## Protected Types
enum class | MsgType { ParserError , ParserWarning , ValidityError , ValidityWarning }

## Protected Member Functions
virtual void | check_for_error_and_warning_messages ()
virtual void | check_for_exception ()
virtual void | handle_exception ()
| To be called in an exception handler.
virtual void | initialize_context ()
virtual void | on_parser_error (const ustring & message)
virtual void | on_parser_warning (const ustring & message)
virtual void | on_validity_error (const ustring & message)
virtual void | on_validity_warning (const ustring & message)
virtual void | release_underlying ()
Protected Member Functions inherited from xmlpp::NonCopyable
| NonCopyable () noexcept
virtual | ~NonCopyable ()

## Static Protected Member Functions
static void | callback_error_or_warning (bool is_parser, bool is_error, void * ctx, const char * msg, va_list var_args)
static void | callback_error_or_warning (MsgType msg_type, void * ctx, const char * msg, va_list var_args)
static void | callback_parser_error (void * ctx, const char * msg,...)
static void | callback_parser_warning (void * ctx, const char * msg,...)
static void | callback_validity_error (void * ctx, const char * msg,...)
static void | callback_validity_warning (void * ctx, const char * msg,...)
static ParserCallbackCFuncType | get_callback_parser_error_cfunc ()
static ParserCallbackCFuncType | get_callback_parser_warning_cfunc ()
static ParserCallbackCFuncType | get_callback_validity_error_cfunc ()
static ParserCallbackCFuncType | get_callback_validity_warning_cfunc ()

## Protected Attributes
_xmlParserCtxt * | context_
std::unique_ptr< exception > | exception_

## Detailed Description

XML parser.

Abstract base class for DOM parser and SAX parser.

## Member Typedef Documentation

## ◆ size_type

using xmlpp::Parser::size_type = unsigned int

## Member Enumeration Documentation

## ◆ MsgType

enum class xmlpp::Parser::MsgType
| strong protected

Deprecated

Enumerator
ParserError |
ParserWarning |
ValidityError |
ValidityWarning |

## Constructor & Destructor Documentation

## ◆ Parser()

xmlpp::Parser::Parser | ( |  | ) |

## ◆ ~Parser()

xmlpp::Parser::~Parser | ( |  | ) |
| override

## Member Function Documentation

## ◆ callback_error_or_warning() [1/2]

void xmlpp::Parser::callback_error_or_warning | ( | bool | is_parser,
|  | bool | is_error,
|  | void * | ctx,
|  | const char * | msg,
|  | va_list | var_args )
| static protected

Since libxml++ 5.2

## ◆ callback_error_or_warning() [2/2]

void xmlpp::Parser::callback_error_or_warning | ( | MsgType | msg_type,
|  | void * | ctx,
|  | const char * | msg,
|  | va_list | var_args )
| static protected

Deprecated
  Use the other callback_error_or_warning() overload instead.

## ◆ callback_parser_error()

void xmlpp::Parser::callback_parser_error | ( | void * | ctx,
|  | const char * | msg,
|  |  | ... )
| static protected

Deprecated
  Use get_callback_parser_error_cfunc() instead.

## ◆ callback_parser_warning()

void xmlpp::Parser::callback_parser_warning | ( | void * | ctx,
|  | const char * | msg,
|  |  | ... )
| static protected

Deprecated
  Use get_callback_parser_warning_cfunc() instead.

## ◆ callback_validity_error()

void xmlpp::Parser::callback_validity_error | ( | void * | ctx,
|  | const char * | msg,
|  |  | ... )
| static protected

Deprecated
  Use get_callback_validity_error_cfunc() instead.

## ◆ callback_validity_warning()

void xmlpp::Parser::callback_validity_warning | ( | void * | ctx,
|  | const char * | msg,
|  |  | ... )
| static protected

Deprecated
  Use get_callback_validity_warning_cfunc() instead.

## ◆ check_for_error_and_warning_messages()

virtual void xmlpp::Parser::check_for_error_and_warning_messages | ( |  | ) |
| protected virtual

## ◆ check_for_exception()

virtual void xmlpp::Parser::check_for_exception | ( |  | ) |
| protected virtual

## ◆ get_callback_parser_error_cfunc()

ParserCallbackCFuncType xmlpp::Parser::get_callback_parser_error_cfunc | ( |  | ) |
| static protected

Since libxml++ 5.2

## ◆ get_callback_parser_warning_cfunc()

ParserCallbackCFuncType xmlpp::Parser::get_callback_parser_warning_cfunc | ( |  | ) |
| static protected

Since libxml++ 5.2

## ◆ get_callback_validity_error_cfunc()

ParserCallbackCFuncType xmlpp::Parser::get_callback_validity_error_cfunc | ( |  | ) |
| static protected

Since libxml++ 5.2

## ◆ get_callback_validity_warning_cfunc()

ParserCallbackCFuncType xmlpp::Parser::get_callback_validity_warning_cfunc | ( |  | ) |
| static protected

Since libxml++ 5.2

## ◆ get_include_default_attributes()

bool xmlpp::Parser::get_include_default_attributes | ( |  | ) | const
| noexcept

See set_include_default_attributes().

Since libxml++ 2.38

Returns
  Whether attributes with default values will be included in the node tree.

## ◆ get_parser_options()

void xmlpp::Parser::get_parser_options | ( | int & | set_options,
|  | int & | clear_options ) const
| noexcept

See set_parser_options().

Since libxml++ 2.38

Parameters

  [out] | set_options | Set bits correspond to flags that shall be set during parsing.
  [out] | clear_options | Set bits correspond to flags that shall be cleared during parsing. Bits that are set in neither set_options nor clear_options are not affected.

## ◆ get_substitute_entities()

bool xmlpp::Parser::get_substitute_entities | ( |  | ) | const
| noexcept

See set_substitute_entities().

Returns
  Whether entities will be substituted during parsing.

## ◆ get_throw_messages()

bool xmlpp::Parser::get_throw_messages | ( |  | ) | const
| noexcept

See set_throw_messages().

Since libxml++ 2.36

Returns
  Whether messages will be collected and thrown in an exception.

## ◆ get_validate()

bool xmlpp::Parser::get_validate | ( |  | ) | const
| noexcept

See set_validate().

Returns
  Whether the parser will validate the XML file.

## ◆ handle_exception()

virtual void xmlpp::Parser::handle_exception | ( |  | ) |
| protected virtual

To be called in an exception handler.

## ◆ initialize_context()

virtual void xmlpp::Parser::initialize_context | ( |  | ) |
| protected virtual

Reimplemented in xmlpp::SaxParser.

## ◆ on_parser_error()

virtual void xmlpp::Parser::on_parser_error | ( | const ustring & | message | ) |
| protected virtual

## ◆ on_parser_warning()

virtual void xmlpp::Parser::on_parser_warning | ( | const ustring & | message | ) |
| protected virtual

## ◆ on_validity_error()

virtual void xmlpp::Parser::on_validity_error | ( | const ustring & | message | ) |
| protected virtual

## ◆ on_validity_warning()

virtual void xmlpp::Parser::on_validity_warning | ( | const ustring & | message | ) |
| protected virtual

## ◆ parse_file()

virtual void xmlpp::Parser::parse_file | ( | const std::string & | filename | ) |
| pure virtual

Parse an XML document from a file.

Exceptions

  exception |

Parameters

  filename | The path to the file.

Implemented in xmlpp::DomParser, and xmlpp::SaxParser.

## ◆ parse_memory()

virtual void xmlpp::Parser::parse_memory | ( | const ustring & | contents | ) |
| pure virtual

Parse an XML document from a string.

Exceptions

  exception |

Parameters

  contents | The XML document as a string.

Implemented in xmlpp::DomParser, and xmlpp::SaxParser.

## ◆ parse_memory_raw()

virtual void xmlpp::Parser::parse_memory_raw | ( | const unsigned char * | contents,
|  | size_type | bytes_count )
| pure virtual

Parse an XML document from raw memory.

Exceptions

  exception |

Parameters

  contents | The XML document as an array of bytes.
  bytes_count | The number of bytes in the contents array.

Implemented in xmlpp::DomParser, and xmlpp::SaxParser.

## ◆ parse_stream()

virtual void xmlpp::Parser::parse_stream | ( | std::istream & | in | ) |
| pure virtual

Parse an XML document from a stream.

Exceptions

  exception |

Parameters

  in | The stream.

Implemented in xmlpp::DomParser, and xmlpp::SaxParser.

## ◆ release_underlying()

virtual void xmlpp::Parser::release_underlying | ( |  | ) |
| protected virtual

Reimplemented in xmlpp::DomParser, and xmlpp::SaxParser.

## ◆ set_include_default_attributes()

void xmlpp::Parser::set_include_default_attributes | ( | bool | val = true | ) |
| noexcept

Set whether default attribute values from the DTD shall be included in the node tree.

If set, attributes not assigned a value in the XML file, but with a default value in the DTD file, will be included in the node tree that the parser creates. These attributes will be represented by AttributeNode instances (not AttributeDeclaration instances), just like attributes which are assigned a value in the XML file.

Since libxml++ 2.38

Parameters

  val | Whether attributes with default values will be included in the node tree.

## ◆ set_parser_options()

void xmlpp::Parser::set_parser_options | ( | int | set_options = 0,
|  | int | clear_options = 0 )
| noexcept

Set and/or clear parser option flags.

See the libxml2 documentation, enum xmlParserOption, for a list of parser options. This method overrides other methods that set parser options, such as set_validate(), set_substitute_entities() and set_include_default_attributes(). Use set_parser_options() only if no other method can set the parser options you want.

Since libxml++ 2.38

Parameters

  set_options | Set bits correspond to flags that shall be set during parsing.
  clear_options | Set bits correspond to flags that shall be cleared during parsing. Bits that are set in neither set_options nor clear_options are not affected.

## ◆ set_substitute_entities()

void xmlpp::Parser::set_substitute_entities | ( | bool | val = true | ) |
| noexcept

Set whether the parser will automatically substitute entity references with the text of the entities' definitions.

For instance, this affects the text returned by ContentNode::get_content(). By default, the parser will not substitute entities, so that you do not lose the entity reference information.

Parameters

  val | Whether entities will be substitued.

## ◆ set_throw_messages()

void xmlpp::Parser::set_throw_messages | ( | bool | val = true | ) |
| noexcept

Set whether the parser will collect and throw error and warning messages.

If messages are collected, they are included in an exception thrown at the end of parsing.

- DOM parser

  If the messages are not collected, they are written on stderr. The messages written on stderr are slightly different, and may be preferred in a program started from the command-line. The default, if set_throw_messages() is not called, is to collect and throw messages.

- SAX parser

  If the messages are not collected, the error handling on_*() methods in the user's SAX parser subclass are called. This is the default, if set_throw_messages() is not called.

  Since libxml++ 2.36

Parameters

  val | Whether messages will be collected and thrown in an exception.

## ◆ set_validate()

void xmlpp::Parser::set_validate | ( | bool | val = true | ) |
| noexcept

By default, the parser will not validate the XML file.

Parameters

  val | Whether the document should be validated.

## Member Data Documentation

## ◆ context_

_xmlParserCtxt* xmlpp::Parser::context_
| protected

## ◆ exception_

std::unique_ptr<exception> xmlpp::Parser::exception_
| protected