rtEXI2SAX.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2008 by Objective Systems, Inc.
00003  *
00004  * This software is furnished under a license and may be used and copied
00005  * only in accordance with the terms of such license and with the
00006  * inclusion of the above copyright notice. This software or any other
00007  * copies thereof may not be provided or otherwise made available to any
00008  * other person. No title to and ownership of the software is hereby
00009  * transferred.
00010  *
00011  * The information in this software is subject to change without notice
00012  * and should not be construed as a commitment by Objective Systems, Inc.
00013  *
00014  * PROPRIETARY NOTICE
00015  *
00016  * This software is an unpublished work subject to a confidentiality agreement
00017  * and is protected by copyright and trade secret law.  Unauthorized copying,
00018  * redistribution or other use of this work is prohibited.
00019  *
00020  * The above notice of copyright on this source code product does not indicate
00021  * any actual or intended publication of such source code.
00022  *
00023  *****************************************************************************/
00031 #ifndef _RTEXI2SAX_H_
00032 #define _RTEXI2SAX_H_
00033 
00034 #include "rtxsrc/rtxStack.h"
00035 #include "rtxsrc/rtxXmlQName.h"
00036 #include "rtexisrc/rtEXIExternDefs.h"
00037 
00038 #ifdef __cplusplus
00039 extern "C" {
00040 #endif
00041 
00050 typedef int (*StartElementHandler)
00051 (void *userData, const OSUTF8CHAR *localname, const OSUTF8CHAR *qname,
00052  const OSUTF8CHAR* const* attrs);
00053 
00062 typedef int (*EndElementHandler)
00063 (void *userData, const OSUTF8CHAR *localname, const OSUTF8CHAR *qname);
00064 
00074 /* s is not 0 terminated. */
00075 typedef int (*CharacterDataHandler)
00076 (void *userData, const OSUTF8CHAR* value, int len);
00077 
00078 typedef struct EXI2SAXReader {
00079    OSCTXT* pctxt;
00080    void* userData;
00081    OSRTStack elemQNameStack;
00082    StartElementHandler  pStartElementFunc;
00083    EndElementHandler    pEndElementFunc; 
00084    CharacterDataHandler pCharactersFunc;
00085 } EXI2SAXReader;
00086 
00087 typedef struct EXI2SAXAttribute {
00088    OSXMLFullQName*   pqname;
00089    const OSUTF8CHAR* value;
00090 } EXI2SAXAttribute;
00091 
00104 EXTERNEXI EXI2SAXReader* rtEXI2SAXCreateReader 
00105 (OSCTXT* pctxt, void* pUserData, 
00106  StartElementHandler  startElemFunc, 
00107  EndElementHandler    endElemFunc, 
00108  CharacterDataHandler charactersFunc);
00109 
00118 EXTERNEXI int rtEXI2SAXParse (EXI2SAXReader* pReader);
00119 
00120 #ifdef __cplusplus
00121 }
00122 #endif
00123 
00126 #endif