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

#include <pxml.h>

Inheritance diagram for PXML:
Collaboration diagram for PXML:

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  { DEFAULT_MAX_ENTITY_LENGTH = 4096 }
 
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 (Options 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)
 
PString AsString (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. More...
 
void ReadFrom (istream &strm)
 Input the contents of the object from the stream. More...
 
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, Options options=NoOptions)
 
PString GetErrorString () const
 
unsigned GetErrorColumn () const
 
unsigned GetErrorLine () const
 
PString GetDocType () const
 
void SetDocType (const PString &v)
 
PMutexGetMutex ()
 
- Public Member Functions inherited from PXMLBase
 P_DECLARE_BITWISE_ENUM_EX (Options, 6,(NoOptions, Indent, NewLineAfterElement, NoIgnoreWhiteSpace, CloseExtended, WithNS, FragmentOnly), AllOptions=(1<<(6+1))-1)
 
 PXMLBase (Options opts=NoOptions)
 
void SetOptions (Options opts)
 
Options GetOptions () const
 
void SetMaxEntityLength (unsigned len)
 
unsigned GetMaxEntityLength () const
 
- Public Member Functions inherited from PObject
unsigned GetTraceContextIdentifier () const
 Get PTRACE context identifier. More...
 
void SetTraceContextIdentifier (unsigned id)
 
void GetTraceContextIdentifier (PObject &obj)
 
void GetTraceContextIdentifier (PObject *obj)
 
void SetTraceContextIdentifier (const PObject &obj)
 
void SetTraceContextIdentifier (const PObject *obj)
 
virtual ~PObject ()
 
virtual PObjectClone () const
 Create a copy of the class on the heap. More...
 
template<class CLS >
CLS * CloneAs () const
 As for Clone() but converts to specified type. More...
 
virtual PINDEX HashFunction () const
 This function yields a hash value required by the PDictionary class. More...
 
virtual const char * GetClass (unsigned ancestor=0) const
 Get the current dynamic type of the object instance. More...
 
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. More...
 
__inline const PObjectPTraceObjectInstance () const
 
virtual Comparison Compare (const PObject &obj) const
 Compare the two objects and return their relative rank. More...
 
virtual Comparison CompareObjectMemoryDirect (const PObject &obj) const
 Determine the byte wise comparison of two objects. More...
 
bool operator== (const PObject &obj) const
 Compare the two objects. More...
 
bool operator!= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator< (const PObject &obj) const
 Compare the two objects. More...
 
bool operator> (const PObject &obj) const
 Compare the two objects. More...
 
bool operator<= (const PObject &obj) const
 Compare the two objects. More...
 
bool operator>= (const PObject &obj) const
 Compare the two objects. More...
 

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 Attributes

PXMLElementrootElement
 
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
 
- Protected Attributes inherited from PXMLBase
Options m_options
 
unsigned m_maxEntityLength
 
- Protected Attributes inherited from PObject
unsigned m_traceContextIdentifier
 

Additional Inherited Members

- Protected Member Functions inherited from PObject
 PObject ()
 Constructor for PObject, made protected so cannot ever create one on its own. More...
 
- Friends inherited from PObject

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 ( Options  options = NoOptions,
const char *  noIndentElements = NULL 
)
PXML::PXML ( const PXML xml)
PXML::~PXML ( )

Member Function Documentation

PString PXML::AsString ( Options  options = NoOptions)
PString PXML::AsString ( ) const
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

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,
Options  options = NoOptions 
)
bool PXML::LoadFile ( const PFilePath fn,
Options  options = NoOptions 
)
virtual void PXML::OnLoaded ( )
inlinevirtual
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::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::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

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: