51#ifndef __INCLUDE_XML_NODE__
52#define __INCLUDE_XML_NODE__
65#if defined(WIN32) || defined(UNDER_CE)
75#ifdef _USE_XMLPARSER_DLL
76#ifdef CORELIBRARY_EXPORTS
77#define XMLDLLENTRY __declspec(dllexport)
79#define XMLDLLENTRY __declspec(dllimport)
88#ifdef XML_NO_WIDE_CHAR
98#ifndef XML_NO_WIDE_CHAR
109 #define XMLCSTR const wchar_t *
110 #define XMLSTR wchar_t *
111 #define XMLCHAR wchar_t
116 #define XMLCSTR const char *
117 #define XMLSTR char *
188 struct XMLNodeDataTag;
196 XMLNode(
struct XMLNodeDataTag *p);
281 #pragma warning(disable: 4800)
439 typedef struct XMLNodeDataTag
447 struct XMLNodeDataTag *pParent;
457 char parseClearTag(
void *px,
void *pa);
458 char maybeAddTxT(
void *pa,
XMLCSTR tokenPStr);
459 int ParseXMLElement(
void *pXML);
460 void *addToOrder(
int memInc,
int *_pos,
int nc,
void *p,
int size,
XMLElementType xtype);
461 int indexText(
XMLCSTR lpszValue)
const;
462 int indexClear(
XMLCSTR lpszValue)
const;
467 void deleteNodeContent_priv(
char,
char);
468 static inline int findPosition(XMLNodeData *d,
int index,
XMLElementType xtype);
469 static int CreateXMLStringR(XMLNodeData *pEntry,
XMLSTR lpszMarker,
int nFormat);
470 static int removeOrderElement(XMLNodeData *d,
XMLElementType t,
int index);
471 static void exactMemory(XMLNodeData *d);
472 static int detachFromParent(XMLNodeData *d);
547 XMLSTR encode(
unsigned char *inByteBuf,
unsigned int inByteLen,
char formatted=0);
562 static unsigned char decode(
XMLCSTR inString,
unsigned char *outByteBuf,
int inMaxByteOutBuflen,
XMLError *xe=NULL);
567 void alloc(
int newsize);
XMLDLLENTRY void freeXMLString(XMLSTR t)
struct cmlabs::XMLResults XMLResults
struct XMLDLLENTRY cmlabs::XMLParserBase64Tool XMLParserBase64Tool
struct cmlabs::XMLNodeContents XMLNodeContents
struct XMLDLLENTRY cmlabs::XMLNode XMLNode
XMLDLLENTRY XMLSTR stringDup(XMLCSTR source, int cbData=0)
@ eXMLErrorCannotOpenWriteFile
@ eXMLErrorUnexpectedToken
@ eXMLErrorFirstTagNotFound
@ eXMLErrorCannotWriteFile
@ eXMLErrorBase64DecodeBufferTooSmall
@ eXMLErrorBase64DecodeIllegalCharacter
@ eXMLErrorUnmatchedEndClearTag
@ eXMLErrorBase64DataSizeIsNotMultipleOf4
@ eXMLErrorUnknownCharacterEntity
@ eXMLErrorMissingTagName
@ eXMLErrorBase64DecodeTruncatedData
@ eXMLErrorMissingEndTagName
@ eXMLErrorUnmatchedEndTag
@ eXMLErrorCharConversionError
struct XMLDLLENTRY cmlabs::ToXMLStringTool ToXMLStringTool
struct cmlabs::XMLClear XMLClear
struct cmlabs::XMLAttribute XMLAttribute
XMLAttribute * updateAttribute_WOSD(XMLSTR lpszNewValue, XMLSTR lpszNewName, XMLCSTR lpszOldName)
XMLNodeContents enumContents(int i) const
static XMLCSTR getVersion()
XMLAttribute * updateAttribute(XMLAttribute *newAttribute, XMLAttribute *oldAttribute)
XMLCSTR updateText_WOSD(XMLSTR lpszNewValue, XMLCSTR lpszOldValue)
int positionOfChildNode(XMLNode x) const
XMLCSTR addText_WOSD(XMLSTR lpszValue, int pos=-1)
int positionOfClear(int i=0) const
XMLAttribute * updateAttribute(XMLCSTR lpszNewValue, XMLCSTR lpszNewName, XMLCSTR lpszOldName)
static XMLNode parseString(XMLCSTR lpXMLString, XMLCSTR tag=NULL, XMLResults *pResults=NULL)
XMLCSTR updateText_WOSD(XMLSTR lpszNewValue, int i=0)
XMLClear getClear(int i=0) const
char isDeclaration() const
static XMLNode emptyXMLNode
static XMLNode openFileHelper(XMLCSTR filename, XMLCSTR tag=NULL)
static XMLCharEncoding guessCharEncoding(void *buffer, int bufLen, char useXMLEncodingAttribute=1)
void deleteAttribute(int i=0)
XMLClear * updateClear_WOSD(XMLSTR lpszNewValue, XMLCSTR lpszOldValue)
XMLCSTR updateText(XMLCSTR lpszNewValue, int i=0)
XMLNode addChild(XMLCSTR lpszName, char isDeclaration=FALSE, int pos=-1)
XMLClear * updateClear_WOSD(XMLClear *newP, XMLClear *oldP)
XMLNode(const XMLNode &A)
XMLNode getChildNodeWithAttribute(XMLCSTR tagName, XMLCSTR attributeName, XMLCSTR attributeValue=NULL, int *i=NULL) const
void deleteAttribute(XMLCSTR lpszName)
XMLNode & operator=(const XMLNode &A)
static XMLNode createXMLTopNode_WOSD(XMLSTR lpszName, char isDeclaration=FALSE)
int positionOfClear(XMLCSTR lpszValue) const
XMLAttribute getAttribute(int i=0) const
XMLNode addChild(XMLNode nodeToAdd, int pos=-1)
XMLNode getChildNode(int i=0) const
int positionOfText(int i=0) const
XMLNode getChildNode(XMLCSTR name, int *i=NULL) const
char isAttributeSet(XMLCSTR name) const
XMLCSTR getAttributeValue(int i=0) const
XMLCSTR updateText(XMLCSTR lpszNewValue, XMLCSTR lpszOldValue)
XMLClear * addClear_WOSD(XMLSTR lpszValue, XMLCSTR lpszOpen=NULL, XMLCSTR lpszClose=NULL, int pos=-1)
void deleteText(XMLCSTR lpszValue)
static XMLCSTR getError(XMLError error)
static char setGlobalOptions(XMLCharEncoding characterEncoding=XMLNode::encoding_UTF8, char guessWideCharChars=1, char dropWhiteSpace=1)
XMLCSTR getAttribute(XMLCSTR name, int i) const
XMLNode addChild_WOSD(XMLSTR lpszName, char isDeclaration=FALSE, int pos=-1)
void deleteClear(XMLCSTR lpszValue)
int nChildNode(XMLCSTR name) const
int positionOfClear(XMLClear *a) const
XMLClear * updateClear_WOSD(XMLSTR lpszNewContent, int i=0)
XMLCSTR getAttributeName(int i=0) const
XMLAttribute * updateAttribute(XMLCSTR lpszNewValue, XMLCSTR lpszNewName=NULL, int i=0)
XMLNode getChildNode(XMLCSTR name, int i) const
XMLCSTR getAttribute(XMLCSTR name, int *i=NULL) const
XMLClear * updateClear(XMLCSTR lpszNewContent, int i=0)
static XMLNode createXMLTopNode(XMLCSTR lpszName, char isDeclaration=FALSE)
XMLCSTR addText(XMLCSTR lpszValue, int pos=-1)
static XMLNode emptyNode()
XMLAttribute * addAttribute(XMLCSTR lpszName, XMLCSTR lpszValuev)
XMLCSTR updateName_WOSD(XMLSTR lpszName)
XMLNode getParentNode() const
int positionOfChildNode(XMLCSTR name, int i=0) const
XMLClear * updateClear(XMLCSTR lpszNewValue, XMLCSTR lpszOldValue)
XMLClear * updateClear(XMLClear *newP, XMLClear *oldP)
XMLAttribute * updateAttribute_WOSD(XMLSTR lpszNewValue, XMLSTR lpszNewName=NULL, int i=0)
int positionOfText(XMLCSTR lpszValue) const
void deleteAttribute(XMLAttribute *anAttribute)
XMLSTR createXMLString(int nFormat=1, int *pnSize=NULL) const
static XMLNode parseFile(XMLCSTR filename, XMLCSTR tag=NULL, XMLResults *pResults=NULL)
void deleteClear(XMLClear *p)
int positionOfChildNode(int i=0) const
XMLClear * addClear(XMLCSTR lpszValue, XMLCSTR lpszOpen=NULL, XMLCSTR lpszClose=NULL, int pos=-1)
void deleteClear(int i=0)
XMLError writeToFile(XMLCSTR filename, const char *encoding=NULL, char nFormat=1) const
XMLCSTR updateName(XMLCSTR lpszName)
XMLCSTR getText(int i=0) const
static XMLAttribute emptyXMLAttribute
XMLAttribute * addAttribute_WOSD(XMLSTR lpszName, XMLSTR lpszValue)
XMLAttribute * updateAttribute_WOSD(XMLAttribute *newAttribute, XMLAttribute *oldAttribute)
static XMLClear emptyXMLClear