libxml++  5.4.0
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:
Inheritance graph
[legend]

Public Member Functions

 Dtd ()
 
 Dtd (_xmlDtd * dtd, bool take_ownership=false)
 Create a Dtd from the underlying libxml DTD element. More...
 
 Dtd (const std::string & filename)
 Create a Dtd and parse an external subset (DTD file) immediately. More...
 
 Dtd (const ustring & external, const ustring & system)
 Create a Dtd and parse an external subset (DTD file) immediately. More...
 
 ~Dtd () override
 
const _xmlDtd * cobj () const noexcept
 Access the underlying libxml implementation. More...
 
_xmlDtd * cobj () noexcept
 Access the underlying libxml implementation. More...
 
ustring get_external_id () const
 Get the external identifier for PUBLIC DTD. More...
 
std::optional< ustringget_external_id2 () const
 Get the external identifier for PUBLIC DTD. More...
 
ustring get_name () const
 Get the name of the DTD. More...
 
std::optional< ustringget_name2 () const
 Get the name of the DTD. More...
 
ustring get_system_id () const
 Get the URI for a SYSTEM or PUBLIC DTD. More...
 
std::optional< ustringget_system_id2 () const
 Get the URI for a SYSTEM or PUBLIC DTD. More...
 
void parse_file (const std::string & filename)
 Parse an external subset (DTD file). More...
 
void parse_memory (const ustring & contents)
 Parse a DTD from a string. More...
 
void parse_stream (std::istream & in)
 Parse a DTD from a stream. More...
 
void parse_subset (const ustring & external, const ustring & system)
 Parse an external subset (DTD file). More...
 
- Public Member Functions inherited from xmlpp::NonCopyable
 NonCopyable (const NonCopyable &)=delete
 
 NonCopyable (NonCopyable &&)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 
NonCopyableoperator= (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
dtdA pointer to the libxml DTD element.
take_ownershipIf 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
filenameThe 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
externalThe external ID of the DTD.
systemThe 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
filenameThe 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
contentsThe 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
inThe 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
externalThe external ID of the DTD.
systemThe URL of the DTD.
Exceptions
xmlpp::parse_error

◆ release_underlying()

void xmlpp::Dtd::release_underlying ( )
protected