6 #ifndef _INC_cXmlDocument_H
7 #define _INC_cXmlDocument_H
13 #include "GrayCore/include/CList.h"
25 #define cXmlNodeTypeDEF(a,b,c) class cXml##a;
27 #undef cXmlNodeTypeDEF
69 virtual void SetCopy(
const cXmlNode& n);
81 return m_eNodeType == eType;
87 m_pUserData = pUserData;
96 virtual void SetClear();
117 HRESULT QueryValueInt(
int* piValue)
const;
120 HRESULT QueryValueDouble(
double* pdValue)
const;
122 int get_ValueInt()
const;
123 double get_ValueDouble()
const;
125 void put_ValueInt(
int iValue);
126 void put_ValueDouble(
double dValue);
133 cXmlNode* GetPreviousSibling(
const char* pszValue)
const;
136 cXmlNode* GetNextSiblingX(
const char* pszValue)
const;
146 cXmlElement* GetNextSiblingElement(
const char* pszValue)
const;
156 #define cXmlNodeTypeIMPL(a,b) \
157 virtual cXml##a* To##a() { return b; } \
158 virtual const cXml##a* To##a() const { return b; }
160 #define cXmlNodeTypeDEF(a,b,c) cXmlNodeTypeIMPL(a,nullptr)
162 #undef cXmlNodeTypeDEF
165 #define cXmlNodeTypeIMPL(a,b)
293 virtual void SetCopy(
const cXmlText& n);
301 bool isBlank()
const;
372 static const char k_pszVersion[];
373 static const char k_pszEncoding[];
374 static const char k_pszStandalone[];
416 return m_sStandalone;
493 cXmlNode* GetChildFirst(
const char* value)
const;
494 cXmlNode* GetChildLast(
const char* value)
const;
513 cXmlNode* IterateChildren(
const char* value,
const cXmlNode* previous)
const;
539 bool RemoveChild(
cXmlNode* removeThis);
545 cXmlElement* GetFirstChildElement(
const char* pszValue)
const;
562 virtual void SetClear();
607 const char* get_Text()
const;
645 bool m_bUseMicrosoftBOM;
677 virtual void SetClear();
705 #undef cXmlNodeTypeIMPL
#define GRAYLIB_LINK
Definition: GrayLibBase.h:35
#define UNREFERENCED_PARAMETER(P)
< _WIN32 type thing. get rid of stupid warning.
Definition: SysTypes.h:299
INT32 HRESULT
_WIN32 style error codes. INT32
Definition: SysTypes.h:465
#define cXmlNodeTypeIMPL(a, b)
dynamic_cast like to a more defined XMLNODE_TYPE. Will return null if not of the requested type like ...
Definition: cXmlDocument.h:156
Definition: cXmlDocument.h:480
virtual cXmlNode * ToNode()=0
cast cXmlContainer is a cXmlDocument or cXmlElement
HRESULT LinkChildEnd(cXmlNode *addThis)
virtual ~cXmlContainer()
Definition: cXmlDocument.h:485
Definition: cXmlDocument.h:353
virtual HRESULT Print(cStreamOutput &rOut, int nDepth=0) const
Definition: cXmlDocument.h:428
virtual ~cXmlDeclaration()
Definition: cXmlDocument.h:400
void operator=(const cXmlDeclaration &rCopy)
Definition: cXmlDocument.h:394
const cXmlString & get_Standalone() const
Definition: cXmlDocument.h:413
virtual void SetClear()
Delete all the children of this node. Does not affect 'this'.
Definition: cXmlDocument.h:382
const cXmlString & get_Encoding() const
Definition: cXmlDocument.h:408
const cXmlString & get_Version() const
Definition: cXmlDocument.h:403
Definition: cXmlDocument.h:635
virtual cXmlNode * ToNode()
cast cXmlContainer is a cXmlDocument or cXmlElement
Definition: cXmlDocument.h:682
virtual ~cXmlDocument()
Definition: cXmlDocument.h:655
void operator=(const cXmlDocument &rCopy)
Definition: cXmlDocument.h:658
virtual cXmlContainer * ToContainer()
Definition: cXmlDocument.h:678
Definition: cXmlDocument.h:549
cXmlAttributeSet m_Attributes
Definition: cXmlDocument.h:558
virtual cXmlNode * ToNode()
cast cXmlContainer is a cXmlDocument or cXmlElement
Definition: cXmlDocument.h:626
void operator=(const cXmlElement &rCopy)
Definition: cXmlDocument.h:569
virtual cXmlContainer * ToContainer()
Definition: cXmlDocument.h:622
Definition: cXmlDocument.h:30
bool isType(XMLNODE_TYPE eType) const
Definition: cXmlDocument.h:79
void * get_UserData() const
Definition: cXmlDocument.h:89
void put_UserData(void *pUserData)
Definition: cXmlDocument.h:84
virtual cXmlContainer * ToContainer()
Definition: cXmlDocument.h:148
cXmlString m_sValue
parent usage dependent m_eNodeType.
Definition: cXmlDocument.h:57
const cXmlString & get_Value() const
Definition: cXmlDocument.h:103
virtual bool OnVisit(IXmlVisitor *pVisitor) const =0
virtual cXmlNode * Clone() const =0
void * m_pUserData
Field containing a generic pointer to arbitrary user data.
Definition: cXmlDocument.h:58
ITERATE_t get_Row() const
Definition: cXmlDocument.h:227
void put_Value(cXmlString sValue)
Definition: cXmlDocument.h:98
virtual HRESULT Print(cStreamOutput &rOut, int nDepth=0) const =0
StrLen_t get_Column() const
Definition: cXmlDocument.h:231
XMLNODE_TYPE get_Type() const
Definition: cXmlDocument.h:74
virtual HRESULT SetParseNode(cXmlReader &rReader)=0
cTextPos m_Pos
Where (line,col) in the parsed XML document is this node? m_PosNode.
Definition: cXmlDocument.h:61
const XMLNODE_TYPE m_eNodeType
Definition: cXmlDocument.h:56
Definition: cXmlReader.h:69
Definition: cXmlDocument.h:279
bool isCDATA() const
Definition: cXmlDocument.h:327
virtual void SetClear()
Delete all the children of this node. Does not affect 'this'.
Definition: cXmlDocument.h:294
cXmlText(const cXmlText &rCopy)
Definition: cXmlDocument.h:315
void operator=(const cXmlText &rCopy)
Definition: cXmlDocument.h:321
cXmlText(cXmlString sValue="", bool bCDATA=false)
Definition: cXmlDocument.h:304
void put_CDATA(bool bCDATA)
Definition: cXmlDocument.h:332
virtual ~cXmlText()
Definition: cXmlDocument.h:312
Definition: cXmlDocument.h:441
void operator=(const cXmlUnknown &rCopy)
Definition: cXmlDocument.h:459
cXmlUnknown(const cXmlUnknown &rCopy)
Definition: cXmlDocument.h:455
cXmlUnknown(cXmlString sValue="")
Definition: cXmlDocument.h:450
virtual ~cXmlUnknown()
Definition: cXmlDocument.h:452
Definition: cNonCopyable.h:17
Definition: cStream.h:126
virtual HRESULT WriteString(const char *pszStr)
Definition: cStream.h:212
Definition: cTextPos.h:18
StrLen_t get_Column1() const noexcept
< Get 1 based column.
Definition: cTextPos.h:73
ITERATE_t get_Line1() const noexcept
< Get 1 based line.
Definition: cTextPos.h:69
class __DECL_IMPORT cXmlReader
Definition: cXmlReader.h:19
CXML_ENCODING_TYPE
Definition: cXml.h:24
@ CXML_ENCODING_UNKNOWN
Definition: cXml.h:27
int StrLen_t
the length of a string in chars (bytes for UTF8, wchar_t for UNICODE). or offset in characters....
Definition: StrConst.h:32
int ITERATE_t
like size_t but signed
Definition: Index.h:28
char FILECHAR_t
a UTF8 char in a file name. like TCHAR
Definition: FileName.h:22
Definition: cXmlVisitor.h:22
XMLNODE_TYPE
Definition: cXml.h:39