136 lines
6.7 KiB
C
136 lines
6.7 KiB
C
/*----------------------------------------------------------------------------*/
|
|
/* File: fmt_hdl_xml.h */
|
|
/*----------------------------------------------------------------------------*/
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
/* IMR - Interlinking Message Router */
|
|
/* Copyright (C) 2005 Arnaud G. Gibert & Others (See ReadMe.txt) */
|
|
/* mailto:arnaud@rx3.net */
|
|
/* http://www.rx3.org/dvp/?dvp=imr */
|
|
/*----------------------------------------------------------------------------*/
|
|
/* This file is part of IMR */
|
|
/* */
|
|
/* This program is free software; you can redistribute it and/or */
|
|
/* modify it under the terms of the GNU General Public License */
|
|
/* as published by the Free Software Foundation; either version 2 */
|
|
/* of the License, or (at your option) any later version. */
|
|
/* */
|
|
/* This program is distributed in the hope that it will be useful, */
|
|
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
|
|
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
|
|
/* GNU General Public License for more details. */
|
|
/* */
|
|
/* You should have received a copy of the GNU General Public License */
|
|
/* along with this program; if not, write to the Free Software Foundation, */
|
|
/* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
#ifndef _XML_HANDLER_H_
|
|
#define _XML_HANDLER_H_
|
|
|
|
#include <libxml/tree.h>
|
|
#include <libxml/xpath.h>
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
/* Global Include */
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
#include "libmapping_mng.h"
|
|
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
/* Local definition */
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
#ifdef _XML_HANDLER_C_
|
|
|
|
# define IMRD_XML_VERSION "1.0"
|
|
# define IMRD_XML_BALISE "/"
|
|
# define IMRD_SOON_SIZE 100
|
|
# define IMRD_FIRST_NODE 0
|
|
# define IMRD_FATHER_SIZE 100
|
|
# define IMRD_ATTIBUTE_SIZE 100
|
|
|
|
typedef int IMRT_NB_FATHER ;
|
|
typedef char ** IMRT_FATHER_TABLE;
|
|
|
|
|
|
typedef struct IMRT_PARSE_PATH_XML
|
|
{
|
|
IMRT_NB_FATHER Nb_Father;
|
|
IMRT_Status Attribute_present;
|
|
IMRT_FATHER_TABLE Father_Table;
|
|
char Soon_Name[IMRD_SOON_SIZE];
|
|
char Attribute_Name[IMRD_ATTIBUTE_SIZE];
|
|
char Attribute_Value[IMRD_ATTIBUTE_SIZE];
|
|
|
|
}IMRT_PARSE_PATH_XML;
|
|
|
|
#endif
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
/* Global Variables */
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
#ifdef _XML_HANDLER_C_
|
|
|
|
IMRT_Buffer *IMRG_XML_Buffer_Ident_Ptr;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
/* Prototypes */
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
#ifdef _XML_HANDLER_C_
|
|
|
|
IMRT_Status MM_XML_StrHdl_Init ( void );
|
|
IMRT_Status MM_XML_StrHdl_DeInit ( void );
|
|
IMRT_Status XML_Hdl_DataTemp_Alloc ( IMRT_Buffer * );
|
|
IMRT_Status XML_Hdl_DataTemp_Free ( IMRT_Buffer * );
|
|
IMRT_Status XML_Hdl_DataBuf_Free ( IMRT_Buffer * );
|
|
IMRT_Status MM_XML_StrHdl_Data_Free ( IMRT_Buffer * );
|
|
IMRT_Status XML_Hdl_Format_Ident ( IMRT_Buffer * );
|
|
IMRT_Status MM_XML_StrHdl_Ident ( IMRT_Msg_Id * , IMRT_Buffer * );
|
|
IMRT_Status MM_XML_StrHdl_Open ( IMRT_Buffer * );
|
|
IMRT_Status MM_XML_StrHdl_Close ( IMRT_Buffer * );
|
|
IMRT_Status MM_XML_StrHdl_Flush ( IMRT_Buffer * );
|
|
IMRT_Status MM_XML_StrHdl_Data_List ( IMRT_Buffer * );
|
|
IMRT_Status MM_XML_StrHdl_Copy ( IMRT_Buffer * , IMRT_Buffer * );
|
|
IMRT_Status XML_Hdl_Field_Exist ( IMRT_Field * , IMRT_Buffer * );
|
|
IMRT_Status MM_XML_StrHdl_Get ( IMRT_Buffer_Data ** , IMRT_Field * , IMRT_Buffer * , size_t * );
|
|
IMRT_Status MM_XML_StrHdl_Convert ( IMRT_Buffer_Data ** , IMRT_Buffer_Data * , IMRT_Field * , size_t *, IMRT_StrHdl_Cnv_Func * );
|
|
IMRT_Status MM_XML_StrHdl_Put ( IMRT_Buffer_Data * , IMRT_Field * , IMRT_Buffer * , size_t );
|
|
IMRT_Status IMR_MM_XML_StrHdl_Field_Value ( IMRT_Field * , IMRT_Field_Value_Id);
|
|
IMRT_Status IMR_MM_XML_StrHdl_Field_Exist ( IMRT_Field * );
|
|
IMRT_Status IMR_MM_XML_StrHdl_Msg_Size ( size_t );
|
|
IMRT_Status MM_XML_DInit_StructPath (IMRT_PARSE_PATH_XML * );
|
|
IMRT_Status MM_XML_Proceed_Path ( IMRT_PARSE_PATH_XML * , IMRT_Buffer_Data * , xmlDocPtr );
|
|
IMRT_Status MM_XML_Split_Path ( IMRT_Buffer_Data * Chaine_Ptr , IMRT_PARSE_PATH_XML * PathXml_Ptr );
|
|
IMRT_Status MM_XML_SplitAttribute ( IMRT_PARSE_PATH_XML * PathXml_Ptr );
|
|
#else
|
|
|
|
extern IMRT_Status MM_XML_StrHdl_Init ( void );
|
|
extern IMRT_Status MM_XML_StrHdl_DeInit ( void );
|
|
extern IMRT_Status MM_XML_StrHdl_Data_Free ( IMRT_Buffer * );
|
|
extern IMRT_Status MM_XML_StrHdl_Ident ( IMRT_Msg_Id * , IMRT_Buffer * );
|
|
extern IMRT_Status MM_XML_StrHdl_Open ( IMRT_Buffer * );
|
|
extern IMRT_Status MM_XML_StrHdl_Close ( IMRT_Buffer * );
|
|
extern IMRT_Status MM_XML_StrHdl_Flush ( IMRT_Buffer * );
|
|
extern IMRT_Status MM_XML_StrHdl_Data_List ( IMRT_Buffer * );
|
|
extern IMRT_Status MM_XML_StrHdl_Copy ( IMRT_Buffer * , IMRT_Buffer * );
|
|
extern IMRT_Status MM_XML_StrHdl_Get ( IMRT_Buffer_Data ** , IMRT_Field * , IMRT_Buffer * , size_t * );
|
|
extern IMRT_Status MM_XML_StrHdl_Convert ( IMRT_Buffer_Data ** , IMRT_Buffer_Data * , IMRT_Field * , size_t *, IMRT_StrHdl_Cnv_Func * );
|
|
extern IMRT_Status MM_XML_StrHdl_Put ( IMRT_Buffer_Data * , IMRT_Field * , IMRT_Buffer * , size_t );
|
|
|
|
#endif
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
|
|
#endif
|
|
|