libxml++: xmlpp::XsdValidator Class Reference

libxml++ 5.0.3

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

XSD schema validator. More...

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

Inheritance diagram for xmlpp::XsdValidator:
[legend]

## Public Member Functions
| XsdValidator ()
| XsdValidator (const Document * document)
| Create a validator and parse a schema definition document.
| XsdValidator (const std::string & filename)
| Create a validator and parse a schema definition file.
| XsdValidator (XsdSchema * schema, bool take_ownership)
| Create a validator.
| ~XsdValidator () override
const XsdSchema * | get_schema () const noexcept
| Get the schema.
XsdSchema * | 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 (XsdSchema * 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
| operator bool () const noexcept override=0
| Test whether a schema has been parsed.
virtual void | parse_document (const Document * document)=0
| Parse a schema definition from a document.
void | parse_file (const std::string & filename) override=0
| Parse a schema definition file.
void | parse_memory (const ustring & contents) override=0
| Parse a schema definition from a string.
void | validate (const Document * document) override=0
| Validate a document, using a previously parsed schema.
virtual void | validate (const std::string & filename)=0
| Validate an XML file, using a previously parsed schema.
Public Member Functions inherited from xmlpp::Validator
| Validator () noexcept
| ~Validator () override
virtual | operator bool () const noexcept=0
| Test whether a schema or a DTD has been parsed.
virtual void | parse_file (const std::string & filename)=0
| Parse a schema definition file or an external subset (DTD file).
virtual void | parse_memory (const ustring & contents)=0
| Parse a schema definition or a DTD from a string.
virtual void | validate (const Document * document)=0
| Validate a document, using a previously parsed schema or DTD.
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
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 | initialize_context ()
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 ()

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

## Detailed Description

XSD schema validator.

XSD = XML Schema Definition, a.k.a. XML Schema or W3C XML Schema

Since libxml++ 2.38:

## Constructor & Destructor Documentation

## ◆ XsdValidator() [1/4]

xmlpp::XsdValidator::XsdValidator | ( |  | ) |

## ◆ XsdValidator() [2/4]

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

Create a validator and parse a schema definition file.

Parameters

  filename | The URL of the schema.

Exceptions

  xmlpp::parse_error |

## ◆ XsdValidator() [3/4]

xmlpp::XsdValidator::XsdValidator | ( | 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 |

## ◆ XsdValidator() [4/4]

xmlpp::XsdValidator::XsdValidator | ( | XsdSchema * | 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.

## ◆ ~XsdValidator()

xmlpp::XsdValidator::~XsdValidator | ( |  | ) |
| override

## Member Function Documentation

## ◆ get_schema() [1/2]

const XsdSchema * xmlpp::XsdValidator::get_schema | ( |  | ) | const
| noexcept

Get the schema.

Returns
  A pointer to the schema, or `nullptr`.

## ◆ get_schema() [2/2]

XsdSchema * xmlpp::XsdValidator::get_schema | ( |  | ) |
| noexcept

Get the schema.

Returns
  A pointer to the schema, or `nullptr`.

## ◆ initialize_context()

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

Reimplemented from xmlpp::SchemaValidatorBase.

## ◆ operator bool()

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

Test whether a schema has been parsed.

For instance

if (xsd_validator)
do_something();

Implements xmlpp::SchemaValidatorBase.

## ◆ parse_document()

void xmlpp::XsdValidator::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::XsdValidator::parse_file | ( | const std::string & | filename | ) |
| overridevirtual

Parse a schema definition file.

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::XsdValidator::parse_memory | ( | const ustring & | contents | ) |
| overridevirtual

Parse a schema definition from a string.

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::XsdValidator::release_underlying | ( |  | ) |
| overrideprotectedvirtual

Reimplemented from xmlpp::SchemaValidatorBase.

## ◆ set_schema()

void xmlpp::XsdValidator::set_schema | ( | XsdSchema * | 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::XsdValidator::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::XsdValidator::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::validity_error |

Implements xmlpp::SchemaValidatorBase.