# PXML Class Reference

`#include <pxml.h>`

Inheritance diagram for PXML:

List of all members.

## Public Types

| EndOfValidationList
| DocType
| ElementName
| RequiredAttribute
| RequiredNonEmptyAttribute
| RequiredAttributeWithValue
| RequiredElement
| Subtree
| RequiredAttributeWithValueMatching
| RequiredElementWithBodyMatching
| OptionalElement
| OptionalAttribute
| OptionalNonEmptyAttribute
| OptionalAttributeWithValue
| OptionalAttributeWithValueMatching
| OptionalElementWithBodyMatching
| SetDefaultNamespace
| SetNamespace
| RequiredAttributeWithValueMatchingEx = RequiredAttributeWithValueMatching + 0x8000
| OptionalAttributeWithValueMatchingEx = OptionalAttributeWithValueMatching + 0x8000
| RequiredElementWithBodyMatchingEx = RequiredElementWithBodyMatching + 0x8000
| OptionalElementWithBodyMatchingEx = OptionalElementWithBodyMatching + 0x8000

enum

ValidationOp {
EndOfValidationList, DocType, ElementName, RequiredAttribute,
RequiredNonEmptyAttribute, RequiredAttributeWithValue, RequiredElement, Subtree,
RequiredAttributeWithValueMatching, RequiredElementWithBodyMatching, OptionalElement, OptionalAttribute,
OptionalNonEmptyAttribute, OptionalAttributeWithValue, OptionalAttributeWithValueMatching, OptionalElementWithBodyMatching,
SetDefaultNamespace, SetNamespace, RequiredAttributeWithValueMatchingEx = RequiredAttributeWithValueMatching + 0x8000, OptionalAttributeWithValueMatchingEx = OptionalAttributeWithValueMatching + 0x8000,
RequiredElementWithBodyMatchingEx = RequiredElementWithBodyMatching + 0x8000, OptionalElementWithBodyMatchingEx = OptionalElementWithBodyMatching + 0x8000
}

## Public Member Functions

| PXML (int options=NoOptions, const char *noIndentElements=NULL)
| PXML (const PString &data, int options=NoOptions, const char *noIndentElements=NULL)
| PXML (const PXML &xml)
| ~PXML ()
bool | IsLoaded () const
bool | IsDirty () const
bool | Load (const PString &data, Options options=NoOptions)
bool | LoadFile (const PFilePath &fn, Options options=NoOptions)
virtual void | OnLoaded ()
bool | Save (Options options=NoOptions)
bool | Save (PString &data, Options options=NoOptions)
bool | SaveFile (const PFilePath &fn, Options options=NoOptions)
void | RemoveAll ()
PBoolean | IsNoIndentElement (const PString &elementName) const
PString | AsString () const
void | PrintOn (ostream &strm) const
| Output the contents of the object to the stream.
void | ReadFrom (istream &strm)
| Input the contents of the object from the stream.
PXMLElement * | GetElement (const PCaselessString &name, const PCaselessString &attr, const PString &attrval) const
PXMLElement * | GetElement (const PCaselessString &name, PINDEX idx=0) const
PXMLElement * | GetElement (PINDEX idx) const
PINDEX | GetNumElements () const
PXMLElement * | GetRootElement () const
PXMLElement * | SetRootElement (PXMLElement *p)
PXMLElement * | SetRootElement (const PString &documentType)
bool | RemoveElement (PINDEX idx)
PCaselessString | GetDocumentType () const
bool | Validate (const ValidationInfo *validator)
bool | ValidateElements (ValidationContext &context, PXMLElement *baseElement, const ValidationInfo *elements)
bool | ValidateElement (ValidationContext &context, PXMLElement *element, const ValidationInfo *elements)
bool | LoadAndValidate (const PString &body, const PXML::ValidationInfo *validator, PString &error, int options=NoOptions)
PString | GetErrorString () const
unsigned | GetErrorColumn () const
unsigned | GetErrorLine () const
PString | GetDocType () const
void | SetDocType (const PString &v)
PMutex & | GetMutex ()

## Static Public Member Functions

static PString | CreateStartTag (const PString &text)
static PString | CreateEndTag (const PString &text)
static PString | CreateTagNoData (const PString &text)
static PString | CreateTag (const PString &text, const PString &data)
static PString | EscapeSpecialChars (const PString &string)

## Protected Member Functions

void | Construct (int options, const char *noIndentElements)

## Protected Attributes

PXMLElement * | rootElement
PMutex | rootMutex
bool | loadFromFile
PFilePath | loadFilename
PString | version
PString | encoding
StandAloneType | m_standAlone
PStringStream | m_errorString
unsigned | m_errorLine
unsigned | m_errorColumn
PSortedStringList | noIndentElements
PString | docType
PString | m_defaultNameSpace

## Classes

struct | ValidationContext
struct | ValidationInfo

## Member Enumeration Documentation

enum PXML::ValidationOp

Enumerator:

  EndOfValidationList |
  DocType |
  ElementName |
  RequiredAttribute |
  RequiredNonEmptyAttribute |
  RequiredAttributeWithValue |
  RequiredElement |
  Subtree |
  RequiredAttributeWithValueMatching |
  RequiredElementWithBodyMatching |
  OptionalElement |
  OptionalAttribute |
  OptionalNonEmptyAttribute |
  OptionalAttributeWithValue |
  OptionalAttributeWithValueMatching |
  OptionalElementWithBodyMatching |
  SetDefaultNamespace |
  SetNamespace |
  RequiredAttributeWithValueMatchingEx |
  OptionalAttributeWithValueMatchingEx |
  RequiredElementWithBodyMatchingEx |
  OptionalElementWithBodyMatchingEx |

## Constructor & Destructor Documentation

PXML::PXML | ( | int | options = `NoOptions`,
|  | const char * | noIndentElements = `NULL` |
| ) |  |  |

PXML::PXML | ( | const PString & | data,
|  | int | options = `NoOptions`,
|  | const char * | noIndentElements = `NULL` |
| ) |  |  |

PXML::PXML | ( | const PXML & | xml | ) |

PXML::~PXML | ( |  | ) |

## Member Function Documentation

PString PXML::AsString | ( |  | ) | const

void PXML::Construct | ( | int | options,
|  | const char * | noIndentElements |
| ) |  |  | `[protected]`

static PString PXML::CreateEndTag | ( | const PString & | text | ) | `[static]`

static PString PXML::CreateStartTag | ( | const PString & | text | ) | `[static]`

static PString PXML::CreateTag | ( | const PString & | text,
|  | const PString & | data |
| ) |  |  | `[static]`

static PString PXML::CreateTagNoData | ( | const PString & | text | ) | `[static]`

static PString PXML::EscapeSpecialChars | ( | const PString & | string | ) | `[static]`

PString PXML::GetDocType | ( |  | ) | const`[inline]`

PCaselessString PXML::GetDocumentType | ( |  | ) | const

PXMLElement* PXML::GetElement | ( | PINDEX | idx | ) | const

PXMLElement* PXML::GetElement | ( | const PCaselessString & | name,
|  | PINDEX | idx = `0` |
| ) |  |  | const

PXMLElement* PXML::GetElement | ( | const PCaselessString & | name,
|  | const PCaselessString & | attr,
|  | const PString & | attrval |
| ) |  |  | const

unsigned PXML::GetErrorColumn | ( |  | ) | const`[inline]`

unsigned PXML::GetErrorLine | ( |  | ) | const`[inline]`

PString PXML::GetErrorString | ( |  | ) | const`[inline]`

PMutex& PXML::GetMutex | ( |  | ) | `[inline]`

PINDEX PXML::GetNumElements | ( |  | ) | const

PXMLElement* PXML::GetRootElement | ( |  | ) | const`[inline]`

bool PXML::IsDirty | ( |  | ) | const

bool PXML::IsLoaded | ( |  | ) | const`[inline]`

PBoolean PXML::IsNoIndentElement | ( | const PString & | elementName | ) | const`[virtual]`

Reimplemented from PXMLBase.

bool PXML::Load | ( | const PString & | data,
|  | Options | options = `NoOptions` |
| ) |  |  |

bool PXML::LoadAndValidate | ( | const PString & | body,
|  | const PXML::ValidationInfo * | validator,
|  | PString & | error,
|  | int | options = `NoOptions` |
| ) |  |  |

bool PXML::LoadFile | ( | const PFilePath & | fn,
|  | Options | options = `NoOptions` |
| ) |  |  |

virtual void PXML::OnLoaded | ( |  | ) | `[inline, virtual]`

void PXML::PrintOn | ( | ostream & | strm | ) | const`[virtual]`

Output the contents of the object to the stream.

The exact output is dependent on the exact semantics of the descendent class. This is primarily used by the standard `operator<<` function.

The default behaviour is to print the class name.

Reimplemented from PObject.

void PXML::ReadFrom | ( | istream & | strm | ) | `[virtual]`

Input the contents of the object from the stream.

The exact input is dependent on the exact semantics of the descendent class. This is primarily used by the standard `operator>>` function.

The default behaviour is to do nothing.

Reimplemented from PObject.

void PXML::RemoveAll | ( |  | ) |

bool PXML::RemoveElement | ( | PINDEX | idx | ) |

bool PXML::Save | ( | PString & | data,
|  | Options | options = `NoOptions` |
| ) |  |  |

bool PXML::Save | ( | Options | options = `NoOptions` | ) |

bool PXML::SaveFile | ( | const PFilePath & | fn,
|  | Options | options = `NoOptions` |
| ) |  |  |

void PXML::SetDocType | ( | const PString & | v | ) | `[inline]`

PXMLElement* PXML::SetRootElement | ( | const PString & | documentType | ) |

PXMLElement* PXML::SetRootElement | ( | PXMLElement * | p | ) |

bool PXML::Validate | ( | const ValidationInfo * | validator | ) |

bool PXML::ValidateElement | ( | ValidationContext & | context,
|  | PXMLElement * | element,
|  | const ValidationInfo * | elements |
| ) |  |  |

bool PXML::ValidateElements | ( | ValidationContext & | context,
|  | PXMLElement * | baseElement,
|  | const ValidationInfo * | elements |
| ) |  |  |

## Member Data Documentation

PString PXML::docType `[protected]`

PString PXML::encoding `[protected]`

PFilePath PXML::loadFilename `[protected]`

bool PXML::loadFromFile `[protected]`

PString PXML::m_defaultNameSpace `[protected]`

unsigned PXML::m_errorColumn `[protected]`

unsigned PXML::m_errorLine `[protected]`

PStringStream PXML::m_errorString `[protected]`

StandAloneType PXML::m_standAlone `[protected]`

PSortedStringList PXML::noIndentElements `[protected]`

PXMLElement* PXML::rootElement `[protected]`

PMutex PXML::rootMutex `[protected]`

PString PXML::version `[protected]`

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

- pxml.h