libxml++: xmlpp::RelaxNGValidator Class Reference

libxml++ 5.6.1

Public Member Functions | Protected Member Functions | List of all members
xmlpp::RelaxNGValidator Class Reference

RelaxNG schema validator. More...

`#include <libxml++/validators/relaxngvalidator.h>`

Inheritance diagram for xmlpp::RelaxNGValidator:
[legend]

## Public Member Functions
| RelaxNGValidator ()
| RelaxNGValidator (const Document * document)
| Create a validator and parse a schema definition document.
| RelaxNGValidator (const std::string & filename)
| Create a validator and parse a schema definition file.
| RelaxNGValidator (RelaxNGSchema * schema, bool take_ownership)
| Create a validator.
| ~RelaxNGValidator () override
const RelaxNGSchema * | get_schema () const noexcept
| Get the schema.
RelaxNGSchema * | get_schema () noexcept
| Get the schema.
| operator bool () const noexcept override
| Test whether a schema has been parsed.
void | parse_document (const Document * document) override
| Parse a schema definition from a document.
void | parse_file (const std::string & filename) override
| Parse a schema definition file.
void | parse_memory (const ustring & contents) override
| Parse a schema definition from a string.
void | set_schema (RelaxNGSchema * schema, bool take_ownership)
| Set a schema.
void | validate (const Document * document) override
| Validate a document, using a previously parsed schema.
void | validate (const std::string & filename) override
| Validate an XML file, using a previously parsed schema.
Public Member Functions inherited from xmlpp::SchemaValidatorBase
| SchemaValidatorBase () noexcept
| ~SchemaValidatorBase () override
Public Member Functions inherited from xmlpp::Validator
| Validator () noexcept
| ~Validator () override
Public Member Functions inherited from xmlpp::NonCopyable
| NonCopyable (const NonCopyable &)=delete
| NonCopyable (NonCopyable &&)=delete
NonCopyable & | operator= (const NonCopyable &)=delete
NonCopyable & | operator= (NonCopyable &&)=delete

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

## Additional Inherited Members
Static Protected Member Functions inherited from xmlpp::Validator
static void | callback_error_or_warning (bool error, void * ctx, const char * msg, va_list var_args)
static void | callback_validity_error (void * ctx, const char * msg,...)
static void | callback_validity_warning (void * ctx, const char * msg,...)
static ValidatorCallbackCFuncType | get_callback_validity_error_cfunc ()
static ValidatorCallbackCFuncType | get_callback_validity_warning_cfunc ()
Protected Attributes inherited from xmlpp::Validator
std::unique_ptr< exception > | exception_
ustring | validate_error_
ustring | validate_warning_

## Detailed Description

RelaxNG schema validator.

RelaxNG = REgular LAnguage for XML Next Generation

Since libxml++ 2.38

## Constructor & Destructor Documentation

## ◆ RelaxNGValidator() [1/4]

xmlpp::RelaxNGValidator::RelaxNGValidator | ( |  | ) |

## ◆ RelaxNGValidator() [2/4]

xmlpp::RelaxNGValidator::RelaxNGValidator | ( | const std::string & | filename | ) |
| explicit

Create a validator and parse a schema definition file.

The schema must be defined with XML syntax (.rng file). The compact syntax (.rnc file) is not supported.

Parameters

  filename | The URL of the schema.

Exceptions

  xmlpp::parse_error |

## ◆ RelaxNGValidator() [3/4]

xmlpp::RelaxNGValidator::RelaxNGValidator | ( | const Document * | document | ) |
| explicit

Create a validator and parse a schema definition document.

Parameters

  document | A preparsed document tree, containing the schema definition.

Exceptions

  xmlpp::parse_error |

## ◆ RelaxNGValidator() [4/4]

xmlpp::RelaxNGValidator::RelaxNGValidator | ( | RelaxNGSchema * | schema,
|  | bool | take_ownership )
| explicit

Create a validator.

Parameters

  schema | A pointer to the schema to use when validating XML documents.
  take_ownership | If true, the validator takes ownership of the schema. The caller must not delete it. If false, the validator does not take ownership of the schema. The caller must guarantee that the schema exists as long as the validator keeps a pointer to it. The caller is responsible for deleting the schema when it's no longer needed.

## ◆ ~RelaxNGValidator()

xmlpp::RelaxNGValidator::~RelaxNGValidator | ( |  | ) |
| override

## Member Function Documentation

## ◆ get_schema() [1/2]

const RelaxNGSchema * xmlpp::RelaxNGValidator::get_schema | ( |  | ) | const
| noexcept

Get the schema.

Returns
  A pointer to the schema, or nullptr.

## ◆ get_schema() [2/2]

RelaxNGSchema * xmlpp::RelaxNGValidator::get_schema | ( |  | ) |
| noexcept

Get the schema.

Returns
  A pointer to the schema, or nullptr.

## ◆ initialize_context()

void xmlpp::RelaxNGValidator::initialize_context | ( |  | ) |
| overrideprotectedvirtual

Reimplemented from xmlpp::Validator.

## ◆ operator bool()

xmlpp::RelaxNGValidator::operator bool | ( |  | ) | const
| explicitoverridevirtualnoexcept

Test whether a schema has been parsed.

For instance

if (relaxng_validator)
do_something();

Implements xmlpp::SchemaValidatorBase.

## ◆ parse_document()

void xmlpp::RelaxNGValidator::parse_document | ( | const Document * | document | ) |
| overridevirtual

Parse a schema definition from a document.

If the validator already contains a schema, that schema is released (deleted if the validator owns the schema).

Parameters

  document | A preparsed document tree, containing the schema definition.

Exceptions

  xmlpp::parse_error |

Implements xmlpp::SchemaValidatorBase.

## ◆ parse_file()

void xmlpp::RelaxNGValidator::parse_file | ( | const std::string & | filename | ) |
| overridevirtual

Parse a schema definition file.

The schema must be defined with XML syntax (.rng file). The compact syntax (.rnc file) is not supported.

If the validator already contains a schema, that schema is released (deleted if the validator owns the schema).

Parameters

  filename | The URL of the schema.

Exceptions

  xmlpp::parse_error |

Implements xmlpp::SchemaValidatorBase.

## ◆ parse_memory()

void xmlpp::RelaxNGValidator::parse_memory | ( | const ustring & | contents | ) |
| overridevirtual

Parse a schema definition from a string.

The schema must be defined with XML syntax. The compact syntax is not supported.

If the validator already contains a schema, that schema is released (deleted if the validator owns the schema).

Parameters

  contents | The schema definition as a string.

Exceptions

  xmlpp::parse_error |

Implements xmlpp::SchemaValidatorBase.

## ◆ release_underlying()

void xmlpp::RelaxNGValidator::release_underlying | ( |  | ) |
| overrideprotectedvirtual

Reimplemented from xmlpp::Validator.

## ◆ set_schema()

void xmlpp::RelaxNGValidator::set_schema | ( | RelaxNGSchema * | schema,
|  | bool | take_ownership )

Set a schema.

If the validator already contains a schema, that schema is released (deleted if the validator owns the schema).

Parameters

  schema | A pointer to the schema to use when validating XML documents.
  take_ownership | If true, the validator takes ownership of the schema. The caller must not delete it. If false, the validator does not take ownership of the schema. The caller must guarantee that the schema exists as long as the validator keeps a pointer to it. The caller is responsible for deleting the schema when it's no longer needed.

## ◆ validate() [1/2]

void xmlpp::RelaxNGValidator::validate | ( | const Document * | document | ) |
| overridevirtual

Validate a document, using a previously parsed schema.

Parameters

  document | Pointer to the document.

Exceptions

  xmlpp::internal_error |
  xmlpp::validity_error |

Implements xmlpp::SchemaValidatorBase.

## ◆ validate() [2/2]

void xmlpp::RelaxNGValidator::validate | ( | const std::string & | filename | ) |
| overridevirtual

Validate an XML file, using a previously parsed schema.

Parameters

  filename | The URL of the XML file.

Exceptions

  xmlpp::internal_error |
  xmlpp::parse_error |
  xmlpp::validity_error |

Implements xmlpp::SchemaValidatorBase.