gwenhywfar  5.10.1
Macros | Functions
xml.c File Reference
#include "xml_p.h"
#include "xmlctx_l.h"
#include "i18n_l.h"
#include <gwenhywfar/debug.h>
#include <gwenhywfar/misc.h>
#include <gwenhywfar/text.h>
#include <gwenhywfar/path.h>
#include <gwenhywfar/fastbuffer.h>
#include <gwenhywfar/syncio_file.h>
#include <gwenhywfar/syncio_memory.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
#include <ctype.h>
#include <sys/types.h>
#include <errno.h>
#include "xmlrw.c"
#include "xmlglobalize.c"
Include dependency graph for xml.c:

Go to the source code of this file.

Macros

#define DISABLE_DEBUGLOG
 
#define GWEN_XML_BUFFERSIZE   512
 

Functions

int GWEN_XML_AddNameSpace (GWEN_STRINGLIST2 *sl, const char *prefix, const char *name)
 
const char * GWEN_XML_FindNameSpace (GWEN_STRINGLIST2 *sl, const char *prefix, const char *name)
 
const char * GWEN_XML_FindNameSpaceByName (GWEN_STRINGLIST2 *sl, const char *s)
 
const char * GWEN_XML_FindNameSpaceByPrefix (GWEN_STRINGLIST2 *sl, const char *s)
 
int GWEN_XMLNode__CheckAndSetNameSpace (GWEN_XMLNODE *n, const char *prefix, const char *nspace)
 
int GWEN_XMLNode__CheckNameSpaceDecls1 (GWEN_XMLNODE *n, GWEN_STRINGLIST2 *sl, const char *currentNameSpace)
 
int GWEN_XMLNode__CheckNameSpaceDecls3 (GWEN_XMLNODE *n)
 
int GWEN_XMLNode__SetNameSpaces (GWEN_XMLNODE *n, const char *prefix, const char *nspace)
 
void GWEN_XMLNode__SetProperty (GWEN_XMLNODE *n, const char *name, const char *value, int doInsert)
 
void GWEN_XMLNode_AddChild (GWEN_XMLNODE *n, GWEN_XMLNODE *child)
 
void GWEN_XMLNode_AddChildrenOnly (GWEN_XMLNODE *n, GWEN_XMLNODE *nn, int copythem)
 
void GWEN_XMLNode_AddHeader (GWEN_XMLNODE *n, GWEN_XMLNODE *nh)
 
void GWEN_XMLNode_AddNameSpace (GWEN_XMLNODE *n, const GWEN_XMLNODE_NAMESPACE *ns)
 
void GWEN_XMLNode_ClearHeaders (GWEN_XMLNODE *n)
 
void GWEN_XMLNode_CopyProperties (GWEN_XMLNODE *tn, const GWEN_XMLNODE *sn, int overwrite)
 
void GWEN_XMLNode_DecUsage (GWEN_XMLNODE *n)
 
void GWEN_XMLNode_DelHeader (GWEN_XMLNODE *n, GWEN_XMLNODE *nh)
 
void GWEN_XMLNode_Dump (const GWEN_XMLNODE *n, int ind)
 
GWEN_XMLNODEGWEN_XMLNode_dup (const GWEN_XMLNODE *n)
 
int GWEN_XMLNode_ExpandProperties (const GWEN_XMLNODE *n, GWEN_DB_NODE *dbVars)
 
GWEN_XMLNODEGWEN_XMLNode_FindFirstTag (const GWEN_XMLNODE *n, const char *tname, const char *pname, const char *pvalue)
 
GWEN_XMLNODE_NAMESPACEGWEN_XMLNode_FindNameSpaceByName (const GWEN_XMLNODE *n, const char *s)
 
GWEN_XMLNODE_NAMESPACEGWEN_XMLNode_FindNameSpaceByUrl (const GWEN_XMLNODE *n, const char *s)
 
GWEN_XMLNODEGWEN_XMLNode_FindNextTag (const GWEN_XMLNODE *n, const char *tname, const char *pname, const char *pvalue)
 
GWEN_XMLNODEGWEN_XMLNode_FindNode (const GWEN_XMLNODE *node, GWEN_XMLNODE_TYPE t, const char *data)
 
GWEN_XMLNODEGWEN_XMLNode_FindTag (const GWEN_XMLNODE *n, const char *tname, const char *pname, const char *pvalue)
 
void GWEN_XMLNode_free (GWEN_XMLNODE *n)
 
void GWEN_XMLNode_freeAll (GWEN_XMLNODE *n)
 
const char * GWEN_XMLNode_GetCharValue (const GWEN_XMLNODE *n, const char *name, const char *defValue)
 
const char * GWEN_XMLNode_GetCharValueByPath (GWEN_XMLNODE *n, const char *name, const char *defValue)
 
GWEN_XMLNODEGWEN_XMLNode_GetChild (const GWEN_XMLNODE *n)
 
const char * GWEN_XMLNode_GetData (const GWEN_XMLNODE *n)
 
GWEN_XMLNODEGWEN_XMLNode_GetFirstData (const GWEN_XMLNODE *n)
 
GWEN_XMLNODEGWEN_XMLNode_GetFirstOfType (const GWEN_XMLNODE *n, GWEN_XMLNODE_TYPE t)
 
GWEN_XMLPROPERTYGWEN_XMLNode_GetFirstProperty (const GWEN_XMLNODE *n)
 
GWEN_XMLNODEGWEN_XMLNode_GetFirstTag (const GWEN_XMLNODE *n)
 
GWEN_XMLNODEGWEN_XMLNode_GetHeader (const GWEN_XMLNODE *n)
 
int GWEN_XMLNode_GetIntProperty (const GWEN_XMLNODE *n, const char *name, int defaultValue)
 
int GWEN_XMLNode_GetIntValue (const GWEN_XMLNODE *n, const char *name, int defValue)
 
int GWEN_XMLNode_GetIntValueByPath (GWEN_XMLNODE *n, const char *name, int defValue)
 
const char * GWEN_XMLNode_GetLocalizedCharValue (const GWEN_XMLNODE *n, const char *name, const char *defValue)
 
const char * GWEN_XMLNode_GetNamespace (const GWEN_XMLNODE *n)
 
GWEN_XMLNODE_NAMESPACE_LISTGWEN_XMLNode_GetNameSpaces (const GWEN_XMLNODE *n)
 
GWEN_XMLNODEGWEN_XMLNode_GetNextData (const GWEN_XMLNODE *n)
 
GWEN_XMLNODEGWEN_XMLNode_GetNextOfType (const GWEN_XMLNODE *n, GWEN_XMLNODE_TYPE t)
 
GWEN_XMLPROPERTYGWEN_XMLNode_GetNextProperty (const GWEN_XMLNODE *n, const GWEN_XMLPROPERTY *pr)
 
GWEN_XMLNODEGWEN_XMLNode_GetNextTag (const GWEN_XMLNODE *n)
 
GWEN_XMLNODEGWEN_XMLNode_GetNodeByXPath (GWEN_XMLNODE *n, const char *path, uint32_t flags)
 
GWEN_XMLNODEGWEN_XMLNode_GetParent (const GWEN_XMLNODE *n)
 
const char * GWEN_XMLNode_GetProperty (const GWEN_XMLNODE *n, const char *name, const char *defaultValue)
 
GWEN_XMLNODE_TYPE GWEN_XMLNode_GetType (const GWEN_XMLNODE *n)
 
uint32_t GWEN_XMLNode_GetUsage (const GWEN_XMLNODE *n)
 
int GWEN_XMLNode_GetXPath (const GWEN_XMLNODE *n1, const GWEN_XMLNODE *n2, GWEN_BUFFER *nbuf)
 
void * GWEN_XMLNode_HandlePath (const char *entry, void *data, int idx, uint32_t flags)
 
void GWEN_XMLNode_IncUsage (GWEN_XMLNODE *n)
 
int GWEN_XMLNode_IsChildOf (const GWEN_XMLNODE *parent, const GWEN_XMLNODE *child)
 
GWEN_XMLNODE_NAMESPACEGWEN_XMLNode_NameSpace_dup (const GWEN_XMLNODE_NAMESPACE *ns)
 
void GWEN_XMLNode_NameSpace_free (GWEN_XMLNODE_NAMESPACE *ns)
 
const char * GWEN_XMLNode_NameSpace_GetName (const GWEN_XMLNODE_NAMESPACE *ns)
 
const char * GWEN_XMLNode_NameSpace_GetUrl (const GWEN_XMLNODE_NAMESPACE *ns)
 
GWEN_XMLNODE_NAMESPACEGWEN_XMLNode_NameSpace_new (const char *name, const char *url)
 
GWEN_XMLNODEGWEN_XMLNode_new (GWEN_XMLNODE_TYPE t, const char *data)
 
GWEN_XMLNODEGWEN_XMLNode_Next (const GWEN_XMLNODE *n)
 
int GWEN_XMLNode_NormalizeNameSpaces (GWEN_XMLNODE *n)
 
int GWEN_XMLNode_Path_Dive (GWEN_XMLNODE_PATH *np, GWEN_XMLNODE *n)
 
void GWEN_XMLNode_Path_Dump (GWEN_XMLNODE_PATH *np)
 
GWEN_XMLNODE_PATHGWEN_XMLNode_Path_dup (const GWEN_XMLNODE_PATH *np)
 
void GWEN_XMLNode_Path_free (GWEN_XMLNODE_PATH *np)
 
GWEN_XMLNODE_PATHGWEN_XMLNode_Path_new (void)
 
GWEN_XMLNODEGWEN_XMLNode_Path_Surface (GWEN_XMLNODE_PATH *np)
 
void GWEN_XMLNode_RemoveChildren (GWEN_XMLNODE *n)
 
void GWEN_XMLNode_SetCharValue (GWEN_XMLNODE *n, const char *name, const char *value)
 
int GWEN_XMLNode_SetCharValueByPath (GWEN_XMLNODE *n, uint32_t flags, const char *name, const char *value)
 
void GWEN_XMLNode_SetData (GWEN_XMLNODE *n, const char *data)
 
void GWEN_XMLNode_SetIntProperty (GWEN_XMLNODE *n, const char *name, int value)
 
void GWEN_XMLNode_SetIntValue (GWEN_XMLNODE *n, const char *name, int value)
 
int GWEN_XMLNode_SetIntValueByPath (GWEN_XMLNODE *n, uint32_t flags, const char *name, int value)
 
void GWEN_XMLNode_SetNamespace (GWEN_XMLNODE *n, const char *s)
 
void GWEN_XMLNode_SetProperty (GWEN_XMLNODE *n, const char *name, const char *value)
 
int GWEN_XMLNode_StripNamespaces (GWEN_XMLNODE *n)
 
void GWEN_XMLNode_UnlinkChild (GWEN_XMLNODE *n, GWEN_XMLNODE *child)
 
void GWEN_XMLProperty_add (GWEN_XMLPROPERTY *p, GWEN_XMLPROPERTY **head)
 
void GWEN_XMLProperty_del (GWEN_XMLPROPERTY *p, GWEN_XMLPROPERTY **head)
 
GWEN_XMLPROPERTYGWEN_XMLProperty_dup (const GWEN_XMLPROPERTY *p)
 
void GWEN_XMLProperty_free (GWEN_XMLPROPERTY *p)
 
void GWEN_XMLProperty_freeAll (GWEN_XMLPROPERTY *p)
 
const char * GWEN_XMLProperty_GetName (const GWEN_XMLPROPERTY *pr)
 
const char * GWEN_XMLProperty_GetValue (const GWEN_XMLPROPERTY *pr)
 
void GWEN_XMLProperty_insert (GWEN_XMLPROPERTY *p, GWEN_XMLPROPERTY **head)
 
GWEN_XMLPROPERTYGWEN_XMLProperty_new (const char *name, const char *value)
 

Macro Definition Documentation

◆ DISABLE_DEBUGLOG

#define DISABLE_DEBUGLOG

Definition at line 29 of file xml.c.

◆ GWEN_XML_BUFFERSIZE

#define GWEN_XML_BUFFERSIZE   512

Definition at line 60 of file xml.c.

Referenced by GWEN_XML__ReadAllFromIo(), and GWEN_XMLContext_ReadFromIo().

Function Documentation

◆ GWEN_XML_AddNameSpace()

int GWEN_XML_AddNameSpace ( GWEN_STRINGLIST2 sl,
const char *  prefix,
const char *  name 
)

Definition at line 1424 of file xml.c.

References GWEN_Buffer_AppendByte(), GWEN_Buffer_AppendString(), GWEN_Buffer_free(), GWEN_Buffer_GetStart(), GWEN_Buffer_new(), GWEN_StringList2_AppendString(), and GWEN_StringList2_IntertMode_NoDouble.

Referenced by GWEN_XMLNode__CheckNameSpaceDecls1().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_XML_FindNameSpace()

const char* GWEN_XML_FindNameSpace ( GWEN_STRINGLIST2 sl,
const char *  prefix,
const char *  name 
)

◆ GWEN_XML_FindNameSpaceByName()

const char* GWEN_XML_FindNameSpaceByName ( GWEN_STRINGLIST2 sl,
const char *  s 
)

Definition at line 1471 of file xml.c.

References GWEN_StringList2_First(), GWEN_StringList2Iterator_Data(), GWEN_StringList2Iterator_free(), and GWEN_StringList2Iterator_Next().

Referenced by GWEN_XMLNode__CheckNameSpaceDecls1().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_XML_FindNameSpaceByPrefix()

const char* GWEN_XML_FindNameSpaceByPrefix ( GWEN_STRINGLIST2 sl,
const char *  s 
)

Definition at line 1444 of file xml.c.

References GWEN_StringList2_First(), GWEN_StringList2Iterator_Data(), GWEN_StringList2Iterator_free(), and GWEN_StringList2Iterator_Next().

Here is the call graph for this function:

◆ GWEN_XMLNode__CheckAndSetNameSpace()

int GWEN_XMLNode__CheckAndSetNameSpace ( GWEN_XMLNODE n,
const char *  prefix,
const char *  nspace 
)

Definition at line 1652 of file xml.c.

References DBG_DEBUG, GWEN_Buffer_AppendByte(), GWEN_Buffer_AppendString(), GWEN_Buffer_free(), GWEN_Buffer_GetStart(), GWEN_Buffer_new(), GWEN_LOGDOMAIN, GWEN_XMLNode__SetProperty(), and GWEN_XMLNode_GetProperty().

Referenced by GWEN_XMLNode__SetNameSpaces().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_XMLNode__CheckNameSpaceDecls1()

int GWEN_XMLNode__CheckNameSpaceDecls1 ( GWEN_XMLNODE n,
GWEN_STRINGLIST2 sl,
const char *  currentNameSpace 
)

◆ GWEN_XMLNode__CheckNameSpaceDecls3()

int GWEN_XMLNode__CheckNameSpaceDecls3 ( GWEN_XMLNODE n)

Definition at line 1760 of file xml.c.

References DBG_DEBUG, GWEN_LOGDOMAIN, GWEN_XMLNode__SetNameSpaces(), GWEN_XMLNode_GetFirstTag(), GWEN_XMLNode_GetNextTag(), GWEN_XMLProperty_del(), and GWEN_XMLProperty_free().

Referenced by GWEN_XMLNode_NormalizeNameSpaces().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_XMLNode__SetNameSpaces()

int GWEN_XMLNode__SetNameSpaces ( GWEN_XMLNODE n,
const char *  prefix,
const char *  nspace 
)

Definition at line 1729 of file xml.c.

References GWEN_XMLNode__CheckAndSetNameSpace(), GWEN_XMLNode_GetFirstTag(), and GWEN_XMLNode_GetNextTag().

Referenced by GWEN_XMLNode__CheckNameSpaceDecls3().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_XMLNode__SetProperty()

void GWEN_XMLNode__SetProperty ( GWEN_XMLNODE n,
const char *  name,
const char *  value,
int  doInsert 
)

Definition at line 290 of file xml.c.

References GWEN_Memory_dealloc(), GWEN_Memory_strdup(), GWEN_XMLProperty_add(), GWEN_XMLProperty_insert(), and GWEN_XMLProperty_new().

Referenced by GWEN_XMLNode__CheckAndSetNameSpace(), GWEN_XMLNode_SetIntProperty(), and GWEN_XMLNode_SetProperty().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_XMLNode_FindTag()

GWEN_XMLNODE* GWEN_XMLNode_FindTag ( const GWEN_XMLNODE n,
const char *  tname,
const char *  pname,
const char *  pvalue 
)

Definition at line 743 of file xml.c.

References GWEN_Text_ComparePattern(), GWEN_XMLNode_GetNextTag(), and GWEN_XMLNode_GetProperty().

Referenced by GWEN_XMLNode_FindFirstTag(), and GWEN_XMLNode_FindNextTag().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_XMLNode_GetFirstOfType()

GWEN_XMLNODE* GWEN_XMLNode_GetFirstOfType ( const GWEN_XMLNODE n,
GWEN_XMLNODE_TYPE  t 
)

Definition at line 674 of file xml.c.

References GWEN_XMLNode_GetChild(), and GWEN_XMLNode_Next().

Referenced by GWEN_XMLNode_GetFirstData(), and GWEN_XMLNode_GetFirstTag().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_XMLNode_GetFirstProperty()

GWEN_XMLPROPERTY* GWEN_XMLNode_GetFirstProperty ( const GWEN_XMLNODE n)

Definition at line 1045 of file xml.c.

◆ GWEN_XMLNode_GetNextOfType()

GWEN_XMLNODE* GWEN_XMLNode_GetNextOfType ( const GWEN_XMLNODE n,
GWEN_XMLNODE_TYPE  t 
)

Definition at line 691 of file xml.c.

References GWEN_XMLNode_Next().

Referenced by GWEN_XMLNode_GetNextData(), and GWEN_XMLNode_GetNextTag().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_XMLNode_GetNextProperty()

GWEN_XMLPROPERTY* GWEN_XMLNode_GetNextProperty ( const GWEN_XMLNODE n,
const GWEN_XMLPROPERTY pr 
)

Definition at line 1053 of file xml.c.

◆ GWEN_XMLNode_HandlePath()

void* GWEN_XMLNode_HandlePath ( const char *  entry,
void *  data,
int  idx,
uint32_t  flags 
)

◆ GWEN_XMLNode_NameSpace_dup()

GWEN_XMLNODE_NAMESPACE* GWEN_XMLNode_NameSpace_dup ( const GWEN_XMLNODE_NAMESPACE ns)

Definition at line 2021 of file xml.c.

References GWEN_XMLNode_NameSpace_new().

Referenced by GWEN_XMLNode_AddNameSpace(), and GWEN_XMLNode_dup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_XMLNode_NameSpace_free()

void GWEN_XMLNode_NameSpace_free ( GWEN_XMLNODE_NAMESPACE ns)

Definition at line 2009 of file xml.c.

References GWEN_FREE_OBJECT, and GWEN_LIST_FINI.

Referenced by GWEN_XmlCtxStore_AddAttr().

Here is the caller graph for this function:

◆ GWEN_XMLNode_NameSpace_GetName()

const char* GWEN_XMLNode_NameSpace_GetName ( const GWEN_XMLNODE_NAMESPACE ns)

Definition at line 2032 of file xml.c.

Referenced by GWEN_XMLGL__GetNameSpaceByPrefix(), GWEN_XMLGL__TranslateName(), GWEN_XMLNode__WriteNamespacesToStream(), and GWEN_XMLNode_FindNameSpaceByName().

Here is the caller graph for this function:

◆ GWEN_XMLNode_NameSpace_GetUrl()

const char* GWEN_XMLNode_NameSpace_GetUrl ( const GWEN_XMLNODE_NAMESPACE ns)

◆ GWEN_XMLNode_NameSpace_new()

GWEN_XMLNODE_NAMESPACE* GWEN_XMLNode_NameSpace_new ( const char *  name,
const char *  url 
)

Definition at line 1991 of file xml.c.

References GWEN_LIST_INIT, GWEN_Memory_strdup(), and GWEN_NEW_OBJECT.

Referenced by GWEN_XmlCtxStore_AddAttr(), GWEN_XMLGL__SampleNameSpaces(), and GWEN_XMLNode_NameSpace_dup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_XMLProperty_add()

void GWEN_XMLProperty_add ( GWEN_XMLPROPERTY p,
GWEN_XMLPROPERTY **  head 
)

Definition at line 111 of file xml.c.

References GWEN_LIST_ADD.

Referenced by GWEN_XMLNode__SetProperty(), GWEN_XMLNode_CopyProperties(), and GWEN_XMLNode_dup().

Here is the caller graph for this function:

◆ GWEN_XMLProperty_del()

void GWEN_XMLProperty_del ( GWEN_XMLPROPERTY p,
GWEN_XMLPROPERTY **  head 
)

Definition at line 124 of file xml.c.

References GWEN_LIST_DEL.

Referenced by GWEN_XMLNode__CheckNameSpaceDecls1(), and GWEN_XMLNode__CheckNameSpaceDecls3().

Here is the caller graph for this function:

◆ GWEN_XMLProperty_dup()

GWEN_XMLPROPERTY* GWEN_XMLProperty_dup ( const GWEN_XMLPROPERTY p)

Definition at line 98 of file xml.c.

References GWEN_XMLProperty_new().

Referenced by GWEN_XMLNode_CopyProperties(), and GWEN_XMLNode_dup().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_XMLProperty_free()

void GWEN_XMLProperty_free ( GWEN_XMLPROPERTY p)

Definition at line 86 of file xml.c.

References GWEN_FREE_OBJECT, and GWEN_Memory_dealloc().

Referenced by GWEN_XMLNode__CheckNameSpaceDecls1(), GWEN_XMLNode__CheckNameSpaceDecls3(), and GWEN_XMLProperty_freeAll().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_XMLProperty_freeAll()

void GWEN_XMLProperty_freeAll ( GWEN_XMLPROPERTY p)

Definition at line 130 of file xml.c.

References GWEN_XMLProperty_free().

Referenced by GWEN_XMLNode_free().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_XMLProperty_GetName()

const char* GWEN_XMLProperty_GetName ( const GWEN_XMLPROPERTY pr)

Definition at line 1063 of file xml.c.

◆ GWEN_XMLProperty_GetValue()

const char* GWEN_XMLProperty_GetValue ( const GWEN_XMLPROPERTY pr)

Definition at line 1071 of file xml.c.

◆ GWEN_XMLProperty_insert()

void GWEN_XMLProperty_insert ( GWEN_XMLPROPERTY p,
GWEN_XMLPROPERTY **  head 
)

Definition at line 118 of file xml.c.

References GWEN_LIST_INSERT.

Referenced by GWEN_XMLNode__SetProperty().

Here is the caller graph for this function:

◆ GWEN_XMLProperty_new()

GWEN_XMLPROPERTY* GWEN_XMLProperty_new ( const char *  name,
const char *  value 
)

Definition at line 72 of file xml.c.

References GWEN_Memory_strdup(), and GWEN_NEW_OBJECT.

Referenced by GWEN_XMLNode__SetProperty(), and GWEN_XMLProperty_dup().

Here is the call graph for this function:
Here is the caller graph for this function: