xmlpp::DtdValidator Class Reference

XML DTD validator. More...

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

Inheritance diagram for xmlpp::DtdValidator:
[legend]

## Public Member Functions

| DtdValidator ()
| DtdValidator (const std::string& filename)
| Create a validator and parse an external subset (DTD file) immediately. More...
| DtdValidator (const Glib::ustring& external, const Glib::ustring& system)
| Create a validator and parse an external subset (DTD file) immediately. More...
| DtdValidator (Dtd* dtd, bool take_ownership)
| Create a validator. More...
| ~DtdValidator () override
Dtd* | get_dtd () noexcept
| Get the parsed DTD. More...
const Dtd* | get_dtd () const noexcept
| Get the parsed DTD. More...
| operator bool () const noexcept override
| Test whether a DTD has been parsed. More...
void | parse_file (const std::string& filename) override
| Parse an external subset (DTD file). More...
void | parse_memory (const Glib::ustring& contents) override
| Parse a DTD from a string. More...
void | parse_stream (std::istream& in)
| Parse a DTD from a stream. More...
void | parse_subset (const Glib::ustring& external, const Glib::ustring& system)
| Parse an external subset (DTD file). More...
void | set_dtd (Dtd* dtd, bool take_ownership)
| Set a DTD. More...
void | validate (const Document* document) override
| Validate a document, using a previously parsed DTD. More...
Public Member Functions inherited from xmlpp::Validator
| Validator () noexcept
| ~Validator () override

## Protected Member Functions

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. More...
virtual void | on_validity_error (const Glib::ustring& message)
virtual void | on_validity_warning (const Glib::ustring& message)
Protected Member Functions inherited from xmlpp::NonCopyable
| NonCopyable () noexcept
| NonCopyable (const NonCopyable&)=delete
| NonCopyable (NonCopyable&&)=delete
virtual | ~NonCopyable ()
NonCopyable& | operator= (const NonCopyable&)=delete
NonCopyable& | operator= (NonCopyable&&)=delete

## 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_
Glib::ustring | validate_error_
Glib::ustring | validate_warning_

## Detailed Description

XML DTD validator.

DTD = Document Type Definition

## Constructor & Destructor Documentation

## DtdValidator() [1/4]

xmlpp::DtdValidator::DtdValidator | ( |  | ) |

## DtdValidator() [2/4]

xmlpp::DtdValidator::DtdValidator | ( | const std::string & | filename | ) |

explicit

Create a validator and parse an external subset (DTD file) immediately.

Parameters

  filename | The URL of the DTD.

Exceptions

  xmlpp::parse_error |

## DtdValidator() [3/4]

xmlpp::DtdValidator::DtdValidator | ( | const Glib::ustring & | external,
|  | const Glib::ustring & | system
| ) |  |

explicit

Create a validator and parse an external subset (DTD file) immediately.

Parameters

  external | The external ID of the DTD.
  system | The URL of the DTD.

Exceptions

  xmlpp::parse_error |

## DtdValidator() [4/4]

xmlpp::DtdValidator::DtdValidator | ( | Dtd* | dtd,
|  | bool | take_ownership
| ) |  |

explicit

Create a validator.

Since libxml++ 3.0:

Parameters

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

## ~DtdValidator()

xmlpp::DtdValidator::~DtdValidator | ( |  | ) |

override

## Member Function Documentation

## get_dtd() [1/2]

Dtd* xmlpp::DtdValidator::get_dtd | ( |  | ) |

noexcept

Get the parsed DTD.

Returns
  A pointer to the parsed DTD, or `nullptr`.

## get_dtd() [2/2]

const Dtd* xmlpp::DtdValidator::get_dtd | ( |  | ) | const

noexcept

Get the parsed DTD.

Returns
  A pointer to the parsed DTD, or `nullptr`.

## initialize_context()

void xmlpp::DtdValidator::initialize_context | ( |  | ) |

override protected virtual

Reimplemented from xmlpp::Validator.

## operator bool()

xmlpp::DtdValidator::operator bool | ( |  | ) | const

explicit override virtual noexcept

Test whether a DTD has been parsed.

For instance

if (validator)
do_something();

Implements xmlpp::Validator.

## parse_file()

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

override virtual

Parse an external subset (DTD file).

If the validator already contains a DTD, that DTD is deleted.

Parameters

  filename | The URL of the DTD.

Exceptions

  xmlpp::parse_error |

Implements xmlpp::Validator.

## parse_memory()

void xmlpp::DtdValidator::parse_memory | ( | const Glib::ustring & | contents | ) |

override virtual

Parse a DTD from a string.

If the validator already contains a DTD, that DTD is deleted.

Parameters

  contents | The DTD as a string.

Exceptions

  xmlpp::parse_error |

Implements xmlpp::Validator.

## parse_stream()

void xmlpp::DtdValidator::parse_stream | ( | std::istream & | in | ) |

Parse a DTD from a stream.

If the validator already contains a DTD, that DTD is deleted.

Parameters

  in | The stream.

Exceptions

  xmlpp::parse_error |

## parse_subset()

void xmlpp::DtdValidator::parse_subset | ( | const Glib::ustring & | external,
|  | const Glib::ustring & | system
| ) |  |

Parse an external subset (DTD file).

If the validator already contains a DTD, that DTD is deleted.

Parameters

  external | The external ID of the DTD.
  system | The URL of the DTD.

Exceptions

  xmlpp::parse_error |

## release_underlying()

void xmlpp::DtdValidator::release_underlying | ( |  | ) |

override protected virtual

Reimplemented from xmlpp::Validator.

## set_dtd()

void xmlpp::DtdValidator::set_dtd | ( | Dtd* | dtd,
|  | bool | take_ownership
| ) |  |

Set a DTD.

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

Parameters

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

## validate()

void xmlpp::DtdValidator::validate | ( | const Document* | document | ) |

override virtual

Validate a document, using a previously parsed DTD.

The internal subset (if present) is de-coupled (i.e. not used), which could give problems if ID or IDREF is present.

Parameters

  document | Pointer to the document.

Exceptions

  xmlpp::internal_error |
  xmlpp::validity_error |

Implements xmlpp::Validator.