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 #define OSXMLNS12
00032
00033 #ifdef BUILDXMLDLL
00034 #define EXTERNXML __declspec(dllexport)
00035 #elif defined (USEXMLDLL)
00036 #define EXTERNXML __declspec(dllimport)
00037 #else
00038 #define EXTERNXML
00039 #endif
00040
00041 #include "rtxsrc/rtxCommon.h"
00042 #include "rtxmlsrc/rtSaxDefs.h"
00043 #include "rtxsrc/rtxDList.h"
00044 #include "rtxsrc/rtxMemBuf.h"
00045 #include "rtxmlsrc/rtXmlErrCodes.h"
00046 #include "rtxmlsrc/rtXmlNamespace.h"
00047
00048
00049
00050 #define OSUPCASE 0x00008000
00051 #define OSTERMSTART 0x00004000
00052 #define OSEMPTYELEM 0x00002000
00053 #define OSQUALATTR 0x00001000
00054 #define OSXMLFRAG 0x00000800
00055 #define OSXMLNSSET 0x00000400
00056
00057 typedef enum {
00058 OSXMLUTF8,
00059 OSXMLUTF16
00060 } OSXMLEncoding;
00061
00062 typedef enum {
00063 OSSOAPNONE, OSSOAPBODY, OSSOAPFAULT
00064 } OSXMLSOAPMsgType;
00065
00066 typedef enum {
00067 OSXMLBOM_NO_BOM,
00068 OSXMLBOM_UTF32_BE,
00069 OSXMLBOM_UTF32_LE,
00070 OSXMLBOM_UTF16_BE,
00071 OSXMLBOM_UTF16_LE,
00072 OSXMLBOM_UTF8
00073 } OSXMLBOM;
00074
00075 typedef struct OSXMLFacets {
00076 int totalDigits;
00077 int fractionDigits;
00078 } OSXMLFacets;
00079
00080 typedef struct {
00081 const OSUTF8CHAR* value;
00082 size_t length;
00083 } OSXMLStrFragment;
00084
00085 typedef struct {
00086 OSXMLStrFragment mQName;
00087 OSXMLStrFragment mLocalName;
00088 OSXMLStrFragment mPrefix;
00089 } OSXMLNameFragments;
00090
00091 typedef struct OSXMLItemDescr {
00092 OSXMLStrFragment localName;
00093 OSINT16 nsidx;
00094 } OSXMLItemDescr;
00095
00096 typedef OSXMLItemDescr OSXMLAttrDescr;
00097 typedef OSXMLItemDescr OSXMLElemDescr;
00098
00099 typedef struct OSXMLElemIDRec {
00100 OSXMLElemDescr descr;
00101 OSUINT16 id;
00102 } OSXMLElemIDRec;
00103
00104 typedef struct OSXMLGroupDesc {
00105 int row;
00106 int num;
00107 int anyCase;
00108 } OSXMLGroupDesc;
00109
00110 #define OSXMLFRAGSEQUAL(frag1,frag2) \
00111 (frag1.length==frag2.length && !memcmp(frag1.value,frag2.value,frag1.length))
00112
00113 #define OSXMLQNAMEEQUALS(xnamefrag,qnametext) rtxUTF8StrnEqual \
00114 (xnamefrag.mQName.value, OSUTF8(qnametext), xnamefrag.mQName.length)
00115
00116 #define OSXMLSETUTF8DECPTR(pctxt,str) \
00117 rtxInitContextBuffer (pctxt, OSRTSAFECONSTCAST (OSOCTET*, str), \
00118 OSCRTLSTRLEN ((const char*)str))
00119
00120 #define IS_XMLNSATTR(name) \
00121 ((OSCRTLSTRLEN((const char*)name) >= 5) && name[0] == 'x' && name[1] == 'm' && \
00122 name[2] == 'l' && name[3] == 'n' && name[4] == 's')
00123
00124 #define IS_XSIATTR(name) \
00125 ((OSCRTLSTRLEN((const char*)name) >= 4) && name[0] == 'x' && name[1] == 's' && \
00126 name[2] == 'i' && name[3] == ':')
00127
00128
00129
00130
00131
00132 typedef struct {
00133 OSFreeCtxtAppInfoPtr pFreeFunc;
00134 OSResetCtxtAppInfoPtr pResetFunc;
00135 OSUTF8CHAR* schemaLocation;
00136 OSUTF8CHAR* noNSSchemaLoc;
00137 OSUTF8CHAR* xsiTypeAttr;
00138 OSXMLEncoding encoding;
00139 OSRTDList namespaceList;
00140 OSRTDList encodedNSList;
00141 OSXMLNSPfxLinkStack nsPfxLinkStack;
00142 OSXMLNSURITable nsURITable;
00143 OSRTMEMBUF memBuf;
00144 OSINT32 mSaxLevel;
00145 OSINT32 mSkipLevel;
00146 OSUINT32 maxSaxErrors;
00147 OSUINT32 errorsCnt;
00148 OSUINT8 indent;
00149 OSBOOL mbCdataProcessed;
00150 char indentChar;
00151 OSOCTET spare;
00152 OSXMLFacets facets;
00153 const OSUTF8CHAR* encodingStr;
00154 OSXMLBOM byteOrderMark;
00155 struct OSXMLReader* pXmlPPReader;
00156 } OSXMLCtxtInfo;
00157
00158 typedef enum {
00159 OSXMLINIT,
00160 OSXMLHEADER,
00161 OSXMLSTART,
00162 OSXMLATTR,
00163 OSXMLDATA,
00164 OSXMLEND
00165 } OSXMLState;
00166
00167 typedef struct OSXMLQName {
00168 const OSUTF8CHAR* nsPrefix;
00169 const OSUTF8CHAR* ncName;
00170 } OSXMLQName;
00171
00172 struct OSSAXHandlerBase;
00173
00174 typedef struct OSIntegerFmt {
00175 OSINT8 integerMaxDigits;
00176
00177 OSBOOL signPresent;
00178
00179 } OSIntegerFmt;
00180
00181 typedef struct OSDecimalFmt {
00182 OSINT8 totalDigits;
00183 OSINT8 fractionDigits;
00184
00185 OSINT8 fractionMinDigits;
00186
00187
00188 OSINT8 integerMaxDigits;
00189
00190
00191 OSINT8 integerMinDigits;
00192
00193 OSBOOL signPresent;
00194
00195 OSBOOL pointPresent;
00196
00197 OSUINT8 nPatterns;
00198 const char* const* patterns;
00199
00200 } OSDecimalFmt;
00201
00202 typedef struct OSDoubleFmt {
00203 OSINT8 totalDigits;
00204 OSINT8 fractionDigits;
00205
00206 OSINT8 fractionMinDigits;
00207
00208
00209 OSINT8 integerMaxDigits;
00210
00211
00212 OSINT8 integerMinDigits;
00213
00214 OSINT8 expSymbol;
00215
00216 OSINT16 expMinValue;
00217 OSINT16 expMaxValue;
00218 OSINT8 expDigits;
00219
00220
00221 OSBOOL signPresent;
00222
00223 OSBOOL pointPresent;
00224
00225 OSBOOL expPresent;
00226
00227 OSBOOL expSignPresent;
00228
00229 } OSDoubleFmt;
00230
00231 #define OSXMLINDENT 3
00232
00233 #ifdef XML_UNICODE
00234 #define rtXmlErrAddStrParm rtxErrAddUniStrParm
00235 #else
00236 #define rtXmlErrAddStrParm rtxErrAddStrParm
00237 #endif
00238
00242 typedef enum {
00243 OSXMLWSM_PRESERVE = 0,
00244 OSXMLWSM_REPLACE,
00245 OSXMLWSM_COLLAPSE
00246 } OSXMLWhiteSpaceMode;
00247
00248 #ifdef __cplusplus
00249 extern "C" {
00250 #endif
00251
00252
00253
00260 EXTERNXML int rtXmlInitContext (OSCTXT* pctxt);
00261
00268 EXTERNXML int rtXmlInitCtxtAppInfo (OSCTXT* pctxt);
00269
00280 EXTERNXML int rtXmlCreateFileInputSource (OSCTXT* pctxt, const char* filepath);
00281
00282 EXTERNXML OSBOOL rtXmlCmpQName
00283 (const OSUTF8CHAR* qname1, const OSUTF8CHAR* name2, const OSUTF8CHAR* nsPrefix2);
00284
00285 EXTERNXML int rtXmlGetBase64StrDecodedLen
00286 (const OSUTF8CHAR* inpdata, size_t srcDataSize,
00287 size_t* pNumOcts, size_t* pSrcDataLen);
00288
00309 EXTERNXML int rtXmlDecBase64Binary (OSRTMEMBUF* pMemBuf,
00310 const OSUTF8CHAR* inpdata,
00311 int length);
00312
00336 EXTERNXML int rtXmlDecBase64Str (OSCTXT* pctxt,
00337 OSOCTET* pvalue, OSUINT32* pnocts,
00338 OSINT32 bufsize);
00339
00365 EXTERNXML int rtXmlDecBase64StrValue (OSCTXT* pctxt,
00366 OSOCTET* pvalue, OSUINT32* pnocts,
00367 size_t bufSize, size_t srcDataLen);
00368
00390 EXTERNXML int rtXmlDecBigInt
00391 (OSCTXT* pctxt, const OSUTF8CHAR** ppvalue);
00392
00403 EXTERNXML int rtXmlDecBool (OSCTXT* pctxt, OSBOOL* pvalue);
00404
00417 EXTERNXML int rtXmlDecDate (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00418
00437 EXTERNXML int rtXmlDecTime (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00438
00451 EXTERNXML int rtXmlDecDateTime (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00452
00465 EXTERNXML int rtXmlDecDecimal (OSCTXT* pctxt, OSREAL* pvalue);
00466
00479 EXTERNXML int rtXmlDecDouble (OSCTXT* pctxt, OSREAL* pvalue);
00480
00497 EXTERNXML int rtXmlDecDynBase64Str (OSCTXT* pctxt, OSDynOctStr* pvalue);
00498
00514 EXTERNXML int rtXmlDecDynHexStr (OSCTXT* pctxt, OSDynOctStr* pvalue);
00515
00529 EXTERNXML int rtXmlDecUTF8Str
00530 (OSCTXT* pctxt, OSUTF8CHAR* outdata, size_t max_len);
00531
00532
00546 EXTERNXML int rtXmlDecDynUTF8Str (OSCTXT* pctxt, const OSUTF8CHAR** outdata);
00547
00566 EXTERNXML int rtXmlDecHexBinary (OSRTMEMBUF* pMemBuf,
00567 const OSUTF8CHAR* inpdata,
00568 int length);
00569
00592 EXTERNXML int rtXmlDecHexStr (OSCTXT* pctxt,
00593 OSOCTET* pvalue, OSUINT32* pnocts,
00594 OSINT32 bufsize);
00595
00596 EXTERNXML int rtXmlDecHexStrValue (OSCTXT* pctxt,
00597 const OSUTF8CHAR* const inpdata, size_t nbytes, OSOCTET* pvalue,
00598 OSUINT32* pnbits, OSINT32 bufsize);
00599
00612 EXTERNXML int rtXmlDecGYear (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00613
00626 EXTERNXML int rtXmlDecGYearMonth (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00627
00640 EXTERNXML int rtXmlDecGMonth (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00641
00654 EXTERNXML int rtXmlDecGMonthDay (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00655
00668 EXTERNXML int rtXmlDecGDay (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00669
00682 EXTERNXML int rtXmlDecInt (OSCTXT* pctxt, OSINT32* pvalue);
00683
00697 EXTERNXML int rtXmlDecInt8 (OSCTXT* pctxt, OSINT8* pvalue);
00698
00711 EXTERNXML int rtXmlDecInt16 (OSCTXT* pctxt, OSINT16* pvalue);
00712
00725 EXTERNXML int rtXmlDecInt64 (OSCTXT* pctxt, OSINT64* pvalue);
00726
00739 EXTERNXML int rtXmlDecUInt (OSCTXT* pctxt, OSUINT32* pvalue);
00740
00754 EXTERNXML int rtXmlDecUInt8 (OSCTXT* pctxt, OSUINT8* pvalue);
00755
00768 EXTERNXML int rtXmlDecUInt16 (OSCTXT* pctxt, OSUINT16* pvalue);
00769
00782 EXTERNXML int rtXmlDecUInt64 (OSCTXT* pctxt, OSUINT64* pvalue);
00783
00802 EXTERNXML int rtXmlDecNSAttr
00803 (OSCTXT* pctxt, const OSUTF8CHAR* attrName, const OSUTF8CHAR* attrValue,
00804 OSRTDList* pNSAttrs, const OSUTF8CHAR* nsTable[], OSUINT32 nsTableRowCount);
00805
00830 EXTERNXML const OSUTF8CHAR* rtXmlDecQName
00831 (OSCTXT* pctxt, const OSUTF8CHAR* qname, const OSUTF8CHAR** prefix);
00832
00845 EXTERNXML int rtXmlDecXSIAttr
00846 (OSCTXT* pctxt, const OSUTF8CHAR* attrName, const OSUTF8CHAR* attrValue);
00847
00862 EXTERNXML int rtXmlDecXSIAttrs (OSCTXT* pctxt, const OSUTF8CHAR* const* attrs,
00863 const char* typeName);
00864
00881 EXTERNXML int rtXmlDecXmlStr (OSCTXT* pctxt, OSXMLSTRING* outdata);
00882
00895 EXTERNXML int rtXmlParseElementName (OSCTXT* pctxt, OSUTF8CHAR** ppName);
00896
00909 EXTERNXML int rtXmlParseElemQName (OSCTXT* pctxt, OSXMLQName* pQName);
00910
00937 EXTERNXML int rtXmlEncAny (OSCTXT* pctxt, OSXMLSTRING* pvalue,
00938 const OSUTF8CHAR* elemName,
00939 OSXMLNamespace* pNS);
00940
00941 EXTERNXML int rtXmlEncAnyStr
00942 (OSCTXT* pctxt, const OSUTF8CHAR* pvalue,
00943 const OSUTF8CHAR* elemName, OSXMLNamespace* pNS);
00944
00955 EXTERNXML int rtXmlEncAnyAttr (OSCTXT* pctxt, OSRTDList* pAnyAttrList);
00956
00972 EXTERNXML int rtXmlEncBase64Binary (OSCTXT* pctxt, OSUINT32 nocts,
00973 const OSOCTET* value,
00974 const OSUTF8CHAR* elemName,
00975 OSXMLNamespace* pNS);
00976
00990 EXTERNXML int rtXmlEncBase64BinaryAttr
00991 (OSCTXT* pctxt, OSUINT32 nocts, const OSOCTET* value,
00992 const OSUTF8CHAR* attrName, size_t attrNameLen);
00993
01005 EXTERNXML int rtXmlEncBase64StrValue (OSCTXT* pctxt, OSUINT32 nocts,
01006 const OSOCTET* value);
01007
01032 EXTERNXML int rtXmlEncBigInt (OSCTXT* pctxt, const OSUTF8CHAR* value,
01033 const OSUTF8CHAR* elemName,
01034 OSXMLNamespace* pNS);
01035
01050 EXTERNXML int rtXmlEncBigIntAttr (OSCTXT* pctxt, const OSUTF8CHAR* value,
01051 const OSUTF8CHAR* attrName, size_t attrNameLen);
01052
01066 EXTERNXML int rtXmlEncBigIntValue (OSCTXT* pctxt, const OSUTF8CHAR* value);
01067
01086 EXTERNXML int rtXmlEncBitString (OSCTXT* pctxt, OSUINT32 nbits,
01087 const OSOCTET* value,
01088 const OSUTF8CHAR* elemName,
01089 OSXMLNamespace* pNS);
01090
01102 EXTERNXML int rtXmlEncBinStrValue (OSCTXT* pctxt,
01103 OSUINT32 nbits,
01104 const OSOCTET* data);
01105
01120 EXTERNXML int rtXmlEncBool (OSCTXT* pctxt, OSBOOL value,
01121 const OSUTF8CHAR* elemName,
01122 OSXMLNamespace* pNS);
01123
01134 EXTERNXML int rtXmlEncBoolValue (OSCTXT* pctxt, OSBOOL value);
01135
01147 EXTERNXML int rtXmlEncBoolAttr (OSCTXT* pctxt, OSBOOL value,
01148 const OSUTF8CHAR* attrName,
01149 size_t attrNameLen);
01150
01168 EXTERNXML int rtXmlEncDate (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01169 const OSUTF8CHAR* elemName,
01170 OSXMLNamespace* pNS);
01171
01185 EXTERNXML int rtXmlEncDateValue
01186 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01187
01211 EXTERNXML int rtXmlEncTime (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01212 const OSUTF8CHAR* elemName,
01213 OSXMLNamespace* pNS);
01214
01227 EXTERNXML int rtXmlEncTimeValue
01228 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01229
01245 EXTERNXML int rtXmlEncDateTime (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01246 const OSUTF8CHAR* elemName,
01247 OSXMLNamespace* pNS);
01248
01260 EXTERNXML int rtXmlEncDateTimeValue
01261 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01262
01278 EXTERNXML int rtXmlEncDecimal (OSCTXT* pctxt, OSREAL value,
01279 const OSUTF8CHAR* elemName,
01280 OSXMLNamespace* pNS,
01281 const OSDecimalFmt* pFmtSpec);
01282
01295 EXTERNXML int rtXmlEncDecimalAttr (OSCTXT* pctxt, OSREAL value,
01296 const OSUTF8CHAR* attrName,
01297 size_t attrNameLen,
01298 const OSDecimalFmt* pFmtSpec);
01299
01317 EXTERNXML int rtXmlEncDecimalValue (OSCTXT* pctxt, OSREAL value,
01318 const OSDecimalFmt* pFmtSpec,
01319 char* pDestBuf, size_t destBufSize);
01320
01336 EXTERNXML int rtXmlEncDouble (OSCTXT* pctxt, OSREAL value,
01337 const OSUTF8CHAR* elemName,
01338 OSXMLNamespace* pNS,
01339 const OSDoubleFmt* pFmtSpec);
01340
01353 EXTERNXML int rtXmlEncDoubleAttr (OSCTXT* pctxt, OSREAL value,
01354 const OSUTF8CHAR* attrName,
01355 size_t attrNameLen,
01356 const OSDoubleFmt* pFmtSpec);
01357
01371 EXTERNXML int rtXmlEncDoubleValue (OSCTXT* pctxt, OSREAL value,
01372 const OSDoubleFmt* pFmtSpec,
01373 int defaultPrecision);
01374
01387 EXTERNXML int rtXmlEncEmptyElement (OSCTXT* pctxt,
01388 const OSUTF8CHAR* elemName,
01389 OSXMLNamespace* pNS,
01390 OSRTDList* pNSAttrs,
01391 OSBOOL terminate);
01392
01402 EXTERNXML int rtXmlEncEndDocument (OSCTXT* pctxt);
01403
01414 EXTERNXML int rtXmlEncEndElement (OSCTXT* pctxt,
01415 const OSUTF8CHAR* elemName,
01416 OSXMLNamespace* pNS);
01417
01427 EXTERNXML int rtXmlEncEndSoapEnv (OSCTXT* pctxt);
01428
01440 EXTERNXML int rtXmlEncEndSoapElems (OSCTXT* pctxt, OSXMLSOAPMsgType msgtype);
01441
01456 EXTERNXML int rtXmlEncFloat (OSCTXT* pctxt, OSREAL value,
01457 const OSUTF8CHAR* elemName,
01458 OSXMLNamespace* pNS,
01459 const OSDoubleFmt* pFmtSpec);
01460
01473 EXTERNXML int rtXmlEncFloatAttr (OSCTXT* pctxt, OSREAL value,
01474 const OSUTF8CHAR* attrName,
01475 size_t attrNameLen,
01476 const OSDoubleFmt* pFmtSpec);
01477
01492 EXTERNXML int rtXmlEncGYear (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01493 const OSUTF8CHAR* elemName,
01494 OSXMLNamespace* pNS);
01495
01510 EXTERNXML int rtXmlEncGYearMonth (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01511 const OSUTF8CHAR* elemName,
01512 OSXMLNamespace* pNS);
01513
01528 EXTERNXML int rtXmlEncGMonth (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01529 const OSUTF8CHAR* elemName,
01530 OSXMLNamespace* pNS);
01531
01546 EXTERNXML int rtXmlEncGMonthDay (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01547 const OSUTF8CHAR* elemName,
01548 OSXMLNamespace* pNS);
01549
01564 EXTERNXML int rtXmlEncGDay (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01565 const OSUTF8CHAR* elemName,
01566 OSXMLNamespace* pNS);
01567
01579 EXTERNXML int rtXmlEncGYearValue
01580 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01581
01593 EXTERNXML int rtXmlEncGYearMonthValue
01594 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01595
01607 EXTERNXML int rtXmlEncGMonthValue
01608 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01609
01621 EXTERNXML int rtXmlEncGMonthDayValue
01622 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01623
01635 EXTERNXML int rtXmlEncGDayValue
01636 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01637
01652 EXTERNXML int rtXmlEncHexBinary (OSCTXT* pctxt, OSUINT32 nocts,
01653 const OSOCTET* value,
01654 const OSUTF8CHAR* elemName,
01655 OSXMLNamespace* pNS);
01656
01669 EXTERNXML int rtXmlEncHexBinaryAttr
01670 (OSCTXT* pctxt, OSUINT32 nocts, const OSOCTET* value,
01671 const OSUTF8CHAR* attrName, size_t attrNameLen);
01672
01684 EXTERNXML int rtXmlEncHexStrValue (OSCTXT* pctxt,
01685 OSUINT32 nocts,
01686 const OSOCTET* data);
01687
01698 EXTERNXML int rtXmlEncIndent (OSCTXT* pctxt);
01699
01713 EXTERNXML int rtXmlEncInt (OSCTXT* pctxt, OSINT32 value,
01714 const OSUTF8CHAR* elemName,
01715 OSXMLNamespace* pNS);
01716
01727 EXTERNXML int rtXmlEncIntValue (OSCTXT* pctxt, OSINT32 value);
01728
01741 EXTERNXML int rtXmlEncIntAttr (OSCTXT* pctxt, OSINT32 value,
01742 const OSUTF8CHAR* attrName,
01743 size_t attrNameLen);
01744
01760 EXTERNXML int rtXmlEncIntPattern (OSCTXT* pctxt, OSINT32 value,
01761 const OSUTF8CHAR* elemName,
01762 OSXMLNamespace* pNS,
01763 const OSUTF8CHAR* pattern);
01764
01765 EXTERNXML int rtXmlEncIntPatternValue (OSCTXT* pctxt, OSINT32 value,
01766 const OSUTF8CHAR* pattern);
01767
01782 EXTERNXML int rtXmlEncInt64 (OSCTXT* pctxt, OSINT64 value,
01783 const OSUTF8CHAR* elemName,
01784 OSXMLNamespace* pNS);
01785
01797 EXTERNXML int rtXmlEncInt64Value (OSCTXT* pctxt, OSINT64 value);
01798
01812 EXTERNXML int rtXmlEncInt64Attr (OSCTXT* pctxt, OSINT64 value,
01813 const OSUTF8CHAR* attrName,
01814 size_t attrNameLen);
01815
01835 EXTERNXML int rtXmlEncNamedBits
01836 (OSCTXT* pctxt, const OSBitMapItem* pBitMap, OSUINT32 nbits,
01837 const OSOCTET* pvalue, const OSUTF8CHAR* elemName, OSXMLNamespace* pNS);
01838
01839 EXTERNXML int rtXmlEncNamedBitsValue
01840 (OSCTXT* pctxt, const OSBitMapItem* pBitMap, OSUINT32 nbits,
01841 const OSOCTET* pvalue);
01842
01854 #ifndef OSXMLNS12
01855 EXTERNXML int rtXmlEncNSAttrs (OSCTXT* pctxt);
01856 #else
01857 EXTERNXML int rtXmlEncNSAttrs (OSCTXT* pctxt, OSRTDList* pNSAttrs);
01858 #endif
01859
01876 EXTERNXML int rtXmlEncReal10
01877 (OSCTXT *pctxt, const OSUTF8CHAR *pvalue, const OSUTF8CHAR* elemName,
01878 OSXMLNamespace* pNS);
01879
01893 EXTERNXML int rtXmlEncSoapArrayTypeAttr
01894 (OSCTXT* pctxt, const OSUTF8CHAR* name, const OSUTF8CHAR* value,
01895 size_t itemCount);
01896
01897 EXTERNXML int rtXmlEncSoapArrayTypeAttr2
01898 (OSCTXT* pctxt, const OSUTF8CHAR* name, size_t nameLen,
01899 const OSUTF8CHAR* value, size_t valueLen, size_t itemCount);
01900
01912 EXTERNXML int rtXmlEncStartDocument (OSCTXT* pctxt);
01913
01924 EXTERNXML int rtXmlEncBOM (OSCTXT* pctxt);
01937 EXTERNXML int rtXmlEncStartElement (OSCTXT* pctxt,
01938 const OSUTF8CHAR* elemName,
01939 OSXMLNamespace* pNS,
01940 OSRTDList* pNSAttrs,
01941 OSBOOL terminate);
01942
01952 EXTERNXML int rtXmlEncStartSoapEnv (OSCTXT* pctxt);
01953
01965 EXTERNXML int rtXmlEncStartSoapElems
01966 (OSCTXT* pctxt, OSXMLSOAPMsgType msgtype);
01967
01981 EXTERNXML int rtXmlEncString (OSCTXT* pctxt,
01982 OSXMLSTRING* pxmlstr,
01983 const OSUTF8CHAR* elemName,
01984 OSXMLNamespace* pNS);
01985
01995 EXTERNXML int rtXmlEncStringValue (OSCTXT* pctxt, const OSUTF8CHAR* value);
01996
02007 EXTERNXML int rtXmlEncStringValue2
02008 (OSCTXT* pctxt, const OSUTF8CHAR* value, size_t valueLen);
02009
02020 EXTERNXML int rtXmlEncTermStartElement (OSCTXT* pctxt);
02021
02037 EXTERNXML int rtXmlEncUnicodeStr (OSCTXT* pctxt,
02038 const OSUNICHAR* value,
02039 OSUINT32 nchars,
02040 const OSUTF8CHAR* elemName,
02041 OSXMLNamespace* pNS);
02042
02054 EXTERNXML int rtXmlEncUTF8Attr (OSCTXT* pctxt,
02055 const OSUTF8CHAR* name,
02056 const OSUTF8CHAR* value);
02057
02071 EXTERNXML int rtXmlEncUTF8Attr2 (OSCTXT* pctxt,
02072 const OSUTF8CHAR* name, size_t nameLen,
02073 const OSUTF8CHAR* value, size_t valueLen);
02074
02088 EXTERNXML int rtXmlEncUTF8Str (OSCTXT* pctxt,
02089 const OSUTF8CHAR* value,
02090 const OSUTF8CHAR* elemName,
02091 OSXMLNamespace* pNS);
02092
02106 EXTERNXML int rtXmlEncUInt (OSCTXT* pctxt, OSUINT32 value,
02107 const OSUTF8CHAR* elemName,
02108 OSXMLNamespace* pNS);
02109
02121 EXTERNXML int rtXmlEncUIntValue (OSCTXT* pctxt, OSUINT32 value);
02122
02135 EXTERNXML int rtXmlEncUIntAttr (OSCTXT* pctxt, OSUINT32 value,
02136 const OSUTF8CHAR* attrName,
02137 size_t attrNameLen);
02138
02154 EXTERNXML int rtXmlEncUInt64 (OSCTXT* pctxt, OSUINT64 value,
02155 const OSUTF8CHAR* elemName,
02156 OSXMLNamespace* pNS);
02157
02170 EXTERNXML int rtXmlEncUInt64Value (OSCTXT* pctxt, OSUINT64 value);
02171
02185 EXTERNXML int rtXmlEncUInt64Attr (OSCTXT* pctxt, OSUINT64 value,
02186 const OSUTF8CHAR* attrName,
02187 size_t attrNameLen);
02188
02205 EXTERNXML int rtXmlEncXSIAttrs (OSCTXT* pctxt, OSBOOL needXSI);
02206
02217 EXTERNXML int rtXmlFreeInputSource (OSCTXT* pctxt);
02218
02219 EXTERNXML OSBOOL rtXmlStrCmpAsc (const OSUTF8CHAR* text1, const char* text2);
02220
02221 EXTERNXML OSBOOL rtXmlStrnCmpAsc (const OSUTF8CHAR* text1,
02222 const char* text2, size_t len);
02223
02224
02225
02226 #define rtXmlFinalizeMemBuf(pMemBuf) do { \
02227 (pMemBuf)->pctxt->buffer.data = (pMemBuf)->buffer + (pMemBuf)->startidx; \
02228 (pMemBuf)->pctxt->buffer.size = \
02229 ((pMemBuf)->usedcnt - (pMemBuf)->startidx); \
02230 (pMemBuf)->pctxt->buffer.dynamic = FALSE; \
02231 (pMemBuf)->pctxt->buffer.byteIndex = 0; \
02232 rtxMemBufReset (pMemBuf); \
02233 } while(0)
02234
02257 EXTERNXML int rtXmlSetEncBufPtr
02258 (OSCTXT* pctxt, OSOCTET* bufaddr, size_t bufsiz);
02259
02268 #define rtXmlGetEncBufPtr(pctxt) (pctxt)->buffer.data
02269
02275 #define rtXmlGetEncBufLen(pctxt) (pctxt)->buffer.byteIndex
02276
02277
02285 EXTERNXML int rtXmlGetIndent (OSCTXT* pctxt);
02286
02287
02296 EXTERNXML OSBOOL rtXmlGetWriteBOM (OSCTXT* pctxt);
02297
02306 EXTERNXML int rtXmlGetIndentChar (OSCTXT* pctxt);
02320 EXTERNXML int rtXmlPrepareContext (OSCTXT* pctxt);
02321
02322 EXTERNXML int rtXmlSetDigitsFacets
02323 (OSCTXT* pctxt, int totalDigits, int fractionDigits);
02324
02335 EXTERNXML int rtXmlSetEncDocHdr (OSCTXT* pctxt, OSBOOL value);
02336
02346 EXTERNXML int rtXmlSetEncodingStr
02347 (OSCTXT* pctxt, const OSUTF8CHAR* encodingStr);
02348
02364 EXTERNXML int rtXmlSetFormatting (OSCTXT* pctxt, OSBOOL doFormatting);
02365
02374 EXTERNXML int rtXmlSetIndent (OSCTXT* pctxt, OSUINT8 indent);
02375
02384 EXTERNXML int rtXmlSetIndentChar (OSCTXT* pctxt, char indentChar);
02385
02396 EXTERNXML void rtXmlSetNamespacesSet (OSCTXT* pctxt, OSBOOL value);
02397
02407 EXTERNXML int rtXmlSetNSPrefixLinks (OSCTXT* pctxt, OSRTDList* pNSAttrs);
02408
02420 EXTERNXML int rtXmlSetSchemaLocation
02421 (OSCTXT* pctxt, const OSUTF8CHAR* schemaLocation);
02422
02434 EXTERNXML int rtXmlSetNoNSSchemaLocation
02435 (OSCTXT* pctxt, const OSUTF8CHAR* schemaLocation);
02436
02447 EXTERNXML int rtXmlSetXSITypeAttr (OSCTXT* pctxt, const OSUTF8CHAR* xsiType);
02448
02457 EXTERNXML int rtXmlSetWriteBOM (OSCTXT* pctxt, OSBOOL write);
02458
02459 #include "rtxmlsrc/rtXmlNamespace.h"
02460
02474 EXTERNXML int rtXmlMatchHexStr
02475 (OSCTXT* pctxt, size_t minLength, size_t maxLength);
02476
02490 EXTERNXML int rtXmlMatchBase64Str
02491 (OSCTXT* pctxt, size_t minLength, size_t maxLength);
02492
02504 EXTERNXML int rtXmlMatchDate (OSCTXT* pctxt);
02505
02517 EXTERNXML int rtXmlMatchTime (OSCTXT* pctxt);
02518
02530 EXTERNXML int rtXmlMatchDateTime (OSCTXT* pctxt);
02531
02543 EXTERNXML int rtXmlMatchGYear (OSCTXT* pctxt);
02544
02556 EXTERNXML int rtXmlMatchGYearMonth (OSCTXT* pctxt);
02557
02569 EXTERNXML int rtXmlMatchGMonth (OSCTXT* pctxt);
02570
02582 EXTERNXML int rtXmlMatchGMonthDay (OSCTXT* pctxt);
02583
02595 EXTERNXML int rtXmlMatchGDay (OSCTXT* pctxt);
02596
02606 EXTERNXML OSBOOL rtXmlCmpBase64Str (OSUINT32 nocts1,
02607 const OSOCTET* data1,
02608 const OSUTF8CHAR* data2);
02609
02619 EXTERNXML OSBOOL rtXmlCmpHexStr (OSUINT32 nocts1,
02620 const OSOCTET* data1,
02621 const OSUTF8CHAR* data2);
02622
02623 EXTERNXML OSBOOL rtXmlCmpHexChar (OSUTF8CHAR ch, OSOCTET hexval);
02624
02625 EXTERNXML int rtSaxGetAttributeID (const OSUTF8CHAR* attrName,
02626 size_t nAttr,
02627 const OSUTF8CHAR* attrNames[],
02628 OSUINT32 attrPresent[]);
02629
02642 EXTERNXML const OSUTF8CHAR* rtSaxGetAttrValue
02643 (const OSUTF8CHAR* attrName, const OSUTF8CHAR* const* attrs);
02644
02659 EXTERNXML OSINT16 rtSaxGetElemID
02660 (OSINT16* pState, OSINT16 prevElemIdx, const OSUTF8CHAR* localName,
02661 #ifdef OSXMLNS12
02662 OSINT32 nsidx,
02663 #endif
02664 const OSSAXElemTableRec idtab[], const OSINT16* fstab,
02665 OSINT16 fstabRows, OSINT16 fstabCols);
02666
02681 EXTERNXML OSINT16 rtSaxGetElemID8
02682 (OSINT16* pState, OSINT16 prevElemIdx, const OSUTF8CHAR* localName,
02683 #ifdef OSXMLNS12
02684 OSINT32 nsidx,
02685 #endif
02686 const OSSAXElemTableRec idtab[], const OSINT8* fstab,
02687 OSINT16 fstabRows, OSINT16 fstabCols);
02688
02689 EXTERNXML OSINT16 rtSaxFindElemID
02690 (OSINT16* pState, OSINT16 prevElemIdx, const OSUTF8CHAR* localName,
02691 #ifdef OSXMLNS12
02692 OSINT32 nsidx,
02693 #endif
02694 const OSSAXElemTableRec idtab[], const OSINT16* fstab,
02695 OSINT16 fstabRows, OSINT16 fstabCols);
02696
02697 EXTERNXML OSINT16 rtSaxFindElemID8
02698 (OSINT16* pState, OSINT16 prevElemIdx, const OSUTF8CHAR* localName,
02699 #ifdef OSXMLNS12
02700 OSINT32 nsidx,
02701 #endif
02702 const OSSAXElemTableRec idtab[], const OSINT8* fstab,
02703 OSINT16 fstabRows, OSINT16 fstabCols);
02704
02713 EXTERNXML OSBOOL rtSaxHasXMLNSAttrs (const OSUTF8CHAR* const* attrs);
02714
02722 EXTERNXML OSBOOL rtSaxIsEmptyBuffer (OSCTXT* pctxt);
02723
02724 EXTERNXML OSINT16 rtSaxLookupElemID
02725 (OSCTXT* pctxt, OSINT16* pState, OSINT16 prevElemIdx,
02726 const OSUTF8CHAR* localName, const OSUTF8CHAR* qName,
02727 #ifdef OSXMLNS12
02728 OSINT32 nsidx,
02729 #endif
02730 const OSSAXElemTableRec idtab[], const OSINT16* fstab,
02731 OSINT16 fstabRows, OSINT16 fstabCols);
02732
02733 EXTERNXML OSINT16 rtSaxLookupElemID8
02734 (OSCTXT* pctxt, OSINT16* pState, OSINT16 prevElemIdx,
02735 const OSUTF8CHAR* localName, const OSUTF8CHAR* qName,
02736 #ifdef OSXMLNS12
02737 OSINT32 nsidx,
02738 #endif
02739 const OSSAXElemTableRec idtab[], const OSINT8* fstab,
02740 OSINT16 fstabRows, OSINT16 fstabCols);
02741
02753 EXTERNXML int rtSaxStrListParse
02754 (OSCTXT* pctxt, OSRTMEMBUF *pMemBuf, OSRTDList* pvalue);
02755
02763 EXTERNXML int rtSaxStrListMatch (OSCTXT* pctxt);
02764
02765 EXTERNXML OSBOOL rtSaxTestFinal (OSINT16 state,
02766 OSINT16 currElemIdx,
02767 const int* fstab,
02768 int fstabRows, int fstabCols);
02769
02770 EXTERNXML OSBOOL rtSaxTestFinal8 (OSINT16 state,
02771 OSINT16 currElemIdx,
02772 const OSINT8* fstab,
02773 int fstabRows, int fstabCols);
02774
02775 EXTERNXML int rtSaxSetSkipLevelToCurrent (OSCTXT* pctxt, int stat);
02776
02777 EXTERNXML OSUINT32 rtSaxSetMaxErrors (OSCTXT* pctxt, OSUINT32 maxErrors);
02778
02779 EXTERNXML OSUINT32 rtSaxGetMaxErrors (OSCTXT* pctxt);
02780
02781 EXTERNXML int rtSaxTestAttributesPresent (OSCTXT* pctxt,
02782 const OSUINT32* attrPresent, const OSUINT32* reqAttrMask,
02783 const OSUTF8CHAR* const* attrNames, size_t numOfAttrs,
02784 const char* parentTypeName);
02785
02786 EXTERNXML OSBOOL rtSaxIncErrors (OSCTXT* pctxt);
02787
02788 EXTERNXML int rtSaxReportUnexpAttrs (OSCTXT* pctxt,
02789 const OSUTF8CHAR* const* attrs,
02790 const char* typeName);
02791
02804 EXTERNXML int rtXmlWriteToFile (OSCTXT* pctxt, const char* filename);
02805
02806 EXTERNXML void rtXmlTreatWhitespaces (OSCTXT* pctxt, int whiteSpaceType);
02807
02812 EXTERNXML void rtErrXmlInit (void);
02813
02833 EXTERNXML int rtXmlpDecAny (OSCTXT* pctxt, const OSUTF8CHAR** pvalue);
02834
02851 EXTERNXML int rtXmlpDecAnyAttrStr
02852 (OSCTXT* pctxt, const OSUTF8CHAR** ppAttrStr, size_t index);
02853
02873 EXTERNXML int rtXmlpDecAnyElem (OSCTXT* pctxt, const OSUTF8CHAR** pvalue);
02874
02900 EXTERNXML int rtXmlpDecBase64Str (OSCTXT* pctxt, OSOCTET* pvalue,
02901 OSUINT32* pnocts, OSINT32 bufsize);
02902
02926 EXTERNXML int rtXmlpDecBigInt (OSCTXT* pctxt, const OSUTF8CHAR** pvalue);
02927
02944 EXTERNXML int rtXmlpDecBitString
02945 (OSCTXT* pctxt, OSOCTET* pvalue, OSUINT32* pnbits, OSUINT32 bufsize);
02946
02959 EXTERNXML int rtXmlpDecBool (OSCTXT* pctx