40 #include <ptbuildopts.h> 151 void PrintOn(ostream & strm)
const;
266 bool StartAutoReloadURL(
272 bool StopAutoReloadURL();
275 virtual void OnAutoLoad(
PBoolean ok);
277 bool LoadURL(
const PURL & url);
300 : parent(par) { dirty =
false; }
309 PAssert(parent == NULL,
"Cannot reparent PXMLElement");
315 virtual void Output(ostream & strm,
const PXMLBase & xml,
int indent)
const = 0;
317 virtual PBoolean IsElement()
const = 0;
339 void SetString(
const PString & str,
bool dirty =
true);
343 void Output(ostream & strm,
const PXMLBase & xml,
int indent)
const;
361 void PrintOn(ostream & strm)
const;
362 void Output(ostream & strm,
const PXMLBase & xml,
int indent)
const;
377 {
return subObjects.GetSize(); }
390 bool setDirty =
true);
393 PString GetKeyAttribute(PINDEX idx)
const;
394 PString GetDataAttribute(PINDEX idx)
const;
404 PINDEX FindObject(
const PXMLObject * ptr)
const;
407 {
return subObjects.GetSize() != 0; }
410 {
return subObjects; }
416 void SetData(
const PString & data);
417 void AddData(
const PString & data);
421 void GetFilePosition(
unsigned & col,
unsigned & line)
const { col = column; line = lineNumber; }
422 void SetFilePosition(
unsigned col,
unsigned line) { column = col; lineNumber = line; }
425 void RemoveNamespace(
const PString & prefix);
467 void ToConfig(
PConfig & cfg)
const;
479 bool Parse(
const char * data,
int dataLen,
bool final);
480 void GetErrorInfo(
PString & errorString,
unsigned & errorCol,
unsigned & errorLine);
482 virtual void StartElement(
const char * name,
const char **attrs);
483 virtual void EndElement(
const char * name);
484 virtual void AddCharacterData(
const char * data,
int len);
485 virtual void XmlDecl(
const char *
version,
const char *
encoding,
int standAlone);
486 virtual void StartDocTypeDecl(
const char * docTypeName,
489 int hasInternalSubSet);
490 virtual void EndDocTypeDecl();
491 virtual void StartNamespaceDeclHandler(
const char * prefix,
const char * uri);
492 virtual void EndNamespaceDeclHandler(
const char * prefix);
521 virtual void EndElement(
const char * name);
531 #endif // PTLIB_PXML_H #define PDECLARE_NOTIFIER(notifier, notifiee, func)
Declare PNotifier derived class with INT parameter. Uses PDECLARE_NOTIFIER2 macro.
Definition: notifier.h:174
This class waits for the semaphore on construction and automatically signals the semaphore on destruc...
Definition: psync.h:86
PString GetVersion() const
Definition: pxml.h:494
virtual PObject * Clone() const
Create a copy of the class on the heap.
PXMLObjectArray subObjects
Definition: pxml.h:435
void SetOptions(int opts)
Definition: pxml.h:93
__inline friend Options operator &(Options o1, Options o2)
Definition: pxml.h:82
PXMLElement * GetElement(const PCaselessString &name, const PCaselessString &attr, const PString &attrval) const
unsigned m_maxEntityLength
Definition: pxml.h:110
PString m_defaultNameSpace
Definition: pxml.h:252
PINDEX GetNumAttributes() const
Definition: pxml.h:397
unsigned m_errorLine
Definition: pxml.h:246
This class defines an arbitrary time interval to millisecond accuracy.
Definition: timeint.h:55
PXMLElement * currentElement
Definition: pxml.h:506
PINDEX GetNumElements() const
PXMLObject * GetSubObject(PINDEX idx=0) const
Definition: pxml.h:412
PString GetDocType() const
Definition: pxml.h:222
#define PCLASSINFO(cls, par)
Declare all the standard PTLib class information.
Definition: object.h:1049
PXMLBase(int opts=NoOptions)
bool loadFromFile
Definition: pxml.h:240
ValidationOp m_op
Definition: pxml.h:199
bool LoadFile(const PFilePath &fn, Options options=NoOptions)
PXMLElement * GetRootElement() const
Definition: pxml.h:159
PString value
Definition: pxml.h:348
PINDEX m_maxCount
Definition: pxml.h:210
__inline friend Options operator|(Options o1, Options o2)
Definition: pxml.h:81
A class representing a configuration for the application.
Definition: config.h:67
PXMLElement * GetParent() const
Definition: pxml.h:302
ValidationOp
Definition: pxml.h:167
bool Load(const PString &data, Options options=NoOptions)
This class is a standard C++ stream class descendent for reading or writing streamed data to or from ...
Definition: pstring.h:1878
static PString CreateTagNoData(const PString &text)
void GetFilePosition(unsigned &col, unsigned &line) const
Definition: pxml.h:421
PINDEX m_minCount
Definition: pxml.h:209
This is a dictionary collection class of PString objects, keyed by another string.
Definition: pstring.h:2784
This class describes a full description for a file on the particular platform.
Definition: filepath.h:65
bool SaveFile(const PFilePath &fn, Options options=NoOptions)
PQueue< PXML > messages
Definition: pxml.h:525
void SetFilePosition(unsigned col, unsigned line)
Definition: pxml.h:422
This class is a variation of a string that ignores case.
Definition: pstring.h:1708
PXMLObject(PXMLElement *par)
Definition: pxml.h:299
unsigned lineNumber
Definition: pxml.h:438
ignored
Definition: pxml.h:76
bool Validate(const ValidationInfo *validator)
PBoolean IsElement() const
Definition: pxml.h:359
PXML(int options=NoOptions, const char *noIndentElements=NULL)
const char * m_attributeValues
Definition: pxml.h:204
ValidationInfo * m_subElement
Definition: pxml.h:205
StandAloneType m_standAlone
Definition: pxml.h:243
PTimeInterval autoLoadWaitTime
Definition: pxml.h:286
PMutex & GetMutex()
Definition: pxml.h:225
PBoolean IsElement() const
Definition: pxml.h:337
PBoolean IsNoIndentElement(const PString &elementName) const
bool Save(Options options=NoOptions)
A class representing a system timer.
Definition: timer.h:181
BOOL PBoolean
Definition: object.h:102
const char * m_name
Definition: pxml.h:200
ignored
Definition: pxml.h:75
PXMLObjectArray GetSubObjects() const
Definition: pxml.h:409
PXMLElement * SetRootElement(PXMLElement *p)
void PrintOn(ostream &strm) const
Output the contents of the object to the stream.
static PString EscapeSpecialChars(const PString &string)
PString GetAutoReloadStatus()
Definition: pxml.h:273
PStringToString m_nameSpaces
Definition: pxml.h:195
This is a sorted list collection class of PString objects.
Definition: pstring.h:2296
PString version
Definition: pxml.h:242
int GetOptions() const
Definition: pxml.h:96
StandAloneType m_standAlone
Definition: pxml.h:509
bool RemoveElement(PINDEX idx)
void ReadFrom(istream &strm)
Input the contents of the object from the stream.
Abstract class defining I/O channel semantics.
Definition: channel.h:107
bool LoadAndValidate(const PString &body, const PXML::ValidationInfo *validator, PString &error, int options=NoOptions)
PString GetEncoding() const
Definition: pxml.h:495
int m_options
Definition: pxml.h:109
void SetParent(PXMLElement *newParent)
Definition: pxml.h:307
static PString CreateEndTag(const PString &text)
static PString CreateStartTag(const PString &text)
PString autoLoadError
Definition: pxml.h:288
PMutex autoLoadMutex
Definition: pxml.h:287
The character string class.
Definition: pstring.h:108
void SetName(const PString &v)
Definition: pxml.h:373
bool IsDirty() const
Definition: pxml.h:320
void * expat
Definition: pxml.h:503
PStringToString m_tempNamespaceList
Definition: pxml.h:510
bool HasSubObjects() const
Definition: pxml.h:406
const void * m_placeHolder
Definition: pxml.h:203
void Construct(int options, const char *noIndentElements)
bool HasAttributes() const
Definition: pxml.h:396
PString encoding
Definition: pxml.h:242
PString docType
Definition: pxml.h:251
This class defines a thread of execution in the system.
Definition: thread.h:66
PXMLElement * rootElement
Definition: pxml.h:237
virtual void OnLoaded()
Definition: pxml.h:138
PINDEX GetSize() const
Definition: pxml.h:376
unsigned GetErrorLine() const
Definition: pxml.h:220
virtual PBoolean IsNoIndentElement(const PString &) const
Definition: pxml.h:98
StandAloneType
Definition: pxml.h:84
PString GetErrorString() const
Definition: pxml.h:218
PString version
Definition: pxml.h:508
StandAloneType GetStandAlone() const
Definition: pxml.h:497
PFilePath loadFilename
Definition: pxml.h:241
bool dirty
Definition: pxml.h:436
PURL autoloadURL
Definition: pxml.h:285
PCaselessString m_defaultNamespace
Definition: pxml.h:440
PMutex rootMutex
Definition: pxml.h:238
bool ValidateElement(ValidationContext &context, PXMLElement *element, const ValidationInfo *elements)
static PString CreateTag(const PString &text, const PString &data)
bool IsLoaded() const
Definition: pxml.h:132
void SetMaxEntityLength(unsigned len)
Definition: pxml.h:105
bool rootOpen
Definition: pxml.h:505
bool dirty
Definition: pxml.h:326
PStringToString attributes
Definition: pxml.h:434
#define PAssert(b, msg)
This macro is used to assert that a condition must be true.
Definition: object.h:192
PARRAY(PXMLObjectArray, PXMLObject)
unsigned GetErrorColumn() const
Definition: pxml.h:219
void SetDocType(const PString &v)
Definition: pxml.h:223
PCaselessString name
Definition: pxml.h:433
unsigned GetMaxEntityLength() const
Definition: pxml.h:106
PXMLElement * parent
Definition: pxml.h:325
XML fragment, not complete document.
Definition: pxml.h:78
PCaselessString GetDocumentType() const
Options
Definition: pxml.h:71
PXMLData * lastElement
Definition: pxml.h:507
const char * m_namespace
Definition: pxml.h:206
Ultimate parent class for all objects in the class library.
Definition: object.h:1118
PCaselessString GetName() const
Definition: pxml.h:364
PStringStream m_errorString
Definition: pxml.h:245
PSortedStringList noIndentElements
Definition: pxml.h:249
This class describes a Universal Resource Locator.
Definition: url.h:54
bool ValidateElements(ValidationContext &context, PXMLElement *baseElement, const ValidationInfo *elements)
PString m_defaultNameSpace
Definition: pxml.h:194
PXMLElement * rootElement
Definition: pxml.h:504
PStringToString m_nameSpaces
Definition: pxml.h:439
PTimer autoLoadTimer
Definition: pxml.h:284
unsigned column
Definition: pxml.h:437
PString GetString() const
Definition: pxml.h:341
unsigned m_errorColumn
Definition: pxml.h:247