00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00033 #ifndef _RTEXIDECODER_H_
00034 #define _RTEXIDECODER_H_
00035
00036 #include "rtexisrc/osrtexi.h"
00037 #include "rtxmlsrc/osrtxml.h"
00038 #include "rtxsrc/rtxArrayList.h"
00039
00040 #ifdef __cplusplus
00041 extern "C" {
00042 #endif
00043
00044 #define OSEXI_NO_SUBTYPES 1
00045 #define OSEXI_NILLABLE 2
00046 #define OSEXI_HAS_DEFAULT 4
00047
00069 EXTERNEXI int rtEXIDecAttribute
00070 (OSCTXT* pctxt, OSXMLFullQName* pqname, const OSUTF8CHAR** ppvalue);
00071
00091 EXTERNEXI int rtEXIDecBinary
00092 (OSCTXT* pctxt, OSOCTET* pvalue, OSUINT32* pnocts, OSINT32 bufsize);
00093
00103 EXTERNEXI int rtEXIDecBoolValue (OSCTXT* pctxt, OSBOOL* pvalue);
00104
00119 EXTERNEXI int rtEXIDecBoolValueWithPattern
00120 (OSCTXT* pctxt, OSBOOL* pvalue, OSUINT8 pattern);
00121
00142 EXTERNEXI int rtEXIDec_CH_String_EE
00143 (OSCTXT* pctxt, const OSXMLFullQName* pqname, const OSUINT16* charSet,
00144 const OSUTF8CHAR** ppvalue);
00145
00155 EXTERNEXI int rtEXIDecDate (OSCTXT* pctxt, OSNumDateTime* pvalue);
00156
00170 EXTERNEXI int rtEXIDecDateString (OSCTXT* pctxt, const OSUTF8CHAR** ppvalue);
00171
00181 EXTERNEXI int rtEXIDecDateTime (OSCTXT* pctxt, OSNumDateTime* pvalue);
00182
00196 EXTERNEXI int rtEXIDecDateTimeString
00197 (OSCTXT* pctxt, const OSUTF8CHAR** ppvalue);
00198
00208 EXTERNEXI int rtEXIDecDecimalValue (OSCTXT* pctxt, OSREAL* pvalue);
00209
00238 EXTERNEXI int rtEXIDecDocumentType
00239 (OSCTXT* pctxt, const OSUTF8CHAR** ppName, const OSUTF8CHAR** ppPublic,
00240 const OSUTF8CHAR** ppSystem, const OSUTF8CHAR** ppText);
00241
00251 EXTERNEXI int rtEXIDecDoubleValue (OSCTXT* pctxt, OSREAL* pvalue);
00252
00265 EXTERNEXI int rtEXIDecDynBinary (OSCTXT* pctxt, OSDynOctStr* pvalue);
00266
00275 EXTERNEXI int rtEXIDecEndDocument (OSCTXT* pctxt);
00276
00287 EXTERNEXI int rtEXIDecEndEvent (OSCTXT* pctxt);
00288
00300 EXTERNEXI int rtEXIDecEndEventCompact (OSCTXT* pctxt);
00301
00312 EXTERNEXI int rtEXIDecEndEventStrict (OSCTXT* pctxt);
00313
00328 EXTERNEXI int rtEXIDecEventCodePart1
00329 (OSCTXT* pctxt, OSINT32* ppart, OSUINT32 nbits, OSUINT32 maxval);
00330
00344 EXTERNEXI int rtEXIDecGetStateIndex (OSCTXT* pctxt, OSUINT32 flags);
00345
00364 EXTERNEXI int rtEXIDecGetStateIndexCompact (OSCTXT* pctxt, OSUINT16 stx,
00365 const OSEXIStateTableRecord statetab[], size_t nrows, OSUINT32 flags,
00366 OSUINT32* prepcnt);
00367
00385 EXTERNEXI int rtEXIDecGetStateIndexStrict (OSCTXT* pctxt, OSUINT16 stx,
00386 const OSEXIStateTableRecord statetab[], size_t nrows, OSUINT32 flags,
00387 OSUINT32* prepcnt);
00388
00398 EXTERNEXI int rtEXIDecFloatValue (OSCTXT* pctxt, OSFLOAT* pvalue);
00399
00409 EXTERNEXI int rtEXIDecGDay (OSCTXT* pctxt, OSNumDateTime* pvalue);
00410
00424 EXTERNEXI int rtEXIDecGDayString (OSCTXT* pctxt, const OSUTF8CHAR** ppvalue);
00425
00435 EXTERNEXI int rtEXIDecGMonth (OSCTXT* pctxt, OSNumDateTime* pvalue);
00436
00446 EXTERNEXI int rtEXIDecGMonthDay (OSCTXT* pctxt, OSNumDateTime* pvalue);
00447
00461 EXTERNEXI int rtEXIDecGMonthDayString (OSCTXT* pctxt, const OSUTF8CHAR** ppvalue);
00462
00476 EXTERNEXI int rtEXIDecGMonthString (OSCTXT* pctxt, const OSUTF8CHAR** ppvalue);
00477
00487 EXTERNEXI int rtEXIDecGYear (OSCTXT* pctxt, OSNumDateTime* pvalue);
00488
00498 EXTERNEXI int rtEXIDecGYearMonth (OSCTXT* pctxt, OSNumDateTime* pvalue);
00499
00513 EXTERNEXI int rtEXIDecGYearMonthString (OSCTXT* pctxt, const OSUTF8CHAR** ppvalue);
00514
00528 EXTERNEXI int rtEXIDecGYearString (OSCTXT* pctxt, const OSUTF8CHAR** ppvalue);
00529
00537 EXTERNEXI OSBOOL rtEXIDecHasNext (OSCTXT* pctxt);
00538
00548 EXTERNEXI int rtEXIDecHeader (OSCTXT* pctxt);
00549
00560 EXTERNEXI int rtEXIDecInitCompression (OSCTXT* pctxt, OSUINT32 nmChannelIds);
00561
00571 EXTERNEXI int rtEXIDecInt16Value (OSCTXT* pctxt, OSINT16* pvalue);
00572
00582 EXTERNEXI int rtEXIDecInt64Value (OSCTXT* pctxt, OSINT64* pvalue);
00583
00593 EXTERNEXI int rtEXIDecInt8Value (OSCTXT* pctxt, OSINT8* pvalue);
00594
00604 EXTERNEXI int rtEXIDecIntValue (OSCTXT* pctxt, OSINT32* pvalue);
00605
00622 EXTERNEXI int rtEXIDecLocalName (OSCTXT* pctxt, const OSUTF8CHAR** ppname);
00623
00641 EXTERNEXI int rtEXIDecNamespaceURI (OSCTXT* pctxt, const OSUTF8CHAR** ppNSURI);
00642
00654 EXTERNEXI int rtEXIDecNBitUIntValue
00655 (OSCTXT* pctxt, OSUINT32* pvalue, OSUINT32 nbits);
00656
00667 EXTERNEXI int rtEXIDecNextEventType
00668 (OSCTXT* pctxt, OSEXIEventType* pEventType);
00669
00679 EXTERNEXI int rtEXIDecoderInit (OSCTXT* pctxt);
00680
00699 EXTERNEXI int rtEXIDecPrefix
00700 (OSCTXT* pctxt, const OSUTF8CHAR* uri, const OSUTF8CHAR** ppPrefix);
00701
00720 EXTERNEXI int rtEXIDecProcessingInstruction
00721 (OSCTXT* pctxt, const OSUTF8CHAR** ppTarget, const OSUTF8CHAR** ppData);
00722
00740 EXTERNEXI int rtEXIDecQName (OSCTXT* pctxt, OSXMLFullQName* pqname);
00741
00760 EXTERNEXI int rtEXIDecQNameValue
00761 (OSCTXT* pctxt, OSXMLFullQName* pvalue, const OSXMLFullQName* pqname);
00762
00773 EXTERNEXI int rtEXIDecReset (OSCTXT* pctxt);
00774
00794 EXTERNEXI int rtEXIDecSimpleTypeEvent
00795 (OSCTXT* pctxt, OSINT32* ppart, OSUINT32 flags);
00796
00817 EXTERNEXI int rtEXIDecSimpleTypeEventCompact
00818 (OSCTXT* pctxt, OSINT32* ppart, OSUINT32 flags);
00819
00839 EXTERNEXI int rtEXIDecSimpleTypeEventStrict
00840 (OSCTXT* pctxt, OSINT32* ppart, OSUINT32 flags);
00841
00865 EXTERNEXI int rtEXIDecString
00866 (OSCTXT* pctxt, const OSXMLFullQName* pqname, const OSUINT16* charSet,
00867 const OSUTF8CHAR** ppvalue);
00868
00880 EXTERNEXI int rtEXIDecStringToCharArray
00881 (OSCTXT* pctxt, const OSUTF8CHAR* target, size_t start, size_t length);
00882
00890 EXTERNEXI int rtEXIDecStringLength (OSCTXT* pctxt);
00891
00901 EXTERNEXI int rtEXIDecTime (OSCTXT* pctxt, OSNumDateTime* pvalue);
00902
00916 EXTERNEXI int rtEXIDecTimeString (OSCTXT* pctxt, const OSUTF8CHAR** ppvalue);
00917
00927 EXTERNEXI int rtEXIDecUInt16Value (OSCTXT* pctxt, OSUINT16* pvalue);
00928
00938 EXTERNEXI int rtEXIDecUInt64Value (OSCTXT* pctxt, OSUINT64* pvalue);
00939
00949 EXTERNEXI int rtEXIDecUInt8Value (OSCTXT* pctxt, OSUINT8* pvalue);
00950
00960 EXTERNEXI int rtEXIDecUIntValue (OSCTXT* pctxt, OSUINT32* pvalue);
00961
00977 EXTERNEXI int rtEXIDecUTF8Str
00978 (OSCTXT* pctxt, OSUTF8CHAR** ppvalue, const OSUINT16* charSet);
00979
00997 EXTERNEXI int rtEXIDecUTF8Chars
00998 (OSCTXT* pctxt, OSUTF8CHAR** ppvalue, OSUINT32 nchars, const OSUINT16* charSet);
00999
01000 #define rtEXIDecSimpleTypeEvent_DS \
01001 ((rtEXITestOption (pctxt, OSEXI_STRICT)) ? \
01002 rtEXIDecSimpleTypeEventStrict : rtEXIDecSimpleTypeEvent)
01003
01004 #define rtEXIDecSimpleTypeEvent_CS \
01005 ((rtEXITestOption (pctxt, OSEXI_STRICT)) ? \
01006 rtEXIDecSimpleTypeEventStrict : rtEXIDecSimpleTypeEventCompact)
01007
01008 #define rtEXIDecEndEvent_DS \
01009 ((rtEXITestOption (pctxt, OSEXI_STRICT)) ? \
01010 rtEXIDecEndEventStrict : rtEXIDecEndEvent)
01011
01012 #define rtEXIDecEndEvent_CS \
01013 ((rtEXITestOption (pctxt, OSEXI_STRICT)) ? \
01014 rtEXIDecEndEventStrict : rtEXIDecEndEventCompact)
01015
01016 #define rtEXIDecGetStateIndex_DS \
01017 ((rtEXITestOption (pctxt, OSEXI_STRICT)) ? \
01018 rtEXIDecGetStateIndexStrict : rtEXIDecGetStateIndex)
01019
01020 #define rtEXIDecGetStateIndex_CS \
01021 ((rtEXITestOption (pctxt, OSEXI_STRICT)) ? \
01022 rtEXIDecGetStateIndexStrict : rtEXIDecGetStateIndexCompact)
01023
01024 #ifdef __cplusplus
01025 }
01026 #endif
01027
01030 #endif