00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00043 #ifndef _OSRTXML_H_
00044 #define _OSRTXML_H_
00045
00046 #define OSXMLNS12
00047
00048 #include "rtxsrc/rtxCommon.h"
00049 #include "rtxmlsrc/rtSaxDefs.h"
00050 #include "rtxsrc/rtxDList.h"
00051 #include "rtxsrc/rtxMemBuf.h"
00052 #include "rtxmlsrc/rtXmlExternDefs.h"
00053 #include "rtxmlsrc/rtXmlErrCodes.h"
00054 #include "rtxmlsrc/rtXmlNamespace.h"
00055
00056
00057
00058 #define OSUPCASE 0x00008000
00059 #define OSTERMSTART 0x00004000
00060 #define OSEMPTYELEM 0x00002000
00061 #define OSQUALATTR 0x00001000
00062 #define OSXMLFRAG 0x00000800
00063 #define OSXMLNSSET 0x00000400
00064 #define OSXMLC14N 0x00000200
00065 #define OSXSIATTR 0x00000100
00066
00067 typedef enum {
00068 OSXMLUTF8,
00069 OSXMLUTF16
00070 } OSXMLEncoding;
00071
00072 typedef enum {
00073 OSSOAPNONE, OSSOAPHEADER, OSSOAPBODY, OSSOAPFAULT
00074 } OSXMLSOAPMsgType;
00075
00076 typedef enum {
00077 OSXMLBOM_NO_BOM,
00078 OSXMLBOM_UTF32_BE,
00079 OSXMLBOM_UTF32_LE,
00080 OSXMLBOM_UTF16_BE,
00081 OSXMLBOM_UTF16_LE,
00082 OSXMLBOM_UTF8
00083 } OSXMLBOM;
00084
00085 typedef struct OSXMLFacets {
00086 int totalDigits;
00087 int fractionDigits;
00088 } OSXMLFacets;
00089
00090 typedef struct {
00091 const OSUTF8CHAR* value;
00092 size_t length;
00093 } OSXMLStrFragment;
00094
00095 typedef struct {
00096 OSXMLStrFragment mQName;
00097 OSXMLStrFragment mLocalName;
00098 OSXMLStrFragment mPrefix;
00099 } OSXMLNameFragments;
00100
00101 typedef struct OSXMLItemDescr {
00102 OSXMLStrFragment localName;
00103 OSINT16 nsidx;
00104 } OSXMLItemDescr;
00105
00106 typedef OSXMLItemDescr OSXMLAttrDescr;
00107 typedef OSXMLItemDescr OSXMLElemDescr;
00108
00109 typedef struct OSXMLElemIDRec {
00110 OSXMLElemDescr descr;
00111 OSUINT16 id;
00112 } OSXMLElemIDRec;
00113
00114 typedef struct OSXMLGroupDesc {
00115 int row;
00116 int num;
00117 int anyCase;
00118 } OSXMLGroupDesc;
00119
00120 typedef struct OSXSDAnyType {
00121 OSXMLSTRING value;
00122 OSRTDList attrs;
00123 } OSXSDAnyType;
00124
00125 #define OSXMLFRAGSEQUAL(frag1,frag2) \
00126 (frag1.length==frag2.length && !memcmp(frag1.value,frag2.value,frag1.length))
00127
00128 #define OSXMLQNAMEEQUALS(xnamefrag,qnametext) rtxUTF8StrnEqual \
00129 (xnamefrag.mQName.value, OSUTF8(qnametext), xnamefrag.mQName.length)
00130
00131 #define OSXMLSETUTF8DECPTR(pctxt,str) \
00132 rtxInitContextBuffer (pctxt, OSRTSAFECONSTCAST (OSOCTET*, str), \
00133 OSUTF8LEN (str))
00134
00135 #define IS_XMLNSATTR(name) \
00136 ((OSUTF8LEN(name) >= 5) && name[0] == 'x' && name[1] == 'm' && \
00137 name[2] == 'l' && name[3] == 'n' && name[4] == 's')
00138
00139 #define IS_XSIATTR(name) \
00140 ((OSUTF8LEN(name) >= 4) && name[0] == 'x' && name[1] == 's' && \
00141 name[2] == 'i' && name[3] == ':')
00142
00143
00144
00145
00146
00147 typedef struct {
00148 OSFreeCtxtAppInfoPtr pFreeFunc;
00149 OSResetCtxtAppInfoPtr pResetFunc;
00150 OSUTF8CHAR* schemaLocation;
00151 OSUTF8CHAR* noNSSchemaLoc;
00152 OSUTF8CHAR* xsiTypeAttr;
00153 OSXMLEncoding encoding;
00154 OSRTDList namespaceList;
00155 OSRTDList encodedNSList;
00156 OSRTDList sortedAttrList;
00157 OSXMLNSPfxLinkStack nsPfxLinkStack;
00158 OSXMLNSURITable nsURITable;
00159 OSRTMEMBUF memBuf;
00160 OSINT32 mSaxLevel;
00161 OSINT32 mSkipLevel;
00162 OSUINT32 maxSaxErrors;
00163 OSUINT32 errorsCnt;
00164 OSUINT8 indent;
00165 OSBOOL mbCdataProcessed;
00166 char indentChar;
00167 OSUINT8 soapVersion;
00168 OSXMLFacets facets;
00169 const OSUTF8CHAR* encodingStr;
00170 OSXMLBOM byteOrderMark;
00171 struct OSXMLReader* pXmlPPReader;
00172
00173 OSRTBuffer savedBuffer;
00174 OSRTFLAGS savedFlags;
00175 OSOCTET* attrsBuff;
00176 size_t attrsBuffSize;
00177 size_t attrStartPos;
00178 } OSXMLCtxtInfo;
00179
00180 typedef enum {
00181 OSXMLINIT,
00182 OSXMLHEADER,
00183 OSXMLSTART,
00184 OSXMLATTR,
00185 OSXMLDATA,
00186 OSXMLEND
00187 } OSXMLState;
00188
00189 typedef struct OSXMLQName {
00190 const OSUTF8CHAR* nsPrefix;
00191 const OSUTF8CHAR* ncName;
00192 } OSXMLQName;
00193
00194 struct OSSAXHandlerBase;
00195
00196 typedef struct OSIntegerFmt {
00197 OSINT8 integerMaxDigits;
00198
00199 OSBOOL signPresent;
00200
00201 } OSIntegerFmt;
00202
00203 typedef struct OSDecimalFmt {
00204 OSINT8 totalDigits;
00205 OSINT8 fractionDigits;
00206
00207 OSINT8 fractionMinDigits;
00208
00209
00210 OSINT8 integerMaxDigits;
00211
00212
00213 OSINT8 integerMinDigits;
00214
00215 OSBOOL signPresent;
00216
00217 OSBOOL pointPresent;
00218
00219 OSUINT8 nPatterns;
00220 const char* const* patterns;
00221
00222 } OSDecimalFmt;
00223
00224 typedef struct OSDoubleFmt {
00225 OSINT8 totalDigits;
00226 OSINT8 fractionDigits;
00227
00228 OSINT8 fractionMinDigits;
00229
00230
00231 OSINT8 integerMaxDigits;
00232
00233
00234 OSINT8 integerMinDigits;
00235
00236 OSINT8 expSymbol;
00237
00238 OSINT16 expMinValue;
00239 OSINT16 expMaxValue;
00240 OSINT8 expDigits;
00241
00242
00243 OSBOOL signPresent;
00244
00245 OSBOOL pointPresent;
00246
00247 OSBOOL expPresent;
00248
00249 OSBOOL expSignPresent;
00250
00251 } OSDoubleFmt;
00252
00253 typedef struct {
00254 size_t offset;
00255 size_t length;
00256 size_t prefixLength;
00257 size_t nameLength;
00258 } OSXMLSortedAttrOffset;
00259
00260 #define OSXMLINDENT 3
00261
00262 #ifdef XML_UNICODE
00263 #define rtXmlErrAddStrParm rtxErrAddUniStrParm
00264 #else
00265 #define rtXmlErrAddStrParm rtxErrAddStrParm
00266 #endif
00267
00271 typedef enum {
00272 OSXMLWSM_PRESERVE = 0,
00273 OSXMLWSM_REPLACE,
00274 OSXMLWSM_COLLAPSE
00275 } OSXMLWhiteSpaceMode;
00276
00277 #ifdef __cplusplus
00278 extern "C" {
00279 #endif
00280
00281
00282
00289 EXTERNXML int rtXmlInitContext (OSCTXT* pctxt);
00290
00297 EXTERNXML int rtXmlInitCtxtAppInfo (OSCTXT* pctxt);
00298
00309 EXTERNXML int rtXmlCreateFileInputSource (OSCTXT* pctxt, const char* filepath);
00310
00311 EXTERNXML OSBOOL rtXmlCmpQName
00312 (const OSUTF8CHAR* qname1, const OSUTF8CHAR* name2, const OSUTF8CHAR* nsPrefix2);
00313
00314 EXTERNXML int rtXmlGetBase64StrDecodedLen
00315 (const OSUTF8CHAR* inpdata, size_t srcDataSize,
00316 size_t* pNumOcts, size_t* pSrcDataLen);
00317
00338 EXTERNXML int rtXmlDecBase64Binary (OSRTMEMBUF* pMemBuf,
00339 const OSUTF8CHAR* inpdata,
00340 int length);
00341
00365 EXTERNXML int rtXmlDecBase64Str (OSCTXT* pctxt,
00366 OSOCTET* pvalue, OSUINT32* pnocts,
00367 OSINT32 bufsize);
00368
00394 EXTERNXML int rtXmlDecBase64StrValue (OSCTXT* pctxt,
00395 OSOCTET* pvalue, OSUINT32* pnocts,
00396 size_t bufSize, size_t srcDataLen);
00397
00419 EXTERNXML int rtXmlDecBigInt
00420 (OSCTXT* pctxt, const OSUTF8CHAR** ppvalue);
00421
00432 EXTERNXML int rtXmlDecBool (OSCTXT* pctxt, OSBOOL* pvalue);
00433
00446 EXTERNXML int rtXmlDecDate (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00447
00466 EXTERNXML int rtXmlDecTime (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00467
00480 EXTERNXML int rtXmlDecDateTime (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00481
00494 EXTERNXML int rtXmlDecDecimal (OSCTXT* pctxt, OSREAL* pvalue);
00495
00508 EXTERNXML int rtXmlDecDouble (OSCTXT* pctxt, OSREAL* pvalue);
00509
00526 EXTERNXML int rtXmlDecDynBase64Str (OSCTXT* pctxt, OSDynOctStr* pvalue);
00527
00543 EXTERNXML int rtXmlDecDynHexStr (OSCTXT* pctxt, OSDynOctStr* pvalue);
00544
00558 EXTERNXML int rtXmlDecUTF8Str
00559 (OSCTXT* pctxt, OSUTF8CHAR* outdata, size_t max_len);
00560
00561
00575 EXTERNXML int rtXmlDecDynUTF8Str (OSCTXT* pctxt, const OSUTF8CHAR** outdata);
00576
00595 EXTERNXML int rtXmlDecHexBinary (OSRTMEMBUF* pMemBuf,
00596 const OSUTF8CHAR* inpdata,
00597 int length);
00598
00621 EXTERNXML int rtXmlDecHexStr (OSCTXT* pctxt,
00622 OSOCTET* pvalue, OSUINT32* pnocts,
00623 OSINT32 bufsize);
00624
00625 EXTERNXML int rtXmlDecHexStrValue (OSCTXT* pctxt,
00626 const OSUTF8CHAR* const inpdata, size_t nbytes, OSOCTET* pvalue,
00627 OSUINT32* pnbits, OSINT32 bufsize);
00628
00641 EXTERNXML int rtXmlDecGYear (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00642
00655 EXTERNXML int rtXmlDecGYearMonth (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00656
00669 EXTERNXML int rtXmlDecGMonth (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00670
00683 EXTERNXML int rtXmlDecGMonthDay (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00684
00697 EXTERNXML int rtXmlDecGDay (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00698
00711 EXTERNXML int rtXmlDecInt (OSCTXT* pctxt, OSINT32* pvalue);
00712
00726 EXTERNXML int rtXmlDecInt8 (OSCTXT* pctxt, OSINT8* pvalue);
00727
00740 EXTERNXML int rtXmlDecInt16 (OSCTXT* pctxt, OSINT16* pvalue);
00741
00754 EXTERNXML int rtXmlDecInt64 (OSCTXT* pctxt, OSINT64* pvalue);
00755
00768 EXTERNXML int rtXmlDecUInt (OSCTXT* pctxt, OSUINT32* pvalue);
00769
00783 EXTERNXML int rtXmlDecUInt8 (OSCTXT* pctxt, OSUINT8* pvalue);
00784
00797 EXTERNXML int rtXmlDecUInt16 (OSCTXT* pctxt, OSUINT16* pvalue);
00798
00811 EXTERNXML int rtXmlDecUInt64 (OSCTXT* pctxt, OSUINT64* pvalue);
00812
00831 EXTERNXML int rtXmlDecNSAttr
00832 (OSCTXT* pctxt, const OSUTF8CHAR* attrName, const OSUTF8CHAR* attrValue,
00833 OSRTDList* pNSAttrs, const OSUTF8CHAR* nsTable[], OSUINT32 nsTableRowCount);
00834
00859 EXTERNXML const OSUTF8CHAR* rtXmlDecQName
00860 (OSCTXT* pctxt, const OSUTF8CHAR* qname, const OSUTF8CHAR** prefix);
00861
00874 EXTERNXML int rtXmlDecXSIAttr
00875 (OSCTXT* pctxt, const OSUTF8CHAR* attrName, const OSUTF8CHAR* attrValue);
00876
00891 EXTERNXML int rtXmlDecXSIAttrs (OSCTXT* pctxt, const OSUTF8CHAR* const* attrs,
00892 const char* typeName);
00893
00910 EXTERNXML int rtXmlDecXmlStr (OSCTXT* pctxt, OSXMLSTRING* outdata);
00911
00924 EXTERNXML int rtXmlParseElementName (OSCTXT* pctxt, OSUTF8CHAR** ppName);
00925
00938 EXTERNXML int rtXmlParseElemQName (OSCTXT* pctxt, OSXMLQName* pQName);
00939
00965 EXTERNXML int rtXmlEncAny (OSCTXT* pctxt, OSXMLSTRING* pvalue,
00966 const OSUTF8CHAR* elemName,
00967 OSXMLNamespace* pNS);
00968
00969 EXTERNXML int rtXmlEncAnyStr
00970 (OSCTXT* pctxt, const OSUTF8CHAR* pvalue,
00971 const OSUTF8CHAR* elemName, OSXMLNamespace* pNS);
00972
00984 EXTERNXML int rtXmlEncAnyTypeValue (OSCTXT* pctxt, const OSUTF8CHAR* pvalue);
00985
00996 EXTERNXML int rtXmlEncAnyAttr (OSCTXT* pctxt, OSRTDList* pAnyAttrList);
00997
01012 EXTERNXML int rtXmlEncBase64Binary (OSCTXT* pctxt, OSUINT32 nocts,
01013 const OSOCTET* value,
01014 const OSUTF8CHAR* elemName,
01015 OSXMLNamespace* pNS);
01016
01030 EXTERNXML int rtXmlEncBase64BinaryAttr
01031 (OSCTXT* pctxt, OSUINT32 nocts, const OSOCTET* value,
01032 const OSUTF8CHAR* attrName, size_t attrNameLen);
01033
01045 EXTERNXML int rtXmlEncBase64StrValue (OSCTXT* pctxt, OSUINT32 nocts,
01046 const OSOCTET* value);
01047
01071 EXTERNXML int rtXmlEncBigInt (OSCTXT* pctxt, const OSUTF8CHAR* value,
01072 const OSUTF8CHAR* elemName,
01073 OSXMLNamespace* pNS);
01074
01089 EXTERNXML int rtXmlEncBigIntAttr (OSCTXT* pctxt, const OSUTF8CHAR* value,
01090 const OSUTF8CHAR* attrName, size_t attrNameLen);
01091
01105 EXTERNXML int rtXmlEncBigIntValue (OSCTXT* pctxt, const OSUTF8CHAR* value);
01106
01124 EXTERNXML int rtXmlEncBitString (OSCTXT* pctxt, OSUINT32 nbits,
01125 const OSOCTET* value,
01126 const OSUTF8CHAR* elemName,
01127 OSXMLNamespace* pNS);
01128
01140 EXTERNXML int rtXmlEncBinStrValue (OSCTXT* pctxt,
01141 OSUINT32 nbits,
01142 const OSOCTET* data);
01143
01158 EXTERNXML int rtXmlEncBool (OSCTXT* pctxt, OSBOOL value,
01159 const OSUTF8CHAR* elemName,
01160 OSXMLNamespace* pNS);
01161
01172 EXTERNXML int rtXmlEncBoolValue (OSCTXT* pctxt, OSBOOL value);
01173
01185 EXTERNXML int rtXmlEncBoolAttr (OSCTXT* pctxt, OSBOOL value,
01186 const OSUTF8CHAR* attrName,
01187 size_t attrNameLen);
01188
01206 EXTERNXML int rtXmlEncDate (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01207 const OSUTF8CHAR* elemName,
01208 OSXMLNamespace* pNS);
01209
01223 EXTERNXML int rtXmlEncDateValue
01224 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01225
01249 EXTERNXML int rtXmlEncTime (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01250 const OSUTF8CHAR* elemName,
01251 OSXMLNamespace* pNS);
01252
01265 EXTERNXML int rtXmlEncTimeValue
01266 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01267
01283 EXTERNXML int rtXmlEncDateTime (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01284 const OSUTF8CHAR* elemName,
01285 OSXMLNamespace* pNS);
01286
01298 EXTERNXML int rtXmlEncDateTimeValue
01299 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01300
01315 EXTERNXML int rtXmlEncDecimal (OSCTXT* pctxt, OSREAL value,
01316 const OSUTF8CHAR* elemName,
01317 OSXMLNamespace* pNS,
01318 const OSDecimalFmt* pFmtSpec);
01319
01332 EXTERNXML int rtXmlEncDecimalAttr (OSCTXT* pctxt, OSREAL value,
01333 const OSUTF8CHAR* attrName,
01334 size_t attrNameLen,
01335 const OSDecimalFmt* pFmtSpec);
01336
01354 EXTERNXML int rtXmlEncDecimalValue (OSCTXT* pctxt, OSREAL value,
01355 const OSDecimalFmt* pFmtSpec,
01356 char* pDestBuf, size_t destBufSize);
01357
01372 EXTERNXML int rtXmlEncDouble (OSCTXT* pctxt, OSREAL value,
01373 const OSUTF8CHAR* elemName,
01374 OSXMLNamespace* pNS,
01375 const OSDoubleFmt* pFmtSpec);
01376
01389 EXTERNXML int rtXmlEncDoubleAttr (OSCTXT* pctxt, OSREAL value,
01390 const OSUTF8CHAR* attrName,
01391 size_t attrNameLen,
01392 const OSDoubleFmt* pFmtSpec);
01393
01407 EXTERNXML int rtXmlEncDoubleValue (OSCTXT* pctxt, OSREAL value,
01408 const OSDoubleFmt* pFmtSpec,
01409 int defaultPrecision);
01410
01423 EXTERNXML int rtXmlEncEmptyElement (OSCTXT* pctxt,
01424 const OSUTF8CHAR* elemName,
01425 OSXMLNamespace* pNS,
01426 OSRTDList* pNSAttrs,
01427 OSBOOL terminate);
01428
01438 EXTERNXML int rtXmlEncEndDocument (OSCTXT* pctxt);
01439
01450 EXTERNXML int rtXmlEncEndElement (OSCTXT* pctxt,
01451 const OSUTF8CHAR* elemName,
01452 OSXMLNamespace* pNS);
01453
01463 EXTERNXML int rtXmlEncEndSoapEnv (OSCTXT* pctxt);
01464
01476 EXTERNXML int rtXmlEncEndSoapElems (OSCTXT* pctxt, OSXMLSOAPMsgType msgtype);
01477
01492 EXTERNXML int rtXmlEncFloat (OSCTXT* pctxt, OSREAL value,
01493 const OSUTF8CHAR* elemName,
01494 OSXMLNamespace* pNS,
01495 const OSDoubleFmt* pFmtSpec);
01496
01509 EXTERNXML int rtXmlEncFloatAttr (OSCTXT* pctxt, OSREAL value,
01510 const OSUTF8CHAR* attrName,
01511 size_t attrNameLen,
01512 const OSDoubleFmt* pFmtSpec);
01513
01528 EXTERNXML int rtXmlEncGYear (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01529 const OSUTF8CHAR* elemName,
01530 OSXMLNamespace* pNS);
01531
01546 EXTERNXML int rtXmlEncGYearMonth (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01547 const OSUTF8CHAR* elemName,
01548 OSXMLNamespace* pNS);
01549
01564 EXTERNXML int rtXmlEncGMonth (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01565 const OSUTF8CHAR* elemName,
01566 OSXMLNamespace* pNS);
01567
01582 EXTERNXML int rtXmlEncGMonthDay (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01583 const OSUTF8CHAR* elemName,
01584 OSXMLNamespace* pNS);
01585
01600 EXTERNXML int rtXmlEncGDay (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01601 const OSUTF8CHAR* elemName,
01602 OSXMLNamespace* pNS);
01603
01615 EXTERNXML int rtXmlEncGYearValue
01616 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01617
01629 EXTERNXML int rtXmlEncGYearMonthValue
01630 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01631
01643 EXTERNXML int rtXmlEncGMonthValue
01644 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01645
01657 EXTERNXML int rtXmlEncGMonthDayValue
01658 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01659
01671 EXTERNXML int rtXmlEncGDayValue
01672 (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01673
01688 EXTERNXML int rtXmlEncHexBinary (OSCTXT* pctxt, OSUINT32 nocts,
01689 const OSOCTET* value,
01690 const OSUTF8CHAR* elemName,
01691 OSXMLNamespace* pNS);
01692
01705 EXTERNXML int rtXmlEncHexBinaryAttr
01706 (OSCTXT* pctxt, OSUINT32 nocts, const OSOCTET* value,
01707 const OSUTF8CHAR* attrName, size_t attrNameLen);
01708
01720 EXTERNXML int rtXmlEncHexStrValue (OSCTXT* pctxt,
01721 OSUINT32 nocts,
01722 const OSOCTET* data);
01723
01734 EXTERNXML int rtXmlEncIndent (OSCTXT* pctxt);
01735
01749 EXTERNXML int rtXmlEncInt (OSCTXT* pctxt, OSINT32 value,
01750 const OSUTF8CHAR* elemName,
01751 OSXMLNamespace* pNS);
01752
01763 EXTERNXML int rtXmlEncIntValue (OSCTXT* pctxt, OSINT32 value);
01764
01777 EXTERNXML int rtXmlEncIntAttr (OSCTXT* pctxt, OSINT32 value,
01778 const OSUTF8CHAR* attrName,
01779 size_t attrNameLen);
01780
01796 EXTERNXML int rtXmlEncIntPattern (OSCTXT* pctxt, OSINT32 value,
01797 const OSUTF8CHAR* elemName,
01798 OSXMLNamespace* pNS,
01799 const OSUTF8CHAR* pattern);
01800
01801 EXTERNXML int rtXmlEncIntPatternValue (OSCTXT* pctxt, OSINT32 value,
01802 const OSUTF8CHAR* pattern);
01803
01818 EXTERNXML int rtXmlEncInt64 (OSCTXT* pctxt, OSINT64 value,
01819 const OSUTF8CHAR* elemName,
01820 OSXMLNamespace* pNS);
01821
01833 EXTERNXML int rtXmlEncInt64Value (OSCTXT* pctxt, OSINT64 value);
01834
01848 EXTERNXML int rtXmlEncInt64Attr (OSCTXT* pctxt, OSINT64 value,
01849 const OSUTF8CHAR* attrName,
01850 size_t attrNameLen);
01851
01870 EXTERNXML int rtXmlEncNamedBits
01871 (OSCTXT* pctxt, const OSBitMapItem* pBitMap, OSUINT32 nbits,
01872 const OSOCTET* pvalue, const OSUTF8CHAR* elemName, OSXMLNamespace* pNS);
01873
01874 EXTERNXML int rtXmlEncNamedBitsValue
01875 (OSCTXT* pctxt, const OSBitMapItem* pBitMap, OSUINT32 nbits,
01876 const OSOCTET* pvalue);
01877
01891 EXTERNXML int rtXmlEncNSAttrs (OSCTXT* pctxt, OSRTDList* pNSAttrs);
01892
01902 EXTERNXML int rtxPrintNSAttrs (const char* name, const OSRTDList data);
01903
01920 EXTERNXML int rtXmlEncReal10
01921 (OSCTXT *pctxt, const OSUTF8CHAR *pvalue, const OSUTF8CHAR* elemName,
01922 OSXMLNamespace* pNS);
01923
01937 EXTERNXML int rtXmlEncSoapArrayTypeAttr
01938 (OSCTXT* pctxt, const OSUTF8CHAR* name, const OSUTF8CHAR* value,
01939 size_t itemCount);
01940
01941 EXTERNXML int rtXmlEncSoapArrayTypeAttr2
01942 (OSCTXT* pctxt, const OSUTF8CHAR* name, size_t nameLen,
01943 const OSUTF8CHAR* value, size_t valueLen, size_t itemCount);
01944
01956 EXTERNXML int rtXmlEncStartDocument (OSCTXT* pctxt);
01957
01968 EXTERNXML int rtXmlEncBOM (OSCTXT* pctxt);
01981 EXTERNXML int rtXmlEncStartElement (OSCTXT* pctxt,
01982 const OSUTF8CHAR* elemName,
01983 OSXMLNamespace* pNS,
01984 OSRTDList* pNSAttrs,
01985 OSBOOL terminate);
01986
01996 EXTERNXML int rtXmlEncStartSoapEnv (OSCTXT* pctxt);
01997
02009 EXTERNXML int rtXmlEncStartSoapElems
02010 (OSCTXT* pctxt, OSXMLSOAPMsgType msgtype);
02011
02025 EXTERNXML int rtXmlEncString (OSCTXT* pctxt,
02026 OSXMLSTRING* pxmlstr,
02027 const OSUTF8CHAR* elemName,
02028 OSXMLNamespace* pNS);
02029
02039 EXTERNXML int rtXmlEncStringValue (OSCTXT* pctxt, const OSUTF8CHAR* value);
02040
02051 EXTERNXML int rtXmlEncStringValue2
02052 (OSCTXT* pctxt, const OSUTF8CHAR* value, size_t valueLen);
02053
02064 EXTERNXML int rtXmlEncTermStartElement (OSCTXT* pctxt);
02065
02081 EXTERNXML int rtXmlEncUnicodeStr (OSCTXT* pctxt,
02082 const OSUNICHAR* value,
02083 OSUINT32 nchars,
02084 const OSUTF8CHAR* elemName,
02085 OSXMLNamespace* pNS);
02086
02098 EXTERNXML int rtXmlEncUTF8Attr (OSCTXT* pctxt,
02099 const OSUTF8CHAR* name,
02100 const OSUTF8CHAR* value);
02101
02115 EXTERNXML int rtXmlEncUTF8Attr2 (OSCTXT* pctxt,
02116 const OSUTF8CHAR* name, size_t nameLen,
02117 const OSUTF8CHAR* value, size_t valueLen);
02118
02132 EXTERNXML int rtXmlEncUTF8Str (OSCTXT* pctxt,
02133 const OSUTF8CHAR* value,
02134 const OSUTF8CHAR* elemName,
02135 OSXMLNamespace* pNS);
02136
02150 EXTERNXML int rtXmlEncUInt (OSCTXT* pctxt, OSUINT32 value,
02151 const OSUTF8CHAR* elemName,
02152 OSXMLNamespace* pNS);
02153
02165 EXTERNXML int rtXmlEncUIntValue (OSCTXT* pctxt, OSUINT32 value);
02166
02179 EXTERNXML int rtXmlEncUIntAttr (OSCTXT* pctxt, OSUINT32 value,
02180 const OSUTF8CHAR* attrName,
02181 size_t attrNameLen);
02182
02198 EXTERNXML int rtXmlEncUInt64 (OSCTXT* pctxt, OSUINT64 value,
02199 const OSUTF8CHAR* elemName,
02200 OSXMLNamespace* pNS);
02201
02214 EXTERNXML int rtXmlEncUInt64Value (OSCTXT* pctxt, OSUINT64 value);
02215
02229 EXTERNXML int rtXmlEncUInt64Attr (OSCTXT* pctxt, OSUINT64 value,
02230 const OSUTF8CHAR* attrName,
02231 size_t attrNameLen);
02232
02252 EXTERNXML int rtXmlEncXSIAttrs (OSCTXT* pctxt, OSBOOL needXSI);
02253
02264 EXTERNXML int rtXmlEncXSITypeAttr (OSCTXT* pctxt, const OSUTF8CHAR* value);
02265
02276 EXTERNXML int rtXmlFreeInputSource (OSCTXT* pctxt);
02277
02278 EXTERNXML OSBOOL rtXmlStrCmpAsc (const OSUTF8CHAR* text1, const char* text2);
02279
02280 EXTERNXML OSBOOL rtXmlStrnCmpAsc (const OSUTF8CHAR* text1,
02281 const char* text2, size_t len);
02282
02283 #define rtXmlFinalizeMemBuf(pMemBuf) do { \
02284 (pMemBuf)->pctxt->buffer.data = (pMemBuf)->buffer + (pMemBuf)->startidx; \
02285 (pMemBuf)->pctxt->buffer.size = \
02286 ((pMemBuf)->usedcnt - (pMemBuf)->startidx); \
02287 (pMemBuf)->pctxt->buffer.dynamic = FALSE; \
02288 (pMemBuf)->pctxt->buffer.byteIndex = 0; \
02289 rtxMemBufReset (pMemBuf); \
02290 } while(0)
02291
02314 EXTERNXML int rtXmlSetEncBufPtr
02315 (OSCTXT* pctxt, OSOCTET* bufaddr, size_t bufsiz);
02316
02325 #define rtXmlGetEncBufPtr(pctxt) (pctxt)->buffer.data
02326
02332 #define rtXmlGetEncBufLen(pctxt) (pctxt)->buffer.byteIndex
02333
02334
02342 EXTERNXML int rtXmlGetIndent (OSCTXT* pctxt);
02343
02344
02353 EXTERNXML OSBOOL rtXmlGetWriteBOM (OSCTXT* pctxt);
02354
02363 EXTERNXML int rtXmlGetIndentChar (OSCTXT* pctxt);
02376 EXTERNXML int rtXmlPrepareContext (OSCTXT* pctxt);
02377
02386 EXTERNXML int rtXmlSetEncC14N (OSCTXT* pctxt, OSBOOL value);
02387
02398 EXTERNXML int rtXmlSetEncXSINamespace (OSCTXT* pctxt, OSBOOL value);
02399
02400 EXTERNXML int rtXmlSetDigitsFacets
02401 (OSCTXT* pctxt, int totalDigits, int fractionDigits);
02402
02413 EXTERNXML int rtXmlSetEncDocHdr (OSCTXT* pctxt, OSBOOL value);
02414
02424 EXTERNXML int rtXmlSetEncodingStr
02425 (OSCTXT* pctxt, const OSUTF8CHAR* encodingStr);
02426
02442 EXTERNXML int rtXmlSetFormatting (OSCTXT* pctxt, OSBOOL doFormatting);
02443
02452 EXTERNXML int rtXmlSetIndent (OSCTXT* pctxt, OSUINT8 indent);
02453
02462 EXTERNXML int rtXmlSetIndentChar (OSCTXT* pctxt, char indentChar);
02463
02474 EXTERNXML void rtXmlSetNamespacesSet (OSCTXT* pctxt, OSBOOL value);
02475
02485 EXTERNXML int rtXmlSetNSPrefixLinks (OSCTXT* pctxt, OSRTDList* pNSAttrs);
02486
02498 EXTERNXML int rtXmlSetSchemaLocation
02499 (OSCTXT* pctxt, const OSUTF8CHAR* schemaLocation);
02500
02512 EXTERNXML int rtXmlSetNoNSSchemaLocation
02513 (OSCTXT* pctxt, const OSUTF8CHAR* schemaLocation);
02514
02525 EXTERNXML int rtXmlSetXSITypeAttr (OSCTXT* pctxt, const OSUTF8CHAR* xsiType);
02526
02535 EXTERNXML int rtXmlSetWriteBOM (OSCTXT* pctxt, OSBOOL write);
02536
02537 #include "rtxmlsrc/rtXmlNamespace.h"
02538
02552 EXTERNXML int rtXmlMatchHexStr
02553 (OSCTXT* pctxt, size_t minLength, size_t maxLength);
02554
02568 EXTERNXML int rtXmlMatchBase64Str
02569 (OSCTXT* pctxt, size_t minLength, size_t maxLength);
02570
02582 EXTERNXML int rtXmlMatchDate (OSCTXT* pctxt);
02583
02595 EXTERNXML int rtXmlMatchTime (OSCTXT* pctxt);
02596
02608 EXTERNXML int rtXmlMatchDateTime (OSCTXT* pctxt);
02609
02621 EXTERNXML int rtXmlMatchGYear (OSCTXT* pctxt);
02622
02634 EXTERNXML int rtXmlMatchGYearMonth (OSCTXT* pctxt);
02635
02647 EXTERNXML int rtXmlMatchGMonth (OSCTXT* pctxt);
02648
02660 EXTERNXML int rtXmlMatchGMonthDay (OSCTXT* pctxt);
02661
02673 EXTERNXML int rtXmlMatchGDay (OSCTXT* pctxt);
02674
02687 EXTERNXML OSUTF8CHAR* rtXmlNewQName
02688 (OSCTXT* pctxt, const OSUTF8CHAR* localName, const OSUTF8CHAR* prefix);
02689
02699 EXTERNXML OSBOOL rtXmlCmpBase64Str (OSUINT32 nocts1,
02700 const OSOCTET* data1,
02701 const OSUTF8CHAR* data2);
02702
02712 EXTERNXML OSBOOL rtXmlCmpHexStr (OSUINT32 nocts1,
02713 const OSOCTET* data1,
02714 const OSUTF8CHAR* data2);
02715
02716 EXTERNXML OSBOOL rtXmlCmpHexChar (OSUTF8CHAR ch, OSOCTET hexval);
02717
02718 EXTERNXML int rtSaxGetAttributeID (const OSUTF8CHAR* attrName,
02719 size_t nAttr,
02720 const OSUTF8CHAR* attrNames[],
02721 OSUINT32 attrPresent[]);
02722
02735 EXTERNXML const OSUTF8CHAR* rtSaxGetAttrValue
02736 (const OSUTF8CHAR* attrName, const OSUTF8CHAR* const* attrs);
02737
02753 EXTERNXML OSINT16 rtSaxGetElemID
02754 (OSINT16* pState, OSINT16 prevElemIdx, const OSUTF8CHAR* localName,
02755 #ifdef OSXMLNS12
02756 OSINT32 nsidx,
02757 #endif
02758 const OSSAXElemTableRec idtab[], const OSINT16* fstab,
02759 OSINT16 fstabRows, OSINT16 fstabCols);
02760
02776 EXTERNXML OSINT16 rtSaxGetElemID8
02777 (OSINT16* pState, OSINT16 prevElemIdx, const OSUTF8CHAR* localName,
02778 #ifdef OSXMLNS12
02779 OSINT32 nsidx,
02780 #endif
02781 const OSSAXElemTableRec idtab[], const OSINT8* fstab,
02782 OSINT16 fstabRows, OSINT16 fstabCols);
02783
02784 EXTERNXML OSINT16 rtSaxFindElemID
02785 (OSINT16* pState, OSINT16 prevElemIdx, const OSUTF8CHAR* localName,
02786 #ifdef OSXMLNS12
02787 OSINT32 nsidx,
02788 #endif
02789 const OSSAXElemTableRec idtab[], const OSINT16* fstab,
02790 OSINT16 fstabRows, OSINT16 fstabCols);
02791
02792 EXTERNXML OSINT16 rtSaxFindElemID8
02793 (OSINT16* pState, OSINT16 prevElemIdx, const OSUTF8CHAR* localName,
02794 #ifdef OSXMLNS12
02795 OSINT32 nsidx,
02796 #endif
02797 const OSSAXElemTableRec idtab[], const OSINT8* fstab,
02798 OSINT16 fstabRows, OSINT16 fstabCols);
02799
02808 EXTERNXML OSBOOL rtSaxHasXMLNSAttrs (const OSUTF8CHAR* const* attrs);
02809
02817 EXTERNXML OSBOOL rtSaxIsEmptyBuffer (OSCTXT* pctxt);
02818
02819 EXTERNXML OSINT16 rtSaxLookupElemID
02820 (OSCTXT* pctxt, OSINT16* pState, OSINT16 prevElemIdx,
02821 const OSUTF8CHAR* localName, const OSUTF8CHAR* qName,
02822 #ifdef OSXMLNS12
02823 OSINT32 nsidx,
02824 #endif
02825 const OSSAXElemTableRec idtab[], const OSINT16* fstab,
02826 OSINT16 fstabRows, OSINT16 fstabCols);
02827
02828 EXTERNXML OSINT16 rtSaxLookupElemID8
02829 (OSCTXT* pctxt, OSINT16* pState, OSINT16 prevElemIdx,
02830 const OSUTF8CHAR* localName, const OSUTF8CHAR* qName,
02831 #ifdef OSXMLNS12
02832 OSINT32 nsidx,
02833 #endif
02834 const OSSAXElemTableRec idtab[], const OSINT8* fstab,
02835 OSINT16 fstabRows, OSINT16 fstabCols);
02836
02848 EXTERNXML int rtSaxStrListParse
02849 (OSCTXT* pctxt, OSRTMEMBUF *pMemBuf, OSRTDList* pvalue);