PTLib  Version 2.10.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
PXML Class Reference

#include <pxml.h>

Inheritance diagram for PXML:
PXMLBase PObject PSOAPMessage PXMLRPCBlock PXMLSettings XMPP::Stanza XMPP::IQ XMPP::Message XMPP::Presence

Classes

struct  ValidationContext
struct  ValidationInfo

Public Types

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 Types inherited from PXMLBase
enum  Options {
  NoOptions = 0x0000, Indent = 0x0001, NewLineAfterElement = 0x0002, NoIgnoreWhiteSpace = 0x0004,
  CloseExtended = 0x0008, WithNS = 0x0010, FragmentOnly = 0x0020, AllOptions = 0xffff
}
enum  StandAloneType { UninitialisedStandAlone = -2, UnknownStandAlone = -1, NotStandAlone, IsStandAlone }
- Public Types inherited from PObject
enum  Comparison { LessThan = -1, EqualTo = 0, GreaterThan = 1 }
 Result of the comparison operation performed by the Compare() function. More...

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 StartAutoReloadURL (const PURL &url, const PTimeInterval &timeout, const PTimeInterval &refreshTime, Options options=NoOptions)
bool StopAutoReloadURL ()
PString GetAutoReloadStatus ()
bool AutoLoadURL ()
virtual void OnAutoLoad (PBoolean ok)
bool LoadURL (const PURL &url)
bool LoadURL (const PURL &url, const PTimeInterval &timeout, 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.
PXMLElementGetElement (const PCaselessString &name, const PCaselessString &attr, const PString &attrval) const
PXMLElementGetElement (const PCaselessString &name, PINDEX idx=0) const
PXMLElementGetElement (PINDEX idx) const
PINDEX GetNumElements () const
PXMLElementGetRootElement () const
PXMLElementSetRootElement (PXMLElement *p)
PXMLElementSetRootElement (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)
PMutexGetMutex ()
 PDECLARE_NOTIFIER (PTimer, PXML, AutoReloadTimeout)
 PDECLARE_NOTIFIER (PThread, PXML, AutoReloadThread)
- Public Member Functions inherited from PXMLBase
 PXMLBase (int opts=NoOptions)
void SetOptions (int opts)
int GetOptions () const
- Public Member Functions inherited from PObject
virtual ~PObject ()
virtual PObjectClone () const
 Create a copy of the class on the heap.
virtual PINDEX HashFunction () const
 This function yields a hash value required by the PDictionary class.
virtual const char * GetClass (unsigned ancestor=0) const
 Get the current dynamic type of the object instance.
PBoolean IsClass (const char *cls) const
virtual PBoolean InternalIsDescendant (const char *clsName) const
 Determine if the dynamic type of the current instance is a descendent of the specified class.
virtual Comparison Compare (const PObject &obj) const
 Compare the two objects and return their relative rank.
virtual Comparison CompareObjectMemoryDirect (const PObject &obj) const
 Determine the byte wise comparison of two objects.
bool operator== (const PObject &obj) const
 Compare the two objects.
bool operator!= (const PObject &obj) const
 Compare the two objects.
bool operator< (const PObject &obj) const
 Compare the two objects.
bool operator> (const PObject &obj) const
 Compare the two objects.
bool operator<= (const PObject &obj) const
 Compare the two objects.
bool operator>= (const PObject &obj) const
 Compare the two objects.

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

PXMLElementrootElement
PMutex rootMutex
bool loadFromFile
PFilePath loadFilename
PString version
PString encoding
StandAloneType m_standAlone
PTimer autoLoadTimer
PURL autoloadURL
PTimeInterval autoLoadWaitTime
PMutex autoLoadMutex
PString autoLoadError
PStringStream m_errorString
unsigned m_errorLine
unsigned m_errorColumn
PSortedStringList noIndentElements
PString docType
PString m_defaultNameSpace
- Protected Attributes inherited from PXMLBase
int m_options

Member Enumeration Documentation

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
bool PXML::AutoLoadURL ( )
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::GetAutoReloadStatus ( )
inline

References autoLoadError, and autoLoadMutex.

PString PXML::GetDocType ( ) const
inline

References docType.

PCaselessString PXML::GetDocumentType ( ) const
PXMLElement* PXML::GetElement ( const PCaselessString name,
const PCaselessString attr,
const PString attrval 
) const
PXMLElement* PXML::GetElement ( const PCaselessString name,
PINDEX  idx = 0 
) const
PXMLElement* PXML::GetElement ( PINDEX  idx) const
unsigned PXML::GetErrorColumn ( ) const
inline

References m_errorColumn.

unsigned PXML::GetErrorLine ( ) const
inline

References m_errorLine.

PString PXML::GetErrorString ( ) const
inline

References m_errorString.

PMutex& PXML::GetMutex ( )
inline

References rootMutex.

PINDEX PXML::GetNumElements ( ) const
PXMLElement* PXML::GetRootElement ( ) const
inline

References rootElement.

bool PXML::IsDirty ( ) const
bool PXML::IsLoaded ( ) const
inline

References rootElement.

Referenced by PVXMLSession::IsLoaded().

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 
)
bool PXML::LoadURL ( const PURL url)
bool PXML::LoadURL ( const PURL url,
const PTimeInterval timeout,
Options  options = NoOptions 
)
virtual void PXML::OnAutoLoad ( PBoolean  ok)
virtual
virtual void PXML::OnLoaded ( )
inlinevirtual
PXML::PDECLARE_NOTIFIER ( PTimer  ,
PXML  ,
AutoReloadTimeout   
)
PXML::PDECLARE_NOTIFIER ( PThread  ,
PXML  ,
AutoReloadThread   
)
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 ( Options  options = NoOptions)
bool PXML::Save ( PString data,
Options  options = NoOptions 
)
bool PXML::SaveFile ( const PFilePath fn,
Options  options = NoOptions 
)
void PXML::SetDocType ( const PString v)
inline

References docType.

PXMLElement* PXML::SetRootElement ( PXMLElement p)
PXMLElement* PXML::SetRootElement ( const PString documentType)
bool PXML::StartAutoReloadURL ( const PURL url,
const PTimeInterval timeout,
const PTimeInterval refreshTime,
Options  options = NoOptions 
)
bool PXML::StopAutoReloadURL ( )
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::autoLoadError
protected

Referenced by GetAutoReloadStatus().

PMutex PXML::autoLoadMutex
protected

Referenced by GetAutoReloadStatus().

PTimer PXML::autoLoadTimer
protected
PURL PXML::autoloadURL
protected
PTimeInterval PXML::autoLoadWaitTime
protected
PString PXML::docType
protected

Referenced by GetDocType(), and SetDocType().

PString PXML::encoding
protected
PFilePath PXML::loadFilename
protected
bool PXML::loadFromFile
protected
PString PXML::m_defaultNameSpace
protected
unsigned PXML::m_errorColumn
protected

Referenced by GetErrorColumn().

unsigned PXML::m_errorLine
protected

Referenced by GetErrorLine().

PStringStream PXML::m_errorString
protected

Referenced by GetErrorString().

StandAloneType PXML::m_standAlone
protected
PSortedStringList PXML::noIndentElements
protected
PXMLElement* PXML::rootElement
protected

Referenced by GetRootElement(), and IsLoaded().

PMutex PXML::rootMutex
protected

Referenced by GetMutex().

PString PXML::version
protected

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