# GlomBakery::Document_XML Class Reference

Inherits GlomBakery::Document.

Inherited by Glom::Document.

Collaboration diagram for GlomBakery::Document_XML:
[legend]

List of all members.

## Public Member Functions

| Document_XML ()
virtual | ~Document_XML ()
virtual bool | load_after (int& failure_code)
| Allow app to update icons/title bar.
virtual bool | save_before ()
| overrideable.
void | set_dtd_name (const std::string& strVal)
std::string | get_dtd_name () const
void | set_dtd_root_node_name (const Glib::ustring& strVal, const Glib::ustring& xmlns=Glib::ustring())
| Set the root node name and (optionally) the xmlns ID to be written when writing the document.
Glib::ustring | get_dtd_root_node_name () const
void | set_write_formatted (bool formatted=true)
| Whether to add extra whitespace when writing the XML to disk.
void | add_indenting_white_space ()
| Put each node on its own line and add white space for indenting, even if there are child text nodes.
bool | set_xml (const Glib::ustring& strXML)
Glib::ustring | get_xml () const

## Protected Types

typedef GlomBakery::Document | type_base

## Protected Member Functions

const xmlpp::Element* | get_node_document () const
xmlpp::Element* | get_node_document ()
void | Util_DOM_Write (Glib::ustring& refstrXML) const
void | add_indenting_white_space_to_node (xmlpp::Node* node=0, const Glib::ustring& start_indent=Glib::ustring())

## Static Protected Member Functions

static Glib::ustring | get_node_attribute_value (const xmlpp::Element* node, const Glib::ustring& strAttributeName)
static void | set_node_attribute_value (xmlpp::Element* node, const Glib::ustring& strAttributeName, const Glib::ustring& strValue)
static xmlpp::Element* | get_node_child_named (const xmlpp::Element* node, const Glib::ustring& strName)
static xmlpp::Element* | get_node_child_named_with_add (xmlpp::Element* node, const Glib::ustring& strName)

## Protected Attributes

xmlpp::DomParser | m_DOM_Parser
xmlpp::Document* | m_pDOM_Document
std::string | m_strDTD_Name
Glib::ustring | m_strRootNodeName
Glib::ustring | m_root_xmlns
bool | m_write_formatted

## Member Typedef Documentation

typedef GlomBakery::Document GlomBakery::Document_XML::type_base `[protected]`

## Constructor & Destructor Documentation

GlomBakery::Document_XML::Document_XML | ( |  | ) |

virtual GlomBakery::Document_XML::~Document_XML | ( |  | ) | `[virtual]`

## Member Function Documentation

void GlomBakery::Document_XML::add_indenting_white_space | ( |  | ) |

Put each node on its own line and add white space for indenting, even if there are child text nodes.

set_write_formatted() does not cause nodes to be indented if there are child text nodes, because it assumes that the white space is then significant.

void GlomBakery::Document_XML::add_indenting_white_space_to_node | ( | xmlpp::Node * | node = `0`,
|  | const Glib::ustring & | start_indent = `Glib::ustring()` |
| ) |  |  | `[protected]`

std::string GlomBakery::Document_XML::get_dtd_name | ( |  | ) | const

Glib::ustring GlomBakery::Document_XML::get_dtd_root_node_name | ( |  | ) | const

static Glib::ustring GlomBakery::Document_XML::get_node_attribute_value | ( | const xmlpp::Element * | node,
|  | const Glib::ustring & | strAttributeName |
| ) |  |  | `[static, protected]`

static xmlpp::Element* GlomBakery::Document_XML::get_node_child_named | ( | const xmlpp::Element * | node,
|  | const Glib::ustring & | strName |
| ) |  |  | `[static, protected]`

static xmlpp::Element* GlomBakery::Document_XML::get_node_child_named_with_add | ( | xmlpp::Element * | node,
|  | const Glib::ustring & | strName |
| ) |  |  | `[static, protected]`

const xmlpp::Element* GlomBakery::Document_XML::get_node_document | ( |  | ) | const`[protected]`

xmlpp::Element* GlomBakery::Document_XML::get_node_document | ( |  | ) | `[protected]`

Glib::ustring GlomBakery::Document_XML::get_xml | ( |  | ) | const

virtual bool GlomBakery::Document_XML::load_after | ( | int & | failure_code | ) | `[virtual]`

Allow app to update icons/title bar.

overrideable. Does anything which should be done after the data has been loaded from disk, but before updating the View.

Parameters:

  | failure_code | Used to return a custom error code that is understood by your application. This must be greater than zero.

Reimplemented from GlomBakery::Document.

virtual bool GlomBakery::Document_XML::save_before | ( |  | ) | `[virtual]`

overrideable.

Does anything which should be done before the view has saved its data, before writing to disk..

Reimplemented from GlomBakery::Document.

void GlomBakery::Document_XML::set_dtd_name | ( | const std::string & | strVal | ) |

void GlomBakery::Document_XML::set_dtd_root_node_name | ( | const Glib::ustring & | strVal,
|  | const Glib::ustring & | xmlns = `Glib::ustring()` |
| ) |  |  |

Set the root node name and (optionally) the xmlns ID to be written when writing the document.

The root node name is also used when reading documents.

static void GlomBakery::Document_XML::set_node_attribute_value | ( | xmlpp::Element * | node,
|  | const Glib::ustring & | strAttributeName,
|  | const Glib::ustring & | strValue |
| ) |  |  | `[static, protected]`

void GlomBakery::Document_XML::set_write_formatted | ( | bool | formatted = `true` | ) |

Whether to add extra whitespace when writing the XML to disk.

Do not use this if whitespace is significant in your XML format. See also add_indenting_white_space().

bool GlomBakery::Document_XML::set_xml | ( | const Glib::ustring & | strXML | ) |

void GlomBakery::Document_XML::Util_DOM_Write | ( | Glib::ustring & | refstrXML | ) | const`[protected]`

## Member Data Documentation

xmlpp::DomParser GlomBakery::Document_XML::m_DOM_Parser `[protected]`

xmlpp::Document* GlomBakery::Document_XML::m_pDOM_Document `[protected]`

Glib::ustring GlomBakery::Document_XML::m_root_xmlns `[protected]`

std::string GlomBakery::Document_XML::m_strDTD_Name `[protected]`

Glib::ustring GlomBakery::Document_XML::m_strRootNodeName `[protected]`

bool GlomBakery::Document_XML::m_write_formatted `[protected]`

The documentation for this class was generated from the following file:

- libglom/document/bakery/document_xml.h