libxml++: xmlpp::Dtd Class Reference

libxml++ 5.6.1

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

Represents an XML DTD for validating XML files. More...

`#include <libxml++/dtd.h>`

Inheritance diagram for xmlpp::Dtd:
[legend]

## Public Member Functions
| Dtd ()
| Dtd (_xmlDtd * dtd, bool take_ownership=false)
| Create a Dtd from the underlying libxml DTD element.
| Dtd (const std::string & filename)
| Create a Dtd and parse an external subset (DTD file) immediately.
| Dtd (const ustring & external, const ustring & system)
| Create a Dtd and parse an external subset (DTD file) immediately.
| ~Dtd () override
const _xmlDtd * | cobj () const noexcept
| Access the underlying libxml implementation.
_xmlDtd * | cobj () noexcept
| Access the underlying libxml implementation.
ustring | get_external_id () const
| Get the external identifier for PUBLIC DTD.
std::optional< ustring > | get_external_id2 () const
| Get the external identifier for PUBLIC DTD.
ustring | get_name () const
| Get the name of the DTD.
std::optional< ustring > | get_name2 () const
| Get the name of the DTD.
ustring | get_system_id () const
| Get the URI for a SYSTEM or PUBLIC DTD.
std::optional< ustring > | get_system_id2 () const
| Get the URI for a SYSTEM or PUBLIC DTD.
void | parse_file (const std::string & filename)
| Parse an external subset (DTD file).
void | parse_memory (const ustring & contents)
| Parse a DTD from a string.
void | parse_stream (std::istream & in)
| Parse a DTD from a stream.
void | parse_subset (const ustring & external, const ustring & system)
| Parse an external subset (DTD 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 Member Functions
void | release_underlying ()
Protected Member Functions inherited from xmlpp::NonCopyable
| NonCopyable () noexcept
virtual | ~NonCopyable ()

## Detailed Description

Represents an XML DTD for validating XML files.

DTD = Document Type Definition

## Constructor & Destructor Documentation

## ◆ Dtd() [1/4]

xmlpp::Dtd::Dtd | ( |  | ) |

## ◆ Dtd() [2/4]

xmlpp::Dtd::Dtd | ( | _xmlDtd * | dtd,
|  | bool | take_ownership = `false`
| ) |  |
| explicit

Create a Dtd from the underlying libxml DTD element.

Parameters

  dtd | A pointer to the libxml DTD element.
  take_ownership | If `true`, this Dtd instance takes ownership of the libxml DTD element. The caller must not delete it. If `false`, this Dtd does not take ownership of the libxml DTD element. The caller must guarantee that the libxml DTD element exists as long as this Dtd keeps a pointer to it. The caller is responsible for deleting the libxml DTD element when it's no longer needed, unless it belongs to a Document, in which case it's deleted when the Document is deleted.

## ◆ Dtd() [3/4]

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

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

Since libxml++ 3.0:

Parameters

  filename | The URL of the DTD.

Exceptions

  xmlpp::parse_error |

## ◆ Dtd() [4/4]

xmlpp::Dtd::Dtd | ( | const ustring & | external,
|  | const ustring & | system
| ) |  |

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

Since libxml++ 3.0:

Parameters

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

Exceptions

  xmlpp::parse_error |

## ◆ ~Dtd()

xmlpp::Dtd::~Dtd | ( |  | ) |
| override

## Member Function Documentation

## ◆ cobj() [1/2]

const _xmlDtd * xmlpp::Dtd::cobj | ( |  | ) | const
| noexcept

Access the underlying libxml implementation.

## ◆ cobj() [2/2]

_xmlDtd * xmlpp::Dtd::cobj | ( |  | ) |
| noexcept

Access the underlying libxml implementation.

## ◆ get_external_id()

ustring xmlpp::Dtd::get_external_id | ( |  | ) | const

Get the external identifier for PUBLIC DTD.

Returns
  The external identifier for PUBLIC DTD.

Deprecated:
  5.6: Use get_external_id2() instead.

## ◆ get_external_id2()

std::optional< ustring > xmlpp::Dtd::get_external_id2 | ( |  | ) | const

Get the external identifier for PUBLIC DTD.

Returns
  The external identifier for PUBLIC DTD, if any, else no value.

Since libxml++ 5.6:

## ◆ get_name()

ustring xmlpp::Dtd::get_name | ( |  | ) | const

Get the name of the DTD.

Returns
  The name of the DTD.

Deprecated:
  5.6: Use get_name2() instead.

## ◆ get_name2()

std::optional< ustring > xmlpp::Dtd::get_name2 | ( |  | ) | const

Get the name of the DTD.

Returns
  The name of the DTD, if any, else no value.

Since libxml++ 5.6:

## ◆ get_system_id()

ustring xmlpp::Dtd::get_system_id | ( |  | ) | const

Get the URI for a SYSTEM or PUBLIC DTD.

Returns
  The URI for a SYSTEM or PUBLIC DTD.

Deprecated:
  5.6: Use get_system_id2() instead.

## ◆ get_system_id2()

std::optional< ustring > xmlpp::Dtd::get_system_id2 | ( |  | ) | const

Get the URI for a SYSTEM or PUBLIC DTD.

Returns
  The URI for a SYSTEM or PUBLIC DTD, if any, else no value.

Since libxml++ 5.6:

## ◆ parse_file()

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

Parse an external subset (DTD file).

If another DTD has been parsed before, that DTD is replaced by the new one (deleted if this Dtd owns it).

Since libxml++ 3.0:

Parameters

  filename | The URL of the DTD.

Exceptions

  xmlpp::parse_error |

## ◆ parse_memory()

void xmlpp::Dtd::parse_memory | ( | const ustring & | contents | ) |

Parse a DTD from a string.

If another DTD has been parsed before, that DTD is replaced by the new one (deleted if this Dtd owns it).

Since libxml++ 3.0:

Parameters

  contents | The DTD as a string.

Exceptions

  xmlpp::parse_error |

## ◆ parse_stream()

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

Parse a DTD from a stream.

If another DTD has been parsed before, that DTD is replaced by the new one (deleted if this Dtd owns it).

Since libxml++ 3.0:

Parameters

  in | The stream.

Exceptions

  xmlpp::parse_error |

## ◆ parse_subset()

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

Parse an external subset (DTD file).

If another DTD has been parsed before, that DTD is replaced by the new one (deleted if this Dtd owns it).

Since libxml++ 3.0:

Parameters

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

Exceptions

  xmlpp::parse_error |

## ◆ release_underlying()

void xmlpp::Dtd::release_underlying | ( |  | ) |
| protected