1 /*************************************************************************** 2 $RCSfile$ 3 ------------------- 4 cvs : $Id: xsd.h 898 2005-11-03 09:51:39Z cstim $ 5 begin : Sat Jun 28 2003 6 copyright : (C) 2003 by Martin Preuss 7 email : martin@libchipcard.de 8 9 *************************************************************************** 10 * * 11 * This library is free software; you can redistribute it and/or * 12 * modify it under the terms of the GNU Lesser General Public * 13 * License as published by the Free Software Foundation; either * 14 * version 2.1 of the License, or (at your option) any later version. * 15 * * 16 * This library is distributed in the hope that it will be useful, * 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 19 * Lesser General Public License for more details. * 20 * * 21 * You should have received a copy of the GNU Lesser General Public * 22 * License along with this library; if not, write to the Free Software * 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * 24 * MA 02111-1307 USA * 25 * * 26 ***************************************************************************/ 27 28 #ifndef GWENHYWFAR_XMLCTX_H 29 #define GWENHYWFAR_XMLCTX_H 30 31 #include <gwenhywfar/gwenhywfarapi.h> 32 #include <gwenhywfar/inherit.h> 33 #include <stdio.h> 34 35 #ifdef __cplusplus 36 extern "C" { 37 #endif 38 39 typedef struct GWEN_XML_CONTEXT GWEN_XML_CONTEXT; 40 GWEN_INHERIT_FUNCTION_LIB_DEFS(GWEN_XML_CONTEXT, GWENHYWFAR_API) 41 42 43 #include <gwenhywfar/xml.h> 44 45 46 47 typedef int (*GWEN_XMLCTX_STARTTAG_FN)(GWEN_XML_CONTEXT *ctx, 48 const char *tagName); 49 typedef int (*GWEN_XMLCTX_ENDTAG_FN)(GWEN_XML_CONTEXT *ctx, int closing); 50 typedef int (*GWEN_XMLCTX_ADDDATA_FN)(GWEN_XML_CONTEXT *ctx, 51 const char *data); 52 typedef int (*GWEN_XMLCTX_ADDCOMMENT_FN)(GWEN_XML_CONTEXT *ctx, 53 const char *data); 54 typedef int (*GWEN_XMLCTX_ADDATTR_FN)(GWEN_XML_CONTEXT *ctx, 55 const char *attrName, 56 const char *attrData); 57 58 59 60 GWENHYWFAR_API GWEN_XML_CONTEXT *GWEN_XmlCtx_new(uint32_t flags); 61 GWENHYWFAR_API void GWEN_XmlCtx_free(GWEN_XML_CONTEXT *ctx); 62 GWENHYWFAR_API void GWEN_XmlCtx_Attach(GWEN_XML_CONTEXT *ctx); 63 64 GWENHYWFAR_API 65 uint32_t GWEN_XmlCtx_GetFlags(const GWEN_XML_CONTEXT *ctx); 66 67 GWENHYWFAR_API 68 void GWEN_XmlCtx_SetFlags(GWEN_XML_CONTEXT *ctx, uint32_t f); 69 70 71 GWENHYWFAR_API 72 const char *GWEN_XmlCtx_GetEncoding(const GWEN_XML_CONTEXT *ctx); 73 74 GWENHYWFAR_API 75 void GWEN_XmlCtx_SetEncoding(GWEN_XML_CONTEXT *ctx, const char *encoding); 76 77 78 GWENHYWFAR_API 79 uint32_t GWEN_XmlCtx_GetFinishedElement(const GWEN_XML_CONTEXT *ctx); 80 81 GWENHYWFAR_API 82 void GWEN_XmlCtx_IncFinishedElement(GWEN_XML_CONTEXT *ctx); 83 84 GWENHYWFAR_API 85 void GWEN_XmlCtx_ResetFinishedElement(GWEN_XML_CONTEXT *ctx); 86 87 88 GWENHYWFAR_API 89 int GWEN_XmlCtx_GetDepth(const GWEN_XML_CONTEXT *ctx); 90 91 GWENHYWFAR_API 92 void GWEN_XmlCtx_SetDepth(GWEN_XML_CONTEXT *ctx, int i); 93 94 GWENHYWFAR_API 95 void GWEN_XmlCtx_IncDepth(GWEN_XML_CONTEXT *ctx); 96 97 GWENHYWFAR_API 98 int GWEN_XmlCtx_DecDepth(GWEN_XML_CONTEXT *ctx); 99 100 101 GWENHYWFAR_API 102 void GWEN_XmlCtx_SetCurrentNode(GWEN_XML_CONTEXT *ctx, GWEN_XMLNODE *n); 103 104 GWENHYWFAR_API 105 GWEN_XMLNODE *GWEN_XmlCtx_GetCurrentNode(const GWEN_XML_CONTEXT *ctx); 106 107 GWENHYWFAR_API 108 void GWEN_XmlCtx_SetCurrentHeader(GWEN_XML_CONTEXT *ctx, GWEN_XMLNODE *n); 109 110 GWENHYWFAR_API 111 GWEN_XMLNODE *GWEN_XmlCtx_GetCurrentHeader(const GWEN_XML_CONTEXT *ctx); 112 113 GWENHYWFAR_API 114 GWEN_XMLCTX_STARTTAG_FN GWEN_XmlCtx_SetStartTagFn(GWEN_XML_CONTEXT *ctx, 115 GWEN_XMLCTX_STARTTAG_FN f); 116 117 GWENHYWFAR_API 118 GWEN_XMLCTX_ENDTAG_FN GWEN_XmlCtx_SetEndTagFn(GWEN_XML_CONTEXT *ctx, 119 GWEN_XMLCTX_ENDTAG_FN f); 120 121 GWENHYWFAR_API 122 GWEN_XMLCTX_ADDDATA_FN GWEN_XmlCtx_SetAddDataFn(GWEN_XML_CONTEXT *ctx, 123 GWEN_XMLCTX_ADDDATA_FN f); 124 125 GWENHYWFAR_API 126 GWEN_XMLCTX_ADDCOMMENT_FN 127 GWEN_XmlCtx_SetAddCommentFn(GWEN_XML_CONTEXT *ctx, 128 GWEN_XMLCTX_ADDCOMMENT_FN f); 129 130 GWENHYWFAR_API 131 GWEN_XMLCTX_ADDATTR_FN GWEN_XmlCtx_SetAddAttrFn(GWEN_XML_CONTEXT *ctx, 132 GWEN_XMLCTX_ADDATTR_FN f); 133 134 135 136 137 138 GWENHYWFAR_API 139 GWEN_XML_CONTEXT *GWEN_XmlCtxStore_new(GWEN_XMLNODE *n, uint32_t flags); 140 141 142 #ifdef __cplusplus 143 } 144 #endif 145 146 147 #endif 148 149