xml.c File Reference

#include "xml_p.h"
#include "xmlctx_l.h"
#include <gwenhywfar/gwenhywfarapi.h>
#include <gwenhywfar/inherit.h>
#include <stdio.h>
#include <gwenhywfar/xml.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/io_file.h>
#include <gwenhywfar/io_memory.h>
#include <gwenhywfar/io_buffered.h>
#include <gwenhywfar/iomanager.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>
#include <ctype.h>
#include <sys/types.h>
#include <errno.h>
Include dependency graph for xml.c:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#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, FILE *f, int ind)
GWEN_XMLNODEGWEN_XMLNode_dup (const GWEN_XMLNODE *n)
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)
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_GetIntValue (const 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 ()
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)
void GWEN_XMLNode_SetData (GWEN_XMLNODE *n, const char *data)
void GWEN_XMLNode_SetIntValue (GWEN_XMLNODE *n, 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)

Define Documentation

#define DISABLE_DEBUGLOG

Definition at line 32 of file xml.c.

#define GWEN_XML_BUFFERSIZE   512

Definition at line 65 of file xml.c.

Referenced by GWEN_XML__ReadAllFromIo(), and GWEN_XML_ReadFromIo().


Function Documentation

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

Definition at line 1169 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:

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 
)

Definition at line 1214 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:

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

Definition at line 1188 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:

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

Definition at line 1392 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:

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

Definition at line 1498 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:

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

Definition at line 1468 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:

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

Definition at line 248 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(), and GWEN_XMLNode_SetProperty().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 623 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* GWEN_XMLNode_GetFirstOfType ( const GWEN_XMLNODE n,
GWEN_XMLNODE_TYPE  t 
)

Definition at line 560 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_XMLPROPERTY* GWEN_XMLNode_GetFirstProperty ( const GWEN_XMLNODE n  ) 

Definition at line 806 of file xml.c.

GWEN_XMLNODE* GWEN_XMLNode_GetNextOfType ( const GWEN_XMLNODE n,
GWEN_XMLNODE_TYPE  t 
)

Definition at line 576 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_XMLPROPERTY* GWEN_XMLNode_GetNextProperty ( const GWEN_XMLNODE n,
const GWEN_XMLPROPERTY pr 
)

Definition at line 813 of file xml.c.

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

Definition at line 1724 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:

void GWEN_XMLNode_NameSpace_free ( GWEN_XMLNODE_NAMESPACE ns  ) 

Definition at line 1713 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:

const char* GWEN_XMLNode_NameSpace_GetName ( const GWEN_XMLNODE_NAMESPACE ns  ) 

Definition at line 1734 of file xml.c.

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

Here is the caller graph for this function:

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

Definition at line 1696 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:

void GWEN_XMLProperty_add ( GWEN_XMLPROPERTY p,
GWEN_XMLPROPERTY **  head 
)

Definition at line 106 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:

void GWEN_XMLProperty_del ( GWEN_XMLPROPERTY p,
GWEN_XMLPROPERTY **  head 
)

Definition at line 117 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* GWEN_XMLProperty_dup ( const GWEN_XMLPROPERTY p  ) 

Definition at line 100 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:

void GWEN_XMLProperty_free ( GWEN_XMLPROPERTY p  ) 

Definition at line 90 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:

void GWEN_XMLProperty_freeAll ( GWEN_XMLPROPERTY p  ) 

Definition at line 122 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:

const char* GWEN_XMLProperty_GetName ( const GWEN_XMLPROPERTY pr  ) 

Definition at line 822 of file xml.c.

const char* GWEN_XMLProperty_GetValue ( const GWEN_XMLPROPERTY pr  ) 

Definition at line 829 of file xml.c.

void GWEN_XMLProperty_insert ( GWEN_XMLPROPERTY p,
GWEN_XMLPROPERTY **  head 
)

Definition at line 112 of file xml.c.

References GWEN_LIST_INSERT.

Referenced by GWEN_XMLNode__SetProperty().

Here is the caller graph for this function:

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

Definition at line 77 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:

Generated on Mon Jul 5 22:58:27 2010 for gwenhywfar by  doxygen 1.6.3