00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00028 #ifndef _OSRTXML_H_
00029 #define _OSRTXML_H_
00030
00031 #ifdef BUILDXMLDLL
00032 #define EXTERNXML __declspec(dllexport)
00033 #elif defined (USEXMLDLL)
00034 #define EXTERNXML __declspec(dllimport)
00035 #else
00036 #define EXTERNXML
00037 #endif
00038
00039 #include "rtxsrc/rtxCommon.h"
00040 #include "rtxmlsrc/rtSaxDefs.h"
00041 #include "rtxsrc/rtxDList.h"
00042 #include "rtxsrc/rtxMemBuf.h"
00043 #include "rtxmlsrc/rtXmlErrCodes.h"
00044
00045
00046
00047 #define OSUPCASE 0x00008000
00048 #define OSTERMSTART 0x00004000
00049
00050 typedef enum {
00051 OSXMLUTF8,
00052 OSXMLUTF16
00053 } OSXMLEncoding;
00054
00055 typedef struct OSXMLFacets {
00056 int totalDigits;
00057 int fractionDigits;
00058 } OSXMLFacets;
00059
00060 typedef struct {
00061 const OSUTF8CHAR* value;
00062 size_t length;
00063 } OSXMLStrFragment;
00064
00065 typedef struct {
00066 OSXMLStrFragment mQName;
00067 OSXMLStrFragment mLocalName;
00068 OSXMLStrFragment mPrefix;
00069 } OSXMLNameFragments;
00070
00071 typedef struct OSXMLItemDescr {
00072 OSXMLStrFragment localName;
00073 OSINT16 nsidx;
00074 } OSXMLItemDescr;
00075
00076 typedef OSXMLItemDescr OSXMLAttrDescr;
00077 typedef OSXMLItemDescr OSXMLElemDescr;
00078
00079 typedef struct OSXMLElemIDRec {
00080 OSXMLElemDescr descr;
00081 OSUINT16 id;
00082 } OSXMLElemIDRec;
00083
00084 typedef struct OSXMLGroupDesc {
00085 int row;
00086 int num;
00087 int anyCase;
00088 } OSXMLGroupDesc;
00089
00090 #define OSXMLFRAGSEQUAL(frag1,frag2) \
00091 (frag1.length==frag2.length && !memcmp(frag1.value,frag2.value,frag1.length))
00092
00093 #define OSXMLQNAMEEQUALS(xnamefrag,qnametext) rtxUTF8StrnEqual \
00094 (xnamefrag.mQName.value, OSUTF8(qnametext), xnamefrag.mQName.length)
00095
00096 #define OSXMLTERMSTARTELEM(pctxt) \
00097 OSRTSAFEPUTCHAR (pctxt, '>'); \
00098 pctxt->flags &= ~OSTERMSTART; \
00099 pctxt->state = OSXMLSTART;
00100
00101
00102
00103
00104
00105 typedef struct {
00106 OSFreeCtxtAppInfoPtr pFreeFunc;
00107 OSResetCtxtAppInfoPtr pResetFunc;
00108 OSUTF8CHAR* schemaLocation;
00109 OSUTF8CHAR* noNSSchemaLoc;
00110 OSUTF8CHAR* xsiTypeAttr;
00111 OSXMLEncoding encoding;
00112 OSRTDList namespaceList;
00113 OSRTMEMBUF memBuf;
00114 OSINT32 mSaxLevel;
00115 OSINT32 mSkipLevel;
00116 OSUINT32 maxSaxErrors;
00117 OSUINT32 errorsCnt;
00118 OSUINT8 indent;
00119 OSBOOL mbCdataProcessed;
00120 OSBOOL encDocHeader;
00121 OSXMLFacets facets;
00122 char indentChar;
00123 const OSUTF8CHAR* encodingStr;
00124 struct OSXMLReader* pXmlPPReader;
00125 } OSXMLCtxtInfo;
00126
00127 typedef enum {
00128 OSXMLINIT,
00129 OSXMLHEADER,
00130 OSXMLSTART,
00131 OSXMLDATA,
00132 OSXMLEND
00133 } OSXMLState;
00134
00135 typedef struct OSXMLQName {
00136 const OSUTF8CHAR* nsPrefix;
00137 const OSUTF8CHAR* ncName;
00138 } OSXMLQName;
00139
00140 struct OSSAXHandlerBase;
00141
00142 typedef struct OSIntegerFmt {
00143 OSINT8 integerMaxDigits;
00144
00145 OSBOOL signPresent;
00146
00147 } OSIntegerFmt;
00148
00149 typedef struct OSDecimalFmt {
00150 OSINT8 totalDigits;
00151 OSINT8 fractionDigits;
00152
00153 OSINT8 fractionMinDigits;
00154
00155
00156 OSINT8 integerMaxDigits;
00157
00158
00159 OSINT8 integerMinDigits;
00160
00161 OSBOOL signPresent;
00162
00163 OSBOOL pointPresent;
00164
00165 OSUINT8 nPatterns;
00166 const char* const* patterns;
00167
00168 } OSDecimalFmt;
00169
00170 typedef struct OSDoubleFmt {
00171 OSINT8 totalDigits;
00172 OSINT8 fractionDigits;
00173
00174 OSINT8 fractionMinDigits;
00175
00176
00177 OSINT8 integerMaxDigits;
00178
00179
00180 OSINT8 integerMinDigits;
00181
00182 OSINT8 expSymbol;
00183
00184 OSINT16 expMinValue;
00185 OSINT16 expMaxValue;
00186 OSINT8 expDigits;
00187
00188
00189 OSBOOL signPresent;
00190
00191 OSBOOL pointPresent;
00192
00193 OSBOOL expPresent;
00194
00195 OSBOOL expSignPresent;
00196
00197 } OSDoubleFmt;
00198
00199 #define OSXMLINDENT 3
00200
00201 #ifdef XML_UNICODE
00202 #define rtXmlErrAddStrParm rtxErrAddUniStrParm
00203 #else
00204 #define rtXmlErrAddStrParm rtxErrAddStrParm
00205 #endif
00206
00207 #ifdef __cplusplus
00208 extern "C" {
00209 #endif
00210
00211
00212
00219 EXTERNXML int rtXmlInitContext (OSCTXT* pctxt);
00220
00227 EXTERNXML int rtXmlInitCtxtAppInfo (OSCTXT* pctxt);
00228
00239 EXTERNXML int rtXmlCreateFileInputSource (OSCTXT* pctxt, const char* filepath);
00240
00241 EXTERNXML OSBOOL rtXmlCmpQName
00242 (const OSUTF8CHAR* qname1, const OSUTF8CHAR* name2, const OSUTF8CHAR* nsPrefix2);
00243
00244 EXTERNXML int rtXmlGetBase64StrDecodedLen
00245 (const OSUTF8CHAR* inpdata, size_t srcDataSize,
00246 size_t* pNumOcts, size_t* pSrcDataLen);
00247
00268 EXTERNXML int rtXmlDecBase64Binary (OSRTMEMBUF* pMemBuf,
00269 const OSUTF8CHAR* inpdata,
00270 int length);
00271
00295 EXTERNXML int rtXmlDecBase64Str (OSCTXT* pctxt,
00296 OSOCTET* pvalue, OSUINT16* pnocts,
00297 OSINT32 bufsize);
00298
00324 EXTERNXML int rtXmlDecBase64StrValue (OSCTXT* pctxt,
00325 OSOCTET* pvalue, OSUINT32* pnocts,
00326 size_t bufSize, size_t srcDataLen);
00327
00349 EXTERNXML int rtXmlDecBigInt
00350 (OSCTXT* pctxt, const OSUTF8CHAR** ppvalue);
00351
00362 EXTERNXML int rtXmlDecBool (OSCTXT* pctxt, OSBOOL* pvalue);
00363
00376 EXTERNXML int rtXmlDecDate (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00377
00396 EXTERNXML int rtXmlDecTime (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00397
00410 EXTERNXML int rtXmlDecDateTime (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00411
00428 EXTERNXML int rtXmlDecDecimal (OSCTXT* pctxt, OSREAL* pvalue,
00429 int totalDigits, int fractionDigits);
00430
00449 EXTERNXML int rtXmlDecDouble (OSCTXT* pctxt, OSREAL* pvalue,
00450 int totalDigits, int fractionDigits);
00451
00468 EXTERNXML int rtXmlDecDynBase64Str (OSCTXT* pctxt, OSDynOctStr* pvalue);
00469
00485 EXTERNXML int rtXmlDecDynHexStr (OSCTXT* pctxt, OSDynOctStr* pvalue);
00486
00500 EXTERNXML int rtXmlDecDynUTF8Str (OSCTXT* pctxt, const OSUTF8CHAR** outdata);
00501
00520 EXTERNXML int rtXmlDecHexBinary (OSRTMEMBUF* pMemBuf,
00521 const OSUTF8CHAR* inpdata,
00522 int length);
00523
00546 EXTERNXML int rtXmlDecHexStr (OSCTXT* pctxt,
00547 OSOCTET* pvalue, OSUINT16* pnocts,
00548 OSINT32 bufsize);
00549
00550 EXTERNXML int rtXmlDecHexStrValue (OSCTXT* pctxt,
00551 const OSUTF8CHAR* const inpdata, size_t nbytes, OSOCTET* pvalue,
00552 OSUINT32* pnbits, OSINT32 bufsize);
00553
00566 EXTERNXML int rtXmlDecGYear (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00567
00580 EXTERNXML int rtXmlDecGYearMonth (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00581
00594 EXTERNXML int rtXmlDecGMonth (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00595
00608 EXTERNXML int rtXmlDecGMonthDay (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00609
00622 EXTERNXML int rtXmlDecGDay (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00623
00636 EXTERNXML int rtXmlDecInt (OSCTXT* pctxt, OSINT32* pvalue);
00637
00651 EXTERNXML int rtXmlDecInt8 (OSCTXT* pctxt, OSINT8* pvalue);
00652
00665 EXTERNXML int rtXmlDecInt16 (OSCTXT* pctxt, OSINT16* pvalue);
00666
00679 EXTERNXML int rtXmlDecInt64 (OSCTXT* pctxt, OSINT64* pvalue);
00680
00693 EXTERNXML int rtXmlDecUInt (OSCTXT* pctxt, OSUINT32* pvalue);
00694
00708 EXTERNXML int rtXmlDecUInt8 (OSCTXT* pctxt, OSUINT8* pvalue);
00709
00722 EXTERNXML int rtXmlDecUInt16 (OSCTXT* pctxt, OSUINT16* pvalue);
00723
00736 EXTERNXML int rtXmlDecUInt64 (OSCTXT* pctxt, OSUINT64* pvalue);
00737
00762 EXTERNXML const OSUTF8CHAR* rtXmlDecQName
00763 (OSCTXT* pctxt, const OSUTF8CHAR* qname, const OSUTF8CHAR** prefix);
00764
00777 EXTERNXML int rtXmlDecXSIAttr
00778 (OSCTXT* pctxt, const OSUTF8CHAR* attrName, const OSUTF8CHAR* attrValue);
00779
00794 EXTERNXML int rtXmlDecXSIAttrs (OSCTXT* pctxt, const OSUTF8CHAR* const* attrs,
00795 const char* typeName);
00796
00813 EXTERNXML int rtXmlDecXmlStr (OSCTXT* pctxt, OSXMLSTRING* outdata);
00814
00827 EXTERNXML int rtXmlParseElementName (OSCTXT* pctxt, OSUTF8CHAR** ppName);
00828
00841 EXTERNXML int rtXmlParseElemQName (OSCTXT* pctxt, OSXMLQName* pQName);
00842
00869 EXTERNXML int rtXmlEncAny (OSCTXT* pctxt, OSXMLSTRING* pvalue,
00870 const OSUTF8CHAR* elemName,
00871 const OSUTF8CHAR* nsPrefix);
00872
00873 EXTERNXML int rtXmlEncAnyStr
00874 (OSCTXT* pctxt, const OSUTF8CHAR* pvalue,
00875 const OSUTF8CHAR* elemName, const OSUTF8CHAR* nsPrefix);
00876
00887 EXTERNXML int rtXmlEncAnyAttr (OSCTXT* pctxt, OSRTDList* pAnyAttrList);
00888
00904 EXTERNXML int rtXmlEncBase64Binary (OSCTXT* pctxt, OSUINT32 nocts,
00905 const OSOCTET* value,
00906 const OSUTF8CHAR* elemName,
00907 const OSUTF8CHAR* nsPrefix);
00908
00922 EXTERNXML int rtXmlEncBase64BinaryAttr
00923 (OSCTXT* pctxt, OSUINT32 nocts, const OSOCTET* value,
00924 const OSUTF8CHAR* attrName, OSUINT16 attrNameLen);
00925
00937 EXTERNXML int rtXmlEncBase64StrValue (OSCTXT* pctxt, OSUINT32 nocts,
00938 const OSOCTET* value);
00939
00964 EXTERNXML int rtXmlEncBigInt (OSCTXT* pctxt, const OSUTF8CHAR* value,
00965 const OSUTF8CHAR* elemName,
00966 const OSUTF8CHAR* nsPrefix);
00967
00982 EXTERNXML int rtXmlEncBigIntAttr (OSCTXT* pctxt, const OSUTF8CHAR* value,
00983 const OSUTF8CHAR* attrName, OSUINT16 attrNameLen);
00984
00998 EXTERNXML int rtXmlEncBigIntValue (OSCTXT* pctxt, const OSUTF8CHAR* value);
00999
01018 EXTERNXML int rtXmlEncBitString (OSCTXT* pctxt, OSUINT32 nbits,
01019 const OSOCTET* value,
01020 const OSUTF8CHAR* elemName,
01021 const OSUTF8CHAR* nsPrefix);
01022
01034 EXTERNXML int rtXmlEncBinStrValue (OSCTXT* pctxt,
01035 OSUINT32 nbits,
01036 const OSOCTET* data);
01037
01052 EXTERNXML int rtXmlEncBool (OSCTXT* pctxt, OSBOOL value,
01053 const OSUTF8CHAR* elemName,
01054 const OSUTF8CHAR* nsPrefix);
01055
01066 EXTERNXML int rtXmlEncBoolValue (OSCTXT* pctxt, OSBOOL value);
01067
01079 EXTERNXML int rtXmlEncBoolAttr (OSCTXT* pctxt, OSBOOL value,
01080 const OSUTF8CHAR* attrName,
01081 OSUINT16 attrNameLen);
01082
01100 EXTERNXML int rtXmlEncDate (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01101 const OSUTF8CHAR* elemName,
01102 const OSUTF8CHAR* nsPrefix);
01103
01117 EXTERNXML int rtXmlEncDateValue
01118 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01119
01143 EXTERNXML int rtXmlEncTime (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01144 const OSUTF8CHAR* elemName,
01145 const OSUTF8CHAR* nsPrefix);
01146
01159 EXTERNXML int rtXmlEncTimeValue
01160 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01161
01177 EXTERNXML int rtXmlEncDateTime (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01178 const OSUTF8CHAR* elemName,
01179 const OSUTF8CHAR* nsPrefix);
01180
01192 EXTERNXML int rtXmlEncDateTimeValue
01193 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01194
01210 EXTERNXML int rtXmlEncDecimal (OSCTXT* pctxt, OSREAL value,
01211 const OSUTF8CHAR* elemName,
01212 const OSUTF8CHAR* nsPrefix,
01213 const OSDecimalFmt* pFmtSpec);
01214
01227 EXTERNXML int rtXmlEncDecimalAttr (OSCTXT* pctxt, OSREAL value,
01228 const OSUTF8CHAR* attrName,
01229 OSUINT16 attrNameLen,
01230 const OSDecimalFmt* pFmtSpec);
01231
01249 EXTERNXML int rtXmlEncDecimalValue (OSCTXT* pctxt, OSREAL value,
01250 const OSDecimalFmt* pFmtSpec,
01251 char* pDestBuf, size_t destBufSize);
01252
01268 EXTERNXML int rtXmlEncDouble (OSCTXT* pctxt, OSREAL value,
01269 const OSUTF8CHAR* elemName,
01270 const OSUTF8CHAR* nsPrefix,
01271 const OSDoubleFmt* pFmtSpec);
01272
01285 EXTERNXML int rtXmlEncDoubleAttr (OSCTXT* pctxt, OSREAL value,
01286 const OSUTF8CHAR* attrName,
01287 OSUINT16 attrNameLen,
01288 const OSDoubleFmt* pFmtSpec);
01289
01303 EXTERNXML int rtXmlEncDoubleValue (OSCTXT* pctxt, OSREAL value,
01304 const OSDoubleFmt* pFmtSpec,
01305 int defaultPrecision);
01306
01319 EXTERNXML int rtXmlEncEmptyElement (OSCTXT* pctxt,
01320 const OSUTF8CHAR* elemName,
01321 const OSUTF8CHAR* nsPrefix,
01322 OSBOOL terminate);
01323
01324 EXTERNXML int rtXmlEncEmptyElement2 (OSCTXT* pctxt,
01325 const OSUTF8CHAR* elemName,
01326 size_t elemLen,
01327 const OSUTF8CHAR* nsPrefix,
01328 size_t nsPrefixLen,
01329 OSBOOL terminate);
01330
01340 EXTERNXML int rtXmlEncEndDocument (OSCTXT* pctxt);
01341
01353 EXTERNXML int rtXmlEncEndElement (OSCTXT* pctxt,
01354 const OSUTF8CHAR* elemName,
01355 const OSUTF8CHAR* nsPrefix);
01356
01357 EXTERNXML int rtXmlEncEndElement2 (OSCTXT* pctxt,
01358 const OSUTF8CHAR* elemName,
01359 size_t elemLen,
01360 const OSUTF8CHAR* nsPrefix,
01361 size_t nsPrefixLen);
01362
01372 EXTERNXML int rtXmlEncEndSoapEnv (OSCTXT* pctxt);
01373
01389 EXTERNXML int rtXmlEncFloat (OSCTXT* pctxt, OSREAL value,
01390 const OSUTF8CHAR* elemName,
01391 const OSUTF8CHAR* nsPrefix,
01392 const OSDoubleFmt* pFmtSpec);
01393
01406 EXTERNXML int rtXmlEncFloatAttr (OSCTXT* pctxt, OSREAL value,
01407 const OSUTF8CHAR* attrName,
01408 OSUINT16 attrNameLen,
01409 const OSDoubleFmt* pFmtSpec);
01410
01426 EXTERNXML int rtXmlEncGYear (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01427 const OSUTF8CHAR* elemName,
01428 const OSUTF8CHAR* nsPrefix);
01429
01445 EXTERNXML int rtXmlEncGYearMonth (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01446 const OSUTF8CHAR* elemName,
01447 const OSUTF8CHAR* nsPrefix);
01448
01464 EXTERNXML int rtXmlEncGMonth (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01465 const OSUTF8CHAR* elemName,
01466 const OSUTF8CHAR* nsPrefix);
01467
01483 EXTERNXML int rtXmlEncGMonthDay (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01484 const OSUTF8CHAR* elemName,
01485 const OSUTF8CHAR* nsPrefix);
01486
01502 EXTERNXML int rtXmlEncGDay (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01503 const OSUTF8CHAR* elemName,
01504 const OSUTF8CHAR* nsPrefix);
01505
01517 EXTERNXML int rtXmlEncGYearValue
01518 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01519
01531 EXTERNXML int rtXmlEncGYearMonthValue
01532 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01533
01545 EXTERNXML int rtXmlEncGMonthValue
01546 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01547
01559 EXTERNXML int rtXmlEncGMonthDayValue
01560 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01561
01573 EXTERNXML int rtXmlEncGDayValue
01574 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01575
01591 EXTERNXML int rtXmlEncHexBinary (OSCTXT* pctxt, OSUINT32 nocts,
01592 const OSOCTET* value,
01593 const OSUTF8CHAR* elemName,
01594 const OSUTF8CHAR* nsPrefix);
01595
01608 EXTERNXML int rtXmlEncHexBinaryAttr
01609 (OSCTXT* pctxt, OSUINT32 nocts, const OSOCTET* value,
01610 const OSUTF8CHAR* attrName, OSUINT16 attrNameLen);
01611
01623 EXTERNXML int rtXmlEncHexStrValue (OSCTXT* pctxt,
01624 OSUINT32 nocts,
01625 const OSOCTET* data);
01626
01637 EXTERNXML int rtXmlEncIndent (OSCTXT* pctxt);
01638
01653 EXTERNXML int rtXmlEncInt (OSCTXT* pctxt, OSINT32 value,
01654 const OSUTF8CHAR* elemName,
01655 const OSUTF8CHAR* nsPrefix);
01656
01667 EXTERNXML int rtXmlEncIntValue (OSCTXT* pctxt, OSINT32 value);
01668
01681 EXTERNXML int rtXmlEncIntAttr (OSCTXT* pctxt, OSINT32 value,
01682 const OSUTF8CHAR* attrName,
01683 OSUINT16 attrNameLen);
01684
01701 EXTERNXML int rtXmlEncIntPattern (OSCTXT* pctxt, OSINT32 value,
01702 const OSUTF8CHAR* elemName,
01703 const OSUTF8CHAR* nsPrefix,
01704 const OSUTF8CHAR* pattern);
01705
01706 EXTERNXML int rtXmlEncIntPatternValue (OSCTXT* pctxt, OSINT32 value,
01707 const OSUTF8CHAR* pattern);
01708
01724 EXTERNXML int rtXmlEncInt64 (OSCTXT* pctxt, OSINT64 value,
01725 const OSUTF8CHAR* elemName,
01726 const OSUTF8CHAR* nsPrefix);
01727
01739 EXTERNXML int rtXmlEncInt64Value (OSCTXT* pctxt, OSINT64 value);
01740
01754 EXTERNXML int rtXmlEncInt64Attr (OSCTXT* pctxt, OSINT64 value,
01755 const OSUTF8CHAR* attrName,
01756 OSUINT16 attrNameLen);
01757
01777 EXTERNXML int rtXmlEncNamedBits
01778 (OSCTXT* pctxt, const OSBitMapItem* pBitMap, OSUINT32 nbits,
01779 const OSOCTET* pvalue, const OSUTF8CHAR* elemName, const OSUTF8CHAR* nsPrefix);
01780
01781 EXTERNXML int rtXmlEncNamedBitsValue
01782 (OSCTXT* pctxt, const OSBitMapItem* pBitMap, OSUINT32 nbits,
01783 const OSOCTET* pvalue);
01784
01796 EXTERNXML int rtXmlEncInt64Value (OSCTXT* pctxt, OSINT64 value);
01797
01809 EXTERNXML int rtXmlEncNSAttrs (OSCTXT* pctxt);
01810
01828 EXTERNXML int rtXmlEncReal10
01829 (OSCTXT *pctxt, const OSUTF8CHAR *pvalue, const OSUTF8CHAR* elemName,
01830 const OSUTF8CHAR* nsPrefix);
01831
01845 EXTERNXML int rtXmlEncSoapArrayTypeAttr
01846 (OSCTXT* pctxt, const OSUTF8CHAR* name, const OSUTF8CHAR* value,
01847 size_t itemCount);
01848
01849 EXTERNXML int rtXmlEncSoapArrayTypeAttr2
01850 (OSCTXT* pctxt, const OSUTF8CHAR* name, size_t nameLen,
01851 const OSUTF8CHAR* value, size_t valueLen, size_t itemCount);
01852
01864 EXTERNXML int rtXmlEncStartDocument (OSCTXT* pctxt);
01865
01878 EXTERNXML int rtXmlEncStartElement (OSCTXT* pctxt,
01879 const OSUTF8CHAR* elemName,
01880 const OSUTF8CHAR* nsPrefix,
01881 OSBOOL terminate);
01882
01897 EXTERNXML int rtXmlEncStartElement2 (OSCTXT* pctxt,
01898 const OSUTF8CHAR* elemName,
01899 size_t elemLen,
01900 const OSUTF8CHAR* nsPrefix,
01901 size_t nsPrefixLen,
01902 OSBOOL terminate);
01903
01913 EXTERNXML int rtXmlEncStartSoapEnv (OSCTXT* pctxt);
01914
01929 EXTERNXML int rtXmlEncString (OSCTXT* pctxt,
01930 OSXMLSTRING* pxmlstr,
01931 const OSUTF8CHAR* elemName,
01932 const OSUTF8CHAR* nsPrefix);
01933
01943 EXTERNXML int rtXmlEncStringValue (OSCTXT* pctxt, const OSUTF8CHAR* value);
01944
01955 EXTERNXML int rtXmlEncStringValue2
01956 (OSCTXT* pctxt, const OSUTF8CHAR* value, size_t valueLen);
01957
01974 EXTERNXML int rtXmlEncUnicodeStr (OSCTXT* pctxt,
01975 const OSUNICHAR* value,
01976 OSUINT32 nchars,
01977 const OSUTF8CHAR* elemName,
01978 const OSUTF8CHAR* nsPrefix);
01979
01991 EXTERNXML int rtXmlEncUTF8Attr (OSCTXT* pctxt,
01992 const OSUTF8CHAR* name,
01993 const OSUTF8CHAR* value);
01994
02008 EXTERNXML int rtXmlEncUTF8Attr2 (OSCTXT* pctxt,
02009 const OSUTF8CHAR* name, size_t nameLen,
02010 const OSUTF8CHAR* value, size_t valueLen);
02011
02026 EXTERNXML int rtXmlEncUTF8Str (OSCTXT* pctxt,
02027 const OSUTF8CHAR* value,
02028 const OSUTF8CHAR* elemName,
02029 const OSUTF8CHAR* nsPrefix);
02030
02045 EXTERNXML int rtXmlEncUInt (OSCTXT* pctxt, OSUINT32 value,
02046 const OSUTF8CHAR* elemName,
02047 const OSUTF8CHAR* nsPrefix);
02048
02060 EXTERNXML int rtXmlEncUIntValue (OSCTXT* pctxt, OSUINT32 value);
02061
02074 EXTERNXML int rtXmlEncUIntAttr (OSCTXT* pctxt, OSUINT32 value,
02075 const OSUTF8CHAR* attrName,
02076 OSUINT16 attrNameLen);
02077
02094 EXTERNXML int rtXmlEncUInt64 (OSCTXT* pctxt, OSUINT64 value,
02095 const OSUTF8CHAR* elemName,
02096 const OSUTF8CHAR* nsPrefix);
02097
02110 EXTERNXML int rtXmlEncUInt64Value (OSCTXT* pctxt, OSUINT64 value);
02111
02125 EXTERNXML int rtXmlEncUInt64Attr (OSCTXT* pctxt, OSUINT64 value,
02126 const OSUTF8CHAR* attrName,
02127 OSUINT16 attrNameLen);
02128
02145 EXTERNXML int rtXmlEncXSIAttrs (OSCTXT* pctxt, OSBOOL needXSI);
02146
02157 EXTERNXML int rtXmlFreeInputSource (OSCTXT* pctxt);
02158
02159 EXTERNXML OSBOOL rtXmlStrCmpAsc (const OSUTF8CHAR* text1, const char* text2);
02160
02161 EXTERNXML OSBOOL rtXmlStrnCmpAsc (const OSUTF8CHAR* text1,
02162 const char* text2, size_t len);
02163
02164
02165
02166 #define rtXmlFinalizeMemBuf(pMemBuf) do { \
02167 (pMemBuf)->pctxt->buffer.data = (pMemBuf)->buffer + (pMemBuf)->startidx; \
02168 (pMemBuf)->pctxt->buffer.size = \
02169 ((pMemBuf)->usedcnt - (pMemBuf)->startidx); \
02170 (pMemBuf)->pctxt->buffer.dynamic = FALSE; \
02171 (pMemBuf)->pctxt->buffer.byteIndex = 0; \
02172 rtxMemBufReset (pMemBuf); \
02173 } while(0)
02174
02197 EXTERNXML int rtXmlSetEncBufPtr
02198 (OSCTXT* pctxt, OSOCTET* bufaddr, size_t bufsiz);
02199
02208 #define rtXmlGetEncBufPtr(pctxt) (pctxt)->buffer.data
02209
02215 #define rtXmlGetEncBufLen(pctxt) (pctxt)->buffer.byteIndex
02216
02217
02225 EXTERNXML int rtXmlGetIndent (OSCTXT* pctxt);
02226
02235 EXTERNXML int rtXmlGetIndentChar (OSCTXT* pctxt);
02240 EXTERNXML int rtXmlSetDigitsFacets
02241 (OSCTXT* pctxt, int totalDigits, int fractionDigits);
02242
02253 EXTERNXML int rtXmlSetEncDocHdr (OSCTXT* pctxt, OSBOOL value);
02254
02264 EXTERNXML int rtXmlSetEncoding (OSCTXT* pctxt, OSXMLEncoding encoding);
02265
02281 EXTERNXML int rtXmlSetFormatting (OSCTXT* pctxt, OSBOOL doFormatting);
02282
02291 EXTERNXML int rtXmlSetIndent (OSCTXT* pctxt, OSUINT8 indent);
02292
02301 EXTERNXML int rtXmlSetIndentChar (OSCTXT* pctxt, char indentChar);
02302
02314 EXTERNXML int rtXmlSetSchemaLocation
02315 (OSCTXT* pctxt, const OSUTF8CHAR* schemaLocation);
02316
02328 EXTERNXML int rtXmlSetNoNSSchemaLocation
02329 (OSCTXT* pctxt, const OSUTF8CHAR* schemaLocation);
02330
02341 EXTERNXML int rtXmlSetXSITypeAttr (OSCTXT* pctxt, const OSUTF8CHAR* xsiType);
02342
02343 #include "rtxmlsrc/rtXmlNamespace.h"
02344
02358 EXTERNXML int rtXmlMatchHexStr
02359 (OSCTXT* pctxt, size_t minLength, size_t maxLength);
02360
02374 EXTERNXML int rtXmlMatchBase64Str
02375 (OSCTXT* pctxt, size_t minLength, size_t maxLength);
02376
02388 EXTERNXML int rtXmlMatchDate (OSCTXT* pctxt);
02389
02401 EXTERNXML int rtXmlMatchTime (OSCTXT* pctxt);
02402
02414 EXTERNXML int rtXmlMatchDateTime (OSCTXT* pctxt);
02415
02427 EXTERNXML int rtXmlMatchGYear (OSCTXT* pctxt);
02428
02440 EXTERNXML int rtXmlMatchGYearMonth (OSCTXT* pctxt);
02441
02453 EXTERNXML int rtXmlMatchGMonth (OSCTXT* pctxt);
02454
02466 EXTERNXML int rtXmlMatchGMonthDay (OSCTXT* pctxt);
02467
02479 EXTERNXML int rtXmlMatchGDay (OSCTXT* pctxt);
02480
02481
02482 EXTERNXML OSBOOL rtXmlCmpBase64Str (OSCTXT* pctxt,
02483 OSUINT32 nocts1,
02484 const OSOCTET* data1,
02485 const OSUTF8CHAR* data2);
02486
02487
02488 EXTERNXML OSBOOL rtXmlCmpHexStr (OSCTXT* pctxt,
02489 OSUINT32 nocts1,
02490 const OSOCTET* data1,
02491 const OSUTF8CHAR* data2);
02492
02493 EXTERNXML int rtSaxGetAttributeID (OSCTXT* pctxt,
02494 const OSUTF8CHAR* attrName,
02495 size_t nAttr,
02496 const OSUTF8CHAR* attrNames[],
02497 OSUINT32 attrPresent[]);
02498
02513 EXTERNXML int rtSaxGetElemID
02514 (OSINT16* pState, OSINT16 prevElemIdx, const OSUTF8CHAR* localName,
02515 const OSSAXElemTableRec idtab[], const int* fstab,
02516 int fstabRows, int fstabCols);
02517
02532 EXTERNXML int rtSaxGetElemID8
02533 (OSINT16* pState, OSINT16 prevElemIdx, const OSUTF8CHAR* localName,
02534 const OSSAXElemTableRec idtab[], const OSINT8* fstab,
02535 int fstabRows, int fstabCols);
02536
02537 EXTERNXML int rtSaxFindElemID (OSINT16* pState, OSINT16 prevElemIdx,
02538 const OSUTF8CHAR* localName,
02539 const OSSAXElemTableRec idtab[],
02540 const int* fstab,
02541 int fstabRows, int fstabCols);
02542
02543 EXTERNXML int rtSaxFindElemID8 (OSINT16* pState, OSINT16 prevElemIdx,
02544 const OSUTF8CHAR* localName,
02545 const OSSAXElemTableRec idtab[],
02546 const OSINT8* fstab,
02547 int fstabRows, int fstabCols);
02548
02560 EXTERNXML OSBOOL rtSaxIsEmptyBuffer (OSCTXT* pctxt, int whitespace);
02561
02562 EXTERNXML int rtSaxLookupElemID (OSCTXT* pctxt, OSINT16* pState,
02563 OSINT16 prevElemIdx,
02564 const OSUTF8CHAR* localName, const OSUTF8CHAR* qName,
02565 const OSSAXElemTableRec idtab[],
02566 const int* fstab,
02567 int fstabRows, int fstabCols);
02568
02569 EXTERNXML int rtSaxLookupElemID8 (OSCTXT* pctxt, OSINT16* pState,
02570 OSINT16 prevElemIdx,
02571 const OSUTF8CHAR* localName, const OSUTF8CHAR* qName,
02572 const OSSAXElemTableRec idtab[],
02573 const OSINT8* fstab,
02574 int fstabRows, int fstabCols);
02575
02587 EXTERNXML int rtSaxStrListParse
02588 (OSCTXT* pctxt, OSRTMEMBUF *pMemBuf, OSRTDList* pvalue);
02589
02597 EXTERNXML int rtSaxStrListMatch (OSCTXT* pctxt);
02598
02599 EXTERNXML OSBOOL rtSaxTestFinal (OSINT16 state,
02600 OSINT16 currElemIdx,
02601 const int* fstab,
02602 int fstabRows, int fstabCols);
02603
02604 EXTERNXML OSBOOL rtSaxTestFinal8 (OSINT16 state,
02605 OSINT16 currElemIdx,
02606 const OSINT8* fstab,
02607 int fstabRows, int fstabCols);
02608
02609 EXTERNXML int rtSaxSetSkipLevelToCurrent (OSCTXT* pctxt, int stat);
02610
02611 EXTERNXML OSUINT32 rtSaxSetMaxErrors (OSCTXT* pctxt, OSUINT32 maxErrors);
02612
02613 EXTERNXML OSUINT32 rtSaxGetMaxErrors (OSCTXT* pctxt);
02614
02615 EXTERNXML int rtSaxTestAttributesPresent (OSCTXT* pctxt,
02616 const OSUINT32* attrPresent, const OSUINT32* reqAttrMask,
02617 const OSUTF8CHAR* const* attrNames, size_t numOfAttrs,
02618 const char* parentTypeName);
02619
02620 EXTERNXML OSBOOL rtSaxIncErrors (OSCTXT* pctxt);
02621
02622 EXTERNXML int rtSaxReportUnexpAttrs (OSCTXT* pctxt,
02623 const OSUTF8CHAR* const* attrs,
02624 const char* typeName);
02625
02638 EXTERNXML int rtXmlWriteToFile (OSCTXT* pctxt, const char* filename);
02639
02640 EXTERNXML void rtXmlTreatWhitespaces (OSCTXT* pctxt, int whiteSpaceType);
02641
02646 EXTERNXML void rtErrXmlInit (void);
02647
02667 EXTERNXML int rtXmlpDecAny (OSCTXT* pctxt, const OSUTF8CHAR** pvalue);
02668
02685 EXTERNXML int rtXmlpDecAnyAttrStr
02686 (OSCTXT* pctxt, const OSUTF8CHAR** ppAttrStr, size_t index);
02687
02707 EXTERNXML int rtXmlpDecAnyElem (OSCTXT* pctxt, const OSUTF8CHAR** pvalue);
02708
02734 EXTERNXML int rtXmlpDecBase64Str (OSCTXT* pctxt, OSOCTET* pvalue,
02735 OSUINT32* pnocts, OSINT32 bufsize);
02736
02760 EXTERNXML int rtXmlpDecBigInt (OSCTXT* pctxt, const OSUTF8CHAR** pvalue);
02761
02778 EXTERNXML int rtXmlpDecBitString
02779 (OSCTXT* pctxt, OSOCTET* pvalue, OSUINT32* pnbits, OSUINT32 bufsize);
02780
02793 EXTERNXML int rtXmlpDecBool (OSCTXT* pctxt, OSBOOL* pvalue);
02794
02807 EXTERNXML int rtXmlpDecDate (OSCTXT* pctxt, OSXSDDateTime* pvalue);
02808
02821 EXTERNXML int rtXmlpDecDateTime (OSCTXT* pctxt, OSXSDDateTime* pvalue);
02822
02839 EXTERNXML int rtXmlpDecDecimal (OSCTXT* pctxt, OSREAL* pvalue,
02840 int totalDigits, int fractionDigits);
02841
02860 EXTERNXML int rtXmlpDecDouble (OSCTXT* pctxt, OSREAL* pvalue,
02861 int totalDigits, int fractionDigits);
02862
02881 EXTERNXML int rtXmlpDecDynBase64Str (OSCTXT* pctxt, OSDynOctStr* pvalue);
02882
02896 EXTERNXML int rtXmlpDecDynBitString (OSCTXT* pctxt, OSDynOctStr* pvalue);
02897
02915 EXTERNXML int rtXmlpDecDynHexStr (OSCTXT* pctxt, OSDynOctStr* pvalue);
02916
02934 EXTERNXML int rtXmlpDecDynUnicodeStr
02935 (OSCTXT* pctxt, const OSUNICHAR** ppdata, OSUINT32* pnchars);
02936
02950 EXTERNXML int rtXmlpDecDynUTF8Str (OSCTXT* pctxt, const OSUTF8CHAR** outdata);
02951
02964 EXTERNXML int rtXmlpDecGDay (OSCTXT* pctxt, OSXSDDateTime* pvalue);
02965
02978 EXTERNXML int rtXmlpDecGMonth (OSCTXT* pctxt, OSXSDDateTime* pvalue);
02979
02992 EXTERNXML int rtXmlpDecGMonthDay (OSCTXT* pctxt, OSXSDDateTime* pvalue);
02993
03006 EXTERNXML int rtXmlpDecGYear (OSCTXT* pctxt, OSXSDDateTime* pvalue);
03007
03020 EXTERNXML int rtXmlpDecGYearMonth (OSCTXT* pctxt, OSXSDDateTime* pvalue);
03021
03046 EXTERNXML int rtXmlpDecHexStr
03047 (OSCTXT* pctxt, OSOCTET* pvalue, OSUINT32* pnocts, OSINT32 bufsize);
03048
03061 EXTERNXML int rtXmlpDecInt (OSCTXT* pctxt, OSINT32* pvalue);
03062
03076 EXTERNXML int rtXmlpDecInt8 (OSCTXT* pctxt, OSINT8* pvalue);
03077
03090 EXTERNXML int rtXmlpDecInt16 (OSCTXT* pctxt, OSINT16* pvalue);
03091
03104 EXTERNXML int rtXmlpDecInt64 (OSCTXT* pctxt, OSINT64* pvalue);
03105
03122 EXTERNXML int rtXmlpDecNamedBits
03123 (OSCTXT* pctxt, const OSBitMapItem* pBitMap,
03124 OSOCTET* pvalue, OSUINT32* pnbits, OSUINT32 bufsize);
03125
03142 EXTERNXML int rtXmlpDecStrList (OSCTXT* pctxt, OSRTDList* plist);
03143
03162 EXTERNXML int rtXmlpDecTime (OSCTXT* pctxt, OSXSDDateTime* pvalue);
03163
03176 EXTERNXML int rtXmlpDecUInt (OSCTXT* pctxt, OSUINT32* pvalue);
03177
03191 EXTERNXML int rtXmlpDecUInt8 (OSCTXT* pctxt, OSOCTET* pvalue);
03192
03205 EXTERNXML int rtXmlpDecUInt16 (OSCTXT* pctxt, OSUINT16* pvalue);
03206
03219 EXTERNXML int rtXmlpDecUInt64 (OSCTXT* pctxt, OSUINT64* pvalue);
03220
03237 EXTERNXML int rtXmlpDecXmlStr (OSCTXT* pctxt, OSXMLSTRING* outdata);
03238
03257 EXTERNXML int rtXmlpDecXSIAttr
03258 (OSCTXT* pctxt, const OSXMLNameFragments* attrName);
03259
03281 EXTERNXML int rtXmlpDecXSITypeAttr
03282 (OSCTXT* pctxt, const OSXMLNameFragments* attrName,
03283 const OSUTF8CHAR** ppAttrValue);
03284
03285 EXTERNXML int rtXmlpGetAttributeID
03286 (OSCTXT* pctxt, const OSXMLStrFragment* attrName, OSINT16 nsidx,
03287 size_t nAttr, const OSXMLAttrDescr attrNames[], OSUINT32 attrPresent[]);
03288
03289 EXTERNXML int rtXmlpGetNextElem
03290 (OSCTXT* pctxt, OSXMLElemDescr* pElem, OSINT32 level);
03291
03292 EXTERNXML int rtXmlpGetNextElemID
03293 (OSCTXT* pctxt, const OSXMLElemIDRec* tab, size_t nrows, OSINT32 level,
03294 OSBOOL continueParse);
03295
03296 EXTERNXML OSBOOL rtXmlpIsInGroup
03297 (int elemID, int grpId, const OSBOOL* grpTab, int nElems);
03298
03299 EXTERNXML int rtXmlpMarkLastEventActive (OSCTXT* pctxt);
03300
03301 EXTERNXML int rtXmlpMatchStartTag
03302 (OSCTXT* pctxt, const OSUTF8CHAR* elemLocalName, OSINT16 nsidx);
03303
03304 EXTERNXML int rtXmlpMatchEndTag (OSCTXT* pctxt, OSINT32 level);
03305
03306 EXTERNXML OSBOOL rtXmlpMatchElemId (OSCTXT* pctxt, int elemID, int matchingID);
03307
03308 EXTERNXML OSBOOL rtXmlpHasAttributes (OSCTXT* pctxt);
03309
03310 EXTERNXML int rtXmlpGetAttributeCount (OSCTXT* pctxt);
03311
03312 EXTERNXML void rtXmlpGetContent (OSCTXT* pctxt, int level);
03313
03314 EXTERNXML int rtXmlpSelectAttribute
03315 (OSCTXT* pctxt, OSXMLNameFragments* pAttr, OSINT16* nsidx, size_t index);
03316
03317 EXTERNXML int rtXmlpCreateReader (OSCTXT* pctxt);
03318
03319 EXTERNXML OSINT32 rtXmlpGetCurrentLevel (OSCTXT* pctxt);
03320
03324 typedef enum {
03325 OSXMLWSM_PRESERVE = 0,
03326 OSXMLWSM_REPLACE,
03327 OSXMLWSM_COLLAPSE
03328 } OSXMLWhiteSpaceMode;
03329
03338 EXTERNXML void rtXmlpSetWhiteSpaceMode
03339 (OSCTXT* pctxt, OSXMLWhiteSpaceMode whiteSpaceMode);
03340
03341 EXTERNXML void rtXmlpSetMixedContentMode
03342 (OSCTXT* pctxt, OSBOOL mixedContentMode);
03343
03344 EXTERNXML OSBOOL rtXmlpIsContentMode (OSCTXT* pctxt);
03345
03346 EXTERNXML void rtXmlpSetListMode (OSCTXT* pctxt);
03347 EXTERNXML OSBOOL rtXmlpListHasItem (OSCTXT* pctxt);
03348 EXTERNXML void rtXmlpCountListItems (OSCTXT* pctxt, OSUINT32* itemCnt);
03349
03350 EXTERNXML int rtXmlpGetNextSeqElemID
03351 (OSCTXT* pctxt, const OSXMLElemIDRec* tab, const OSXMLGroupDesc* ppGroup,
03352 int curID, int lastMandatoryID);
03353
03354 EXTERNXML int rt