osrtxml.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2003-2010 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  *****************************************************************************/
00024 
00045 #ifndef _OSRTXML_H_
00046 #define _OSRTXML_H_
00047 
00048 #define OSXMLNS12
00049 
00050 #include "rtxsrc/rtxCommon.h"
00051 #include "rtxmlsrc/rtSaxDefs.h"
00052 #include "rtxsrc/rtxDList.h"
00053 #include "rtxsrc/rtxMemBuf.h"
00054 #include "rtxmlsrc/rtXmlExternDefs.h"
00055 #include "rtxmlsrc/rtXmlErrCodes.h"
00056 #include "rtxmlsrc/rtXmlNamespace.h"
00057 
00058 /* XML specific context flags */
00059 
00060 #define OSUPCASE        0x00008000  /* convert characters to upper case */
00061 #define OSTERMSTART     0x00004000  /* term for start elem (>) needed   */
00062 #define OSEMPTYELEM     0x00002000  /* element is empty (no content)    */
00063 #define OSQUALATTR      0x00001000  /* qualified attribute              */
00064 #define OSXMLFRAG       0x00000800  /* XML fragment (not full doc)      */
00065 #define OSXMLNSSET      0x00000400  /* Indicates namespaces are set     */
00066 #define OSXMLC14N       0x00000200  /* XML canonical encode (C14N) flag */
00067 #define OSXSIATTR       0x00000100  /* add xsi ns decl to encoded msg   */
00068 #define OSXMLNOCMPNS    0x00000080  /* match local names only           */
00069 #define OSXSINIL        0x00000040  /* add xsi:nil decl to encoded msg  */
00070 
00071 typedef enum {
00072    OSXMLUTF8,
00073    OSXMLUTF16,
00074    OSXMLUTF16BE,
00075    OSXMLUTF16LE,
00076    OSXMLLATIN1
00077 } OSXMLEncoding;
00078 
00079 typedef enum {
00080    OSSOAPNONE, OSSOAPHEADER, OSSOAPBODY, OSSOAPFAULT
00081 } OSXMLSOAPMsgType;
00082 
00083 typedef enum {
00084    OSXMLBOM_NO_BOM,
00085    OSXMLBOM_UTF32_BE,
00086    OSXMLBOM_UTF32_LE,
00087    OSXMLBOM_UTF16_BE,
00088    OSXMLBOM_UTF16_LE,
00089    OSXMLBOM_UTF8,
00090    OSXMLBOM_CHECK
00091 } OSXMLBOM;
00092 
00093 typedef struct OSXMLFacets {
00094    int totalDigits;
00095    int fractionDigits;
00096 } OSXMLFacets;
00097 
00098 typedef struct {
00099    const OSUTF8CHAR* value;
00100    size_t length;
00101 } OSXMLStrFragment;
00102 
00103 typedef struct {
00104    OSXMLStrFragment mQName;
00105    OSXMLStrFragment mLocalName;
00106    OSXMLStrFragment mPrefix;
00107 } OSXMLNameFragments;
00108 
00109 typedef struct OSXMLItemDescr {
00110    OSXMLStrFragment localName;
00111    OSINT16 nsidx; /* namespace index */
00112 } OSXMLItemDescr;
00113 
00114 typedef OSXMLItemDescr OSXMLAttrDescr;
00115 typedef OSXMLItemDescr OSXMLElemDescr;
00116 
00117 typedef struct OSXMLElemIDRec {
00118    OSXMLElemDescr descr;
00119    OSUINT16 id;
00120 } OSXMLElemIDRec;
00121 
00122 typedef struct OSXMLGroupDesc {
00123    int row;
00124    int num;
00125    int anyCase;
00126 } OSXMLGroupDesc;
00127 
00128 typedef struct OSXSDAnyType {
00129    OSXMLSTRING value;
00130    OSRTDList attrs;
00131 } OSXSDAnyType;
00132 
00133 #define OSXMLFRAGSEQUAL(frag1,frag2) \
00134 (frag1.length==frag2.length && !memcmp(frag1.value,frag2.value,frag1.length))
00135 
00136 #define OSXMLQNAMEEQUALS(xnamefrag,qnametext) rtxUTF8StrnEqual \
00137 (xnamefrag.mQName.value, OSUTF8(qnametext), xnamefrag.mQName.length)
00138 
00139 #define OSXMLSETUTF8DECPTR(pctxt,str) \
00140 rtxInitContextBuffer (pctxt, OSRTSAFECONSTCAST (OSOCTET*, str), \
00141 OSUTF8LEN (str))
00142 
00143 #define IS_XMLNSATTR(name) \
00144 ((OSUTF8LEN(name) >= 5) && name[0] == 'x' && name[1] == 'm' && \
00145  name[2] == 'l' && name[3] == 'n' && name[4] == 's')
00146 
00147 #define IS_XSIATTR(name) \
00148 ((OSUTF8LEN(name) >= 4) && name[0] == 'x' && name[1] == 's' && \
00149  name[2] == 'i' && name[3] == ':')
00150 
00151 /* XML header declaration encoding strings */
00152 
00153 static const char OSXMLHDRUTF8 [] = "UTF-8";
00154 static const char OSXMLHDRUTF16 [] = "UTF-16";
00155 static const char OSXMLHDRUTF16BE [] = "UTF-16BE";
00156 static const char OSXMLHDRUTF16LE [] = "UTF-16LE";
00157 static const char OSXMLHDRLATIN1 [] = "ISO-8859-1";
00158 
00159 /*
00160  * NOTE: If a field is added to this structure, make sure to add code to
00161  * to rtXmlInitCtxtAppInfo in rtXmlContext.c to initialize it.
00162  */
00163 typedef struct {
00164    OSFreeCtxtAppInfoPtr  pFreeFunc; /* Free function pointer            */
00165    OSResetCtxtAppInfoPtr pResetFunc;/* Reset function pointer           */
00166    OSUTF8CHAR* schemaLocation;  /* xsi:schemaLocation attribute         */
00167    OSUTF8CHAR* noNSSchemaLoc;   /* xsi:noNamespaceSchemaLocation attr   */
00168    OSUTF8CHAR* xsiTypeAttr;     /* xsi:type attribute value             */
00169    OSXMLEncoding encoding;      /* XML document encoding (ex. UTF-8)    */
00170    OSRTDList namespaceList;     /* list of OSXMLNamespace               */
00171    OSRTDList encodedNSList;     /* list of encoded OSXMLNamespace       */
00172    OSRTDList sortedAttrList;    /* list of sorted attributes            */
00173    OSXMLNSPfxLinkStack nsPfxLinkStack;
00174    OSXMLNSURITable nsURITable;
00175    OSRTMEMBUF  memBuf;          /* memory buffer for character method   */
00176    OSINT32 mSaxLevel;
00177    OSINT32 mSkipLevel;
00178    OSUINT32 maxSaxErrors;       /* maximum number of errors             */
00179    OSUINT32 errorsCnt;          /* counter of errors                    */
00180    OSUINT8 indent;              /* XML output indent                    */
00181    OSBOOL  mbCdataProcessed;    /* CDATA section was processed          */
00182    char    indentChar;          /* indent char, default is space (' ')  */
00183    OSUINT8 soapVersion;         /* SOAP version (11 or 12)              */
00184    OSXMLFacets facets;
00185    const OSUTF8CHAR* encodingStr;/* name of encoding ("UTF-8", "ISO-...")*/
00186    OSXMLBOM byteOrderMark;
00187    struct OSXMLReader* pXmlPPReader; /* pull-parser reader object       */
00188    /* fields for encode canonical XML*/
00189    OSRTBuffer savedBuffer;
00190    OSRTFLAGS savedFlags;
00191    OSOCTET* attrsBuff;
00192    size_t attrsBuffSize;
00193    size_t attrStartPos;
00194 } OSXMLCtxtInfo;
00195 
00196 typedef enum {
00197    OSXMLINIT,
00198    OSXMLHEADER,
00199    OSXMLSTART,
00200    OSXMLATTR,
00201    OSXMLDATA,
00202    OSXMLEND
00203 } OSXMLState;
00204 
00205 typedef struct OSXMLQName {
00206    const OSUTF8CHAR* nsPrefix;
00207    const OSUTF8CHAR* ncName;
00208 } OSXMLQName;
00209 
00210 struct OSSAXHandlerBase;
00211 
00212 typedef struct OSIntegerFmt {
00213    OSINT8 integerMaxDigits;   /* Maximum digits in integer part;
00214                                  leading zeros will be added, if necessary. */
00215    OSBOOL signPresent;        /* Indicates, sign must present, even if value
00216                                  is positive. */
00217 } OSIntegerFmt;
00218 
00219 typedef struct OSDecimalFmt {
00220    OSINT8 totalDigits;        /* total significiant digits */
00221    OSINT8 fractionDigits;     /* maximum signficiant digits in fraction,
00222                                  precision */
00223    OSINT8 fractionMinDigits;  /* minimum digits in fraction, if
00224                                  fraction digits less than this value
00225                                  trailing zeros will be added. */
00226    OSINT8 integerMaxDigits;   /* Maximum digits in integer part; if it is 0
00227                                  and integer part is 0 then integer part
00228                                  will be omitted, like .3, or -.3 */
00229    OSINT8 integerMinDigits;   /* Minimum digits in integer part, leading zeros
00230                                  will be added if necessary. */
00231    OSBOOL signPresent;        /* Indicates, sign must present, even if value
00232                                  is positive. */
00233    OSBOOL pointPresent;       /* Indicates, decimal point must present, even
00234                                  if value's fraction is 0 */
00235    OSUINT8 nPatterns;         /* number of patterns stored in 'patterns' */
00236    const char* const* patterns; /* patterns, used to verify value format is
00237                                  correct */
00238 } OSDecimalFmt;
00239 
00240 typedef struct OSDoubleFmt {
00241    OSINT8 totalDigits;        /* total significiant digits */
00242    OSINT8 fractionDigits;     /* maximum signficiant digits in fraction,
00243                                  precision */
00244    OSINT8 fractionMinDigits;  /* minimum digits in fraction, if
00245                                  fraction digits less than this value
00246                                  trailing zeros will be added. */
00247    OSINT8 integerMaxDigits;   /* Maximum digits in integer part; if it is 0
00248                                  and integer part is 0 then integer part
00249                                  will be omitted, like .3, or -.3 */
00250    OSINT8 integerMinDigits;   /* Minimum digits in integer part, leading zeros
00251                                  will be added if necessary. */
00252    OSINT8 expSymbol;          /* 'E' or 'e' only; 0 if no exp is expected,
00253                                  -1 - default ('E') */
00254    OSINT16 expMinValue;       /* Minimum exponent value. By default - -infinity */
00255    OSINT16 expMaxValue;       /* Maximum exponent value. By default - infinity */
00256    OSINT8 expDigits;          /* Total digits in exponent part; if exponent's
00257                                  value is not enough, trailing zeros will be
00258                                  added */
00259    OSBOOL signPresent;        /* Indicates, sign must present, even if value
00260                                  is positive. */
00261    OSBOOL pointPresent;       /* Indicates, decimal point must present, even
00262                                  if value's fraction is 0 */
00263    OSBOOL expPresent;         /* Indicates, exponent must present, even
00264                                  if its value is 0 */
00265    OSBOOL expSignPresent;     /* Indicates, exponent sign must present, even
00266                                  if its value is > 0 */
00267 } OSDoubleFmt;
00268 
00269 typedef struct {
00270    size_t offset;
00271    size_t length;
00272    size_t prefixLength;
00273    size_t nameLength;
00274 } OSXMLSortedAttrOffset;
00275 
00276 #define OSXMLINDENT     3
00277 
00278 #ifdef XML_UNICODE
00279 #define rtXmlErrAddStrParm rtxErrAddUniStrParm
00280 #else
00281 #define rtXmlErrAddStrParm rtxErrAddStrParm
00282 #endif
00283 
00287 typedef enum {
00288    OSXMLWSM_PRESERVE = 0,
00289    OSXMLWSM_REPLACE,
00290    OSXMLWSM_COLLAPSE
00291 } OSXMLWhiteSpaceMode;
00292 
00293 #ifdef __cplusplus
00294 extern "C" {
00295 #endif
00296 
00297 /* run-time XML function prototypes */
00298 
00305 EXTERNXML int rtXmlInitContext (OSCTXT* pctxt);
00306 
00321 EXTERNXML int rtXmlInitContextUsingKey
00322 (OSCTXT* pctxt, const OSOCTET* key, size_t keylen);
00323 
00330 EXTERNXML int rtXmlInitCtxtAppInfo (OSCTXT* pctxt);
00331 
00342 EXTERNXML int rtXmlCreateFileInputSource (OSCTXT* pctxt, const char* filepath);
00343 
00344 EXTERNXML OSBOOL rtXmlCmpQName
00345 (const OSUTF8CHAR* qname1, const OSUTF8CHAR* name2, const OSUTF8CHAR* nsPrefix2);
00346 
00347 EXTERNXML int rtXmlGetBase64StrDecodedLen
00348    (const OSUTF8CHAR* inpdata, size_t srcDataSize,
00349     size_t* pNumOcts, size_t* pSrcDataLen);
00350 
00358 EXTERNXML void rtXmlMemFreeAnyAttrs (OSCTXT* pctxt, OSRTDList* pAnyAttrList);
00359 
00380 EXTERNXML int rtXmlDecBase64Binary (OSRTMEMBUF* pMemBuf,
00381                                     const OSUTF8CHAR* inpdata,
00382                                     int length);
00383 
00407 EXTERNXML int rtXmlDecBase64Str (OSCTXT* pctxt,
00408                                  OSOCTET* pvalue, OSUINT32* pnocts,
00409                                  OSINT32 bufsize);
00410 
00436 EXTERNXML int rtXmlDecBase64StrValue (OSCTXT* pctxt,
00437                                       OSOCTET* pvalue, OSUINT32* pnocts,
00438                                       size_t bufSize, size_t srcDataLen);
00439 
00461 EXTERNXML int rtXmlDecBigInt
00462 (OSCTXT* pctxt, const OSUTF8CHAR** ppvalue);
00463 
00474 EXTERNXML int rtXmlDecBool (OSCTXT* pctxt, OSBOOL* pvalue);
00475 
00488 EXTERNXML int rtXmlDecDate (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00489 
00508 EXTERNXML int rtXmlDecTime (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00509 
00522 EXTERNXML int rtXmlDecDateTime (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00523 
00536 EXTERNXML int rtXmlDecDecimal (OSCTXT* pctxt, OSREAL* pvalue);
00537 
00550 EXTERNXML int rtXmlDecDouble (OSCTXT* pctxt, OSREAL* pvalue);
00551 
00568 EXTERNXML int rtXmlDecDynBase64Str (OSCTXT* pctxt, OSDynOctStr* pvalue);
00569 
00585 EXTERNXML int rtXmlDecDynHexStr (OSCTXT* pctxt, OSDynOctStr* pvalue);
00586 
00600 EXTERNXML int rtXmlDecUTF8Str
00601 (OSCTXT* pctxt, OSUTF8CHAR* outdata, size_t max_len);
00602 
00603 
00617 EXTERNXML int rtXmlDecDynUTF8Str (OSCTXT* pctxt, const OSUTF8CHAR** outdata);
00618 
00637 EXTERNXML int rtXmlDecHexBinary (OSRTMEMBUF* pMemBuf,
00638                                  const OSUTF8CHAR* inpdata,
00639                                  int length);
00640 
00663 EXTERNXML int rtXmlDecHexStr (OSCTXT* pctxt,
00664                               OSOCTET* pvalue, OSUINT32* pnocts,
00665                               OSINT32 bufsize);
00666 
00667 EXTERNXML int rtXmlDecHexStrValue (OSCTXT* pctxt,
00668    const OSUTF8CHAR* const inpdata, size_t nbytes, OSOCTET* pvalue,
00669    OSUINT32* pnbits, OSINT32 bufsize);
00670 
00683 EXTERNXML int rtXmlDecGYear (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00684 
00697 EXTERNXML int rtXmlDecGYearMonth (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00698 
00711 EXTERNXML int rtXmlDecGMonth (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00712 
00725 EXTERNXML int rtXmlDecGMonthDay (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00726 
00739 EXTERNXML int rtXmlDecGDay (OSCTXT* pctxt, OSXSDDateTime* pvalue);
00740 
00753 EXTERNXML int rtXmlDecInt (OSCTXT* pctxt, OSINT32* pvalue);
00754 
00768 EXTERNXML int rtXmlDecInt8 (OSCTXT* pctxt, OSINT8* pvalue);
00769 
00782 EXTERNXML int rtXmlDecInt16 (OSCTXT* pctxt, OSINT16* pvalue);
00783 
00796 EXTERNXML int rtXmlDecInt64 (OSCTXT* pctxt, OSINT64* pvalue);
00797 
00810 EXTERNXML int rtXmlDecUInt (OSCTXT* pctxt, OSUINT32* pvalue);
00811 
00825 EXTERNXML int rtXmlDecUInt8 (OSCTXT* pctxt, OSUINT8* pvalue);
00826 
00839 EXTERNXML int rtXmlDecUInt16 (OSCTXT* pctxt, OSUINT16* pvalue);
00840 
00853 EXTERNXML int rtXmlDecUInt64 (OSCTXT* pctxt, OSUINT64* pvalue);
00854 
00873 EXTERNXML int rtXmlDecNSAttr
00874 (OSCTXT* pctxt, const OSUTF8CHAR* attrName, const OSUTF8CHAR* attrValue,
00875  OSRTDList* pNSAttrs, const OSUTF8CHAR* nsTable[], OSUINT32 nsTableRowCount);
00876 
00901 EXTERNXML const OSUTF8CHAR* rtXmlDecQName
00902 (OSCTXT* pctxt, const OSUTF8CHAR* qname, const OSUTF8CHAR** prefix);
00903 
00916 EXTERNXML int rtXmlDecXSIAttr
00917    (OSCTXT* pctxt, const OSUTF8CHAR* attrName, const OSUTF8CHAR* attrValue);
00918 
00933 EXTERNXML int rtXmlDecXSIAttrs (OSCTXT* pctxt, const OSUTF8CHAR* const* attrs,
00934    const char* typeName);
00935 
00952 EXTERNXML int rtXmlDecXmlStr (OSCTXT* pctxt, OSXMLSTRING* outdata);
00953 
00966 EXTERNXML int rtXmlParseElementName (OSCTXT* pctxt, OSUTF8CHAR** ppName);
00967 
00980 EXTERNXML int rtXmlParseElemQName (OSCTXT* pctxt, OSXMLQName* pQName);
00981 
01007 EXTERNXML int rtXmlEncAny (OSCTXT* pctxt, OSXMLSTRING* pvalue,
01008                            const OSUTF8CHAR* elemName,
01009                            OSXMLNamespace* pNS);
01010 
01011 EXTERNXML int rtXmlEncAnyStr
01012 (OSCTXT* pctxt, const OSUTF8CHAR* pvalue,
01013  const OSUTF8CHAR* elemName, OSXMLNamespace* pNS);
01014 
01026 EXTERNXML int rtXmlEncAnyTypeValue (OSCTXT* pctxt, const OSUTF8CHAR* pvalue);
01027 
01038 EXTERNXML int rtXmlEncAnyAttr (OSCTXT* pctxt, OSRTDList* pAnyAttrList);
01039 
01054 EXTERNXML int rtXmlEncBase64Binary (OSCTXT* pctxt, OSUINT32 nocts,
01055                                     const OSOCTET* value,
01056                                     const OSUTF8CHAR* elemName,
01057                                     OSXMLNamespace* pNS);
01058 
01072 EXTERNXML int rtXmlEncBase64BinaryAttr
01073    (OSCTXT* pctxt, OSUINT32 nocts, const OSOCTET* value,
01074     const OSUTF8CHAR* attrName, size_t attrNameLen);
01075 
01087 EXTERNXML int rtXmlEncBase64StrValue (OSCTXT* pctxt, OSUINT32 nocts,
01088                                       const OSOCTET* value);
01089 
01113 EXTERNXML int rtXmlEncBigInt (OSCTXT* pctxt, const OSUTF8CHAR* value,
01114                               const OSUTF8CHAR* elemName,
01115                               OSXMLNamespace* pNS);
01116 
01131 EXTERNXML int rtXmlEncBigIntAttr (OSCTXT* pctxt, const OSUTF8CHAR* value,
01132                        const OSUTF8CHAR* attrName, size_t attrNameLen);
01133 
01147 EXTERNXML int rtXmlEncBigIntValue (OSCTXT* pctxt, const OSUTF8CHAR* value);
01148 
01166 EXTERNXML int rtXmlEncBitString (OSCTXT* pctxt, OSUINT32 nbits,
01167                                  const OSOCTET* value,
01168                                  const OSUTF8CHAR* elemName,
01169                                  OSXMLNamespace* pNS);
01170 
01182 EXTERNXML int rtXmlEncBinStrValue (OSCTXT* pctxt,
01183                                    OSUINT32 nbits,
01184                                    const OSOCTET* data);
01185 
01200 EXTERNXML int rtXmlEncBool (OSCTXT* pctxt, OSBOOL value,
01201                             const OSUTF8CHAR* elemName,
01202                             OSXMLNamespace* pNS);
01203 
01214 EXTERNXML int rtXmlEncBoolValue (OSCTXT* pctxt, OSBOOL value);
01215 
01227 EXTERNXML int rtXmlEncBoolAttr (OSCTXT* pctxt, OSBOOL value,
01228                                 const OSUTF8CHAR* attrName,
01229                                 size_t attrNameLen);
01230 
01248 EXTERNXML int rtXmlEncDate (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01249                             const OSUTF8CHAR* elemName,
01250                             OSXMLNamespace* pNS);
01251 
01265 EXTERNXML int rtXmlEncDateValue
01266    (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01267 
01291 EXTERNXML int rtXmlEncTime (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01292                             const OSUTF8CHAR* elemName,
01293                             OSXMLNamespace* pNS);
01294 
01307 EXTERNXML int rtXmlEncTimeValue
01308    (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01309 
01325 EXTERNXML int rtXmlEncDateTime (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01326                                 const OSUTF8CHAR* elemName,
01327                                 OSXMLNamespace* pNS);
01328 
01340 EXTERNXML int rtXmlEncDateTimeValue
01341    (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01342 
01357 EXTERNXML int rtXmlEncDecimal (OSCTXT* pctxt, OSREAL value,
01358                                const OSUTF8CHAR* elemName,
01359                                OSXMLNamespace* pNS,
01360                                const OSDecimalFmt* pFmtSpec);
01361 
01374 EXTERNXML int rtXmlEncDecimalAttr (OSCTXT* pctxt, OSREAL value,
01375                                    const OSUTF8CHAR* attrName,
01376                                    size_t attrNameLen,
01377                                    const OSDecimalFmt* pFmtSpec);
01378 
01396 EXTERNXML int rtXmlEncDecimalValue (OSCTXT* pctxt, OSREAL value,
01397                                     const OSDecimalFmt* pFmtSpec,
01398                                     char* pDestBuf, size_t destBufSize);
01399 
01414 EXTERNXML int rtXmlEncDouble (OSCTXT* pctxt, OSREAL value,
01415                               const OSUTF8CHAR* elemName,
01416                               OSXMLNamespace* pNS,
01417                               const OSDoubleFmt* pFmtSpec);
01418 
01431 EXTERNXML int rtXmlEncDoubleAttr (OSCTXT* pctxt, OSREAL value,
01432                                   const OSUTF8CHAR* attrName,
01433                                   size_t attrNameLen,
01434                                   const OSDoubleFmt* pFmtSpec);
01435 
01449 EXTERNXML int rtXmlEncDoubleValue (OSCTXT* pctxt, OSREAL value,
01450                                    const OSDoubleFmt* pFmtSpec,
01451                                    int defaultPrecision);
01452 
01465 EXTERNXML int rtXmlEncEmptyElement (OSCTXT* pctxt,
01466                                     const OSUTF8CHAR* elemName,
01467                                     OSXMLNamespace* pNS,
01468                                     OSRTDList* pNSAttrs,
01469                                     OSBOOL terminate);
01470 
01480 EXTERNXML int rtXmlEncEndDocument (OSCTXT* pctxt);
01481 
01492 EXTERNXML int rtXmlEncEndElement (OSCTXT* pctxt,
01493                                   const OSUTF8CHAR* elemName,
01494                                   OSXMLNamespace* pNS);
01495 
01505 EXTERNXML int rtXmlEncEndSoapEnv (OSCTXT* pctxt);
01506 
01518 EXTERNXML int rtXmlEncEndSoapElems (OSCTXT* pctxt, OSXMLSOAPMsgType msgtype);
01519 
01534 EXTERNXML int rtXmlEncFloat (OSCTXT* pctxt, OSREAL value,
01535                              const OSUTF8CHAR* elemName,
01536                              OSXMLNamespace* pNS,
01537                              const OSDoubleFmt* pFmtSpec);
01538 
01551 EXTERNXML int rtXmlEncFloatAttr (OSCTXT* pctxt, OSREAL value,
01552                                  const OSUTF8CHAR* attrName,
01553                                  size_t attrNameLen,
01554                                  const OSDoubleFmt* pFmtSpec);
01555 
01570 EXTERNXML int rtXmlEncGYear (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01571                              const OSUTF8CHAR* elemName,
01572                              OSXMLNamespace* pNS);
01573 
01588 EXTERNXML int rtXmlEncGYearMonth (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01589                                   const OSUTF8CHAR* elemName,
01590                                   OSXMLNamespace* pNS);
01591 
01606 EXTERNXML int rtXmlEncGMonth (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01607                               const OSUTF8CHAR* elemName,
01608                               OSXMLNamespace* pNS);
01609 
01624 EXTERNXML int rtXmlEncGMonthDay (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01625                                  const OSUTF8CHAR* elemName,
01626                                  OSXMLNamespace* pNS);
01627 
01642 EXTERNXML int rtXmlEncGDay (OSCTXT* pctxt, const OSXSDDateTime* pvalue,
01643                             const OSUTF8CHAR* elemName,
01644                             OSXMLNamespace* pNS);
01645 
01657 EXTERNXML int rtXmlEncGYearValue
01658    (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01659 
01671 EXTERNXML int rtXmlEncGYearMonthValue
01672    (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01673 
01685 EXTERNXML int rtXmlEncGMonthValue
01686    (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01687 
01699 EXTERNXML int rtXmlEncGMonthDayValue
01700    (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01701 
01713 EXTERNXML int rtXmlEncGDayValue
01714    (OSCTXT* pctxt, const OSXSDDateTime* pvalue);
01715 
01730 EXTERNXML int rtXmlEncHexBinary (OSCTXT* pctxt, OSUINT32 nocts,
01731                                  const OSOCTET* value,
01732                                  const OSUTF8CHAR* elemName,
01733                                  OSXMLNamespace* pNS);
01734 
01747 EXTERNXML int rtXmlEncHexBinaryAttr
01748    (OSCTXT* pctxt, OSUINT32 nocts, const OSOCTET* value,
01749     const OSUTF8CHAR* attrName, size_t attrNameLen);
01750 
01762 EXTERNXML int rtXmlEncHexStrValue (OSCTXT* pctxt,
01763                                    OSUINT32 nocts,
01764                                    const OSOCTET* data);
01765 
01776 EXTERNXML int rtXmlEncIndent (OSCTXT* pctxt);
01777 
01791 EXTERNXML int rtXmlEncInt (OSCTXT* pctxt, OSINT32 value,
01792                            const OSUTF8CHAR* elemName,
01793                            OSXMLNamespace* pNS);
01794 
01805 EXTERNXML int rtXmlEncIntValue (OSCTXT* pctxt, OSINT32 value);
01806 
01819 EXTERNXML int rtXmlEncIntAttr (OSCTXT* pctxt, OSINT32 value,
01820                                const OSUTF8CHAR* attrName,
01821                                size_t attrNameLen);
01822 
01838 EXTERNXML int rtXmlEncIntPattern (OSCTXT* pctxt, OSINT32 value,
01839                                   const OSUTF8CHAR* elemName,
01840                                   OSXMLNamespace* pNS,
01841                                   const OSUTF8CHAR* pattern);
01842 
01843 EXTERNXML int rtXmlEncIntPatternValue (OSCTXT* pctxt, OSINT32 value,
01844                                        const OSUTF8CHAR* pattern);
01845 
01846 EXTERNXML int rtXmlEncUIntPattern (OSCTXT* pctxt, OSUINT32 value,
01847                                   const OSUTF8CHAR* elemName,
01848                                   OSXMLNamespace* pNS,
01849                                   const OSUTF8CHAR* pattern);
01850 
01851 EXTERNXML int rtXmlEncUIntPatternValue (OSCTXT* pctxt, OSUINT32 value,
01852                                        const OSUTF8CHAR* pattern);
01853 
01868 EXTERNXML int rtXmlEncInt64 (OSCTXT* pctxt, OSINT64 value,
01869                              const OSUTF8CHAR* elemName,
01870                              OSXMLNamespace* pNS);
01871 
01872 EXTERNXML int rtXmlEncInt64Pattern (OSCTXT* pctxt, OSINT64 value,
01873                                     const OSUTF8CHAR* elemName,
01874                                     OSXMLNamespace* pNS,
01875                                     const OSUTF8CHAR* pattern);
01876 
01888 EXTERNXML int rtXmlEncInt64Value (OSCTXT* pctxt, OSINT64 value);
01889 EXTERNXML int rtXmlEncInt64PatternValue (OSCTXT* pctxt, OSINT64 value,
01890                                          const OSUTF8CHAR* pattern);
01891 
01905 EXTERNXML int rtXmlEncInt64Attr (OSCTXT* pctxt, OSINT64 value,
01906                                  const OSUTF8CHAR* attrName,
01907                                  size_t attrNameLen);
01908 
01927 EXTERNXML int rtXmlEncNamedBits
01928 (OSCTXT* pctxt, const OSBitMapItem* pBitMap, OSUINT32 nbits,
01929  const OSOCTET* pvalue, const OSUTF8CHAR* elemName, OSXMLNamespace* pNS);
01930 
01931 EXTERNXML int rtXmlEncNamedBitsValue
01932 (OSCTXT* pctxt, const OSBitMapItem* pBitMap, OSUINT32 nbits,
01933  const OSOCTET* pvalue);
01934 
01948 EXTERNXML int rtXmlEncNSAttrs (OSCTXT* pctxt, OSRTDList* pNSAttrs);
01949 
01959 EXTERNXML int rtXmlPrintNSAttrs (const char* name, const OSRTDList* data);
01960 
01961 /* The following is required for backward compatibility */
01962 #define rtxPrintNSAttrs(name,data) rtXmlPrintNSAttrs(name,&data)
01963 
01980 EXTERNXML int rtXmlEncReal10
01981 (OSCTXT *pctxt, const OSUTF8CHAR *pvalue, const OSUTF8CHAR* elemName,
01982  OSXMLNamespace* pNS);
01983 
01997 EXTERNXML int rtXmlEncSoapArrayTypeAttr
01998 (OSCTXT* pctxt, const OSUTF8CHAR* name, const OSUTF8CHAR* value,
01999  size_t itemCount);
02000 
02001 EXTERNXML int rtXmlEncSoapArrayTypeAttr2
02002 (OSCTXT* pctxt, const OSUTF8CHAR* name, size_t nameLen,
02003  const OSUTF8CHAR* value, size_t valueLen, size_t itemCount);
02004 
02016 EXTERNXML int rtXmlEncStartDocument (OSCTXT* pctxt);
02017 
02028 EXTERNXML int rtXmlEncBOM (OSCTXT* pctxt);
02043 EXTERNXML int rtXmlEncStartElement (OSCTXT* pctxt,
02044                                     const OSUTF8CHAR* elemName,
02045                                     OSXMLNamespace* pNS,
02046                                     OSRTDList* pNSAttrs,
02047                                     OSBOOL terminate);
02048 
02060 EXTERNXML int rtXmlEncStartSoapEnv (OSCTXT* pctxt, OSRTDList* pNSAttrs);
02061 
02073 EXTERNXML int rtXmlEncStartSoapElems
02074 (OSCTXT* pctxt, OSXMLSOAPMsgType msgtype);
02075 
02089 EXTERNXML int rtXmlEncString (OSCTXT* pctxt,
02090                               OSXMLSTRING* pxmlstr,
02091                               const OSUTF8CHAR* elemName,
02092                               OSXMLNamespace* pNS);
02093 
02103 EXTERNXML int rtXmlEncStringValue (OSCTXT* pctxt, const OSUTF8CHAR* value);
02104 
02115 EXTERNXML int rtXmlEncStringValue2
02116    (OSCTXT* pctxt, const OSUTF8CHAR* value, size_t valueLen);
02117 
02128 EXTERNXML int rtXmlEncTermStartElement (OSCTXT* pctxt);
02129 
02145 EXTERNXML int rtXmlEncUnicodeStr (OSCTXT* pctxt,
02146                                   const OSUNICHAR* value,
02147                                   OSUINT32 nchars,
02148                                   const OSUTF8CHAR* elemName,
02149                                   OSXMLNamespace* pNS);
02150 
02162 EXTERNXML int rtXmlEncUTF8Attr (OSCTXT* pctxt,
02163                                 const OSUTF8CHAR* name,
02164                                 const OSUTF8CHAR* value);
02165 
02179 EXTERNXML int rtXmlEncUTF8Attr2 (OSCTXT* pctxt,
02180                                  const OSUTF8CHAR* name, size_t nameLen,
02181                                  const OSUTF8CHAR* value, size_t valueLen);
02182 
02196 EXTERNXML int rtXmlEncUTF8Str (OSCTXT* pctxt,
02197                                const OSUTF8CHAR* value,
02198                                const OSUTF8CHAR* elemName,
02199                                OSXMLNamespace* pNS);
02200 
02214 EXTERNXML int rtXmlEncUInt (OSCTXT* pctxt, OSUINT32 value,
02215                             const OSUTF8CHAR* elemName,
02216                             OSXMLNamespace* pNS);
02217 
02229 EXTERNXML int rtXmlEncUIntValue (OSCTXT* pctxt, OSUINT32 value);
02230 
02243 EXTERNXML int rtXmlEncUIntAttr (OSCTXT* pctxt, OSUINT32 value,
02244                                 const OSUTF8CHAR* attrName,
02245                                 size_t attrNameLen);
02246 
02262 EXTERNXML int rtXmlEncUInt64 (OSCTXT* pctxt, OSUINT64 value,
02263                               const OSUTF8CHAR* elemName,
02264                               OSXMLNamespace* pNS);
02265 
02266 EXTERNXML int rtXmlEncUInt64Pattern (OSCTXT* pctxt, OSUINT64 value,
02267                                      const OSUTF8CHAR* elemName,
02268                                      OSXMLNamespace* pNS,
02269                                      const OSUTF8CHAR* pattern);
02270 
02283 EXTERNXML int rtXmlEncUInt64Value (OSCTXT* pctxt, OSUINT64 value);
02284 EXTERNXML int rtXmlEncUInt64PatternValue (OSCTXT* pctxt, OSUINT64 value,
02285                                           const OSUTF8CHAR* pattern);
02286 
02300 EXTERNXML int rtXmlEncUInt64Attr (OSCTXT* pctxt, OSUINT64 value,
02301                                   const OSUTF8CHAR* attrName,
02302                                   size_t attrNameLen);
02303 
02323 EXTERNXML int rtXmlEncXSIAttrs (OSCTXT* pctxt, OSBOOL needXSI);
02324 
02335 EXTERNXML int rtXmlEncXSITypeAttr (OSCTXT* pctxt, const OSUTF8CHAR* value);
02336 
02345 EXTERNXML int rtXmlEncXSINilAttr (OSCTXT* pctxt);
02346 
02357 EXTERNXML int rtXmlFreeInputSource (OSCTXT* pctxt);
02358 
02359 EXTERNXML OSBOOL rtXmlStrCmpAsc (const OSUTF8CHAR* text1, const char* text2);
02360 
02361 EXTERNXML OSBOOL rtXmlStrnCmpAsc (const OSUTF8CHAR* text1,
02362                                   const char* text2, size_t len);
02363 
02364 #define rtXmlFinalizeMemBuf(pMemBuf) do { \
02365 (pMemBuf)->pctxt->buffer.data = (pMemBuf)->buffer + (pMemBuf)->startidx; \
02366 (pMemBuf)->pctxt->buffer.size =                                      \
02367 ((pMemBuf)->usedcnt - (pMemBuf)->startidx);                          \
02368 (pMemBuf)->pctxt->buffer.dynamic = FALSE;                            \
02369 (pMemBuf)->pctxt->buffer.byteIndex = 0;                              \
02370 rtxMemBufReset (pMemBuf);                                            \
02371 } while(0)
02372 
02395 EXTERNXML int rtXmlSetEncBufPtr
02396 (OSCTXT* pctxt, OSOCTET* bufaddr, size_t bufsiz);
02397 
02406 #define rtXmlGetEncBufPtr(pctxt) (pctxt)->buffer.data
02407 
02413 #define rtXmlGetEncBufLen(pctxt) (pctxt)->buffer.byteIndex
02414 
02415 
02423 EXTERNXML int rtXmlGetIndent (OSCTXT* pctxt);
02424 
02425 
02434 EXTERNXML OSBOOL rtXmlGetWriteBOM (OSCTXT* pctxt);
02435 
02444 EXTERNXML int rtXmlGetIndentChar (OSCTXT* pctxt);
02457 EXTERNXML int rtXmlPrepareContext (OSCTXT* pctxt);
02458 
02467 EXTERNXML int rtXmlSetEncC14N (OSCTXT* pctxt, OSBOOL value);
02468 
02479 EXTERNXML int rtXmlSetEncXSINamespace (OSCTXT* pctxt, OSBOOL value);
02480 
02491 EXTERNXML int rtXmlSetEncXSINilAttr (OSCTXT* pctxt, OSBOOL value);
02492 
02493 EXTERNXML int rtXmlSetDigitsFacets
02494    (OSCTXT* pctxt, int totalDigits, int fractionDigits);
02495 
02506 EXTERNXML int rtXmlSetEncDocHdr (OSCTXT* pctxt, OSBOOL value);
02507 
02517 EXTERNXML int rtXmlSetEncodingStr
02518 (OSCTXT* pctxt, const OSUTF8CHAR* encodingStr);
02519 
02535 EXTERNXML int rtXmlSetFormatting (OSCTXT* pctxt, OSBOOL doFormatting);
02536 
02545 EXTERNXML int rtXmlSetIndent (OSCTXT* pctxt, OSUINT8 indent);
02546 
02555 EXTERNXML int rtXmlSetIndentChar (OSCTXT* pctxt, char indentChar);
02556 
02567 EXTERNXML void rtXmlSetNamespacesSet (OSCTXT* pctxt, OSBOOL value);
02568 
02578 EXTERNXML int rtXmlSetNSPrefixLinks (OSCTXT* pctxt, OSRTDList* pNSAttrs);
02579 
02591 EXTERNXML int rtXmlSetSchemaLocation
02592 (OSCTXT* pctxt, const OSUTF8CHAR* schemaLocation);
02593 
02605 EXTERNXML int rtXmlSetNoNSSchemaLocation
02606 (OSCTXT* pctxt, const OSUTF8CHAR* schemaLocation);
02607 
02616 EXTERNXML void rtXmlSetSoapVersion (OSCTXT* pctxt, OSUINT8 version);
02617 
02628 EXTERNXML int rtXmlSetXSITypeAttr (OSCTXT* pctxt, const OSUTF8CHAR* xsiType);
02629 
02638 EXTERNXML int rtXmlSetWriteBOM (OSCTXT* pctxt, OSBOOL write);
02639 
02640 #include "rtxmlsrc/rtXmlNamespace.h"
02641 
02655 EXTERNXML int rtXmlMatchHexStr
02656 (OSCTXT* pctxt, size_t minLength, size_t maxLength);
02657 
02671 EXTERNXML int rtXmlMatchBase64Str
02672 (OSCTXT* pctxt, size_t minLength, size_t maxLength);
02673 
02685 EXTERNXML int rtXmlMatchDate (OSCTXT* pctxt);
02686 
02698 EXTERNXML int rtXmlMatchTime (OSCTXT* pctxt);
02699 
02711 EXTERNXML int rtXmlMatchDateTime (OSCTXT* pctxt);
02712 
02724 EXTERNXML int rtXmlMatchGYear (OSCTXT* pctxt);
02725 
02737 EXTERNXML int rtXmlMatchGYearMonth (OSCTXT* pctxt);
02738 
02750 EXTERNXML int rtXmlMatchGMonth (OSCTXT* pctxt);
02751 
02763 EXTERNXML int rtXmlMatchGMonthDay (OSCTXT* pctxt);
02764 
02776 EXTERNXML int rtXmlMatchGDay (OSCTXT* pctxt);
02777 
02790 EXTERNXML OSUTF8CHAR* rtXmlNewQName
02791 (OSCTXT* pctxt, const OSUTF8CHAR* localName, const OSUTF8CHAR* prefix);
02792 
02802 EXTERNXML OSBOOL rtXmlCmpBase64Str (OSUINT32 nocts1,
02803                                     const OSOCTET* data1,
02804                                     const OSUTF8CHAR* data2);
02805 
02815 EXTERNXML OSBOOL rtXmlCmpHexStr (OSUINT32 nocts1,
02816                                  const OSOCTET* data1,
02817                                  const OSUTF8CHAR* data2);
02818 
02819 EXTERNXML OSBOOL rtXmlCmpHexChar (OSUTF8CHAR ch, OSOCTET hexval);
02820 
02821 EXTERNXML int rtSaxGetAttributeID (const OSUTF8CHAR* attrName,
02822                                    size_t nAttr,
02823                                    const OSUTF8CHAR* attrNames[],
02824                                    OSUINT32 attrPresent[]);
02825 
02838 EXTERNXML const OSUTF8CHAR* rtSaxGetAttrValue
02839 (const OSUTF8CHAR* attrName, const OSUTF8CHAR* const* attrs);
02840 
02856 EXTERNXML OSINT16 rtSaxGetElemID
02857 (OSINT16* pState, OSINT16 prevElemIdx, const OSUTF8CHAR* localName,
02858 #ifdef OSXMLNS12
02859  OSINT32 nsidx, /* namespace index */
02860 #endif
02861 const OSSAXElemTableRec idtab[], const OSINT16* fstab,
02862  OSINT16 fstabRows, OSINT16 fstabCols);
02863 
02879 EXTERNXML OSINT16 rtSaxGetElemID8
02880 (OSINT16* pState, OSINT16 prevElemIdx, const OSUTF8CHAR* localName,
02881 #ifdef OSXMLNS12
02882  OSINT32 nsidx, /* namespace index */
02883 #endif
02884  const OSSAXElemTableRec idtab[], const OSINT8* fstab,
02885  OSINT16 fstabRows, OSINT16 fstabCols);
02886 
02887 EXTERNXML OSINT16 rtSaxFindElemID
02888 (OSINT16* pState, OSINT16 prevElemIdx, const OSUTF8CHAR* localName,
02889 #ifdef OSXMLNS12
02890  OSINT32 nsidx, /* namespace index */
02891 #endif
02892  const OSSAXElemTableRec idtab[], const OSINT16* fstab,
02893  OSINT16 fstabRows, OSINT16 fstabCols);
02894 
02895 EXTERNXML OSINT16 rtSaxFindElemID8
02896 (OSINT16* pState, OSINT16 prevElemIdx, const OSUTF8CHAR* localName,
02897 #ifdef OSXMLNS12
02898  OSINT32 nsidx, /* namespace index */
02899 #endif
02900  const OSSAXElemTableRec idtab[], const OSINT8* fstab,
02901  OSINT16 fstabRows, OSINT16 fstabCols);
02902 
02911 EXTERNXML OSBOOL rtSaxHasXMLNSAttrs (const OSUTF8CHAR* const* attrs);
02912 
02920 EXTERNXML OSBOOL rtSaxIsEmptyBuffer (OSCTXT* pctxt);
02921 
02922 EXTERNXML OSINT16 rtSaxLookupElemID
02923 (OSCTXT* pctxt, OSINT16* pState, OSINT16 prevElemIdx,
02924  const OSUTF8CHAR* localName, const OSUTF8CHAR* qName,
02925 #ifdef OSXMLNS12
02926  OSINT32 nsidx, /* namespace index */
02927 #endif
02928  const OSSAXElemTableRec idtab[], const OSINT16* fstab,
02929  OSINT16 fstabRows, OSINT16 fstabCols);
02930 
02931 EXTERNXML OSINT16 rtSaxLookupElemID8
02932 (OSCTXT* pctxt, OSINT16* pState, OSINT16 prevElemIdx,
02933  const OSUTF8CHAR* localName, const OSUTF8CHAR* qName,
02934 #ifdef OSXMLNS12
02935  OSINT32 nsidx, /* namespace index */
02936 #endif
02937  const OSSAXElemTableRec idtab[], const OSINT8* fstab,
02938  OSINT16 fstabRows, OSINT16 fstabCols);
02939 
02951 EXTERNXML int rtSaxStrListParse
02952 (OSCTXT* pctxt, OSRTMEMBUF *pMemBuf, OSRTDList* pvalue);
02953 
02972 EXTERNXML int rtSaxSortAttrs
02973 (OSCTXT* pctxt, const OSUTF8CHAR* const* attrs, OSUINT16** order);
02974 
02982 EXTERNXML int rtSaxStrListMatch (OSCTXT* pctxt);
02983 
02984 EXTERNXML OSBOOL rtSaxTestFinal (OSINT16 state,
02985                                  OSINT16 currElemIdx,
02986                                  const int* fstab,
02987                                  int fstabRows, int fstabCols);
02988 
02989 EXTERNXML OSBOOL rtSaxTestFinal8 (OSINT16 state,
02990                                   OSINT16 currElemIdx,
02991                                   const OSINT8* fstab,
02992                                  int fstabRows, int fstabCols);
02993 
02994 EXTERNXML int rtSaxSetSkipLevelToCurrent (OSCTXT* pctxt, int stat);
02995 
02996 EXTERNXML OSUINT32 rtSaxSetMaxErrors (OSCTXT* pctxt, OSUINT32 maxErrors);
02997 
02998 EXTERNXML OSUINT32 rtSaxGetMaxErrors (OSCTXT* pctxt);
02999 
03000 EXTERNXML int rtSaxTestAttributesPresent (OSCTXT* pctxt,
03001    const OSUINT32* attrPresent, const OSUINT32* reqAttrMask,
03002    const OSUTF8CHAR* const* attrNames, size_t numOfAttrs,
03003    const char* parentTypeName);
03004 
03005 EXTERNXML OSBOOL rtSaxIncErrors (OSCTXT* pctxt);
03006 
03007 EXTERNXML int rtSaxReportUnexpAttrs (OSCTXT* pctxt,
03008     const OSUTF8CHAR* const* attrs,
03009     const char* typeName);
03010 
03023 EXTERNXML int rtXmlWriteToFile (OSCTXT* pctxt, const char* filename);
03024 
03025 EXTERNXML int rtXmlWriteUTF16ToFile (OSCTXT* pctxt, const char* filename);
03026 
03027 EXTERNXML void rtXmlTreatWhitespaces (OSCTXT* pctxt, int whiteSpaceType);
03028 
03029 EXTERNXML int rtXmlCheckBuffer (OSCTXT* pctxt, size_t byte_count);
03030 
03035 EXTERNXML void rtErrXmlInit (void);
03036 EXTERNXML int rtXmlPutChar (OSCTXT* pctxt, const OSUTF8CHAR value);
03037 EXTERNXML int rtXmlWriteChars 
03038 (OSCTXT* pctxt, const OSUTF8CHAR* value, size_t len);
03039 
03059 EXTERNXML int rtXmlpDecAny (OSCTXT* pctxt, const OSUTF8CHAR** pvalue);
03060 
03077 EXTERNXML int rtXmlpDecAnyAttrStr
03078 (OSCTXT* pctxt, const OSUTF8CHAR** ppAttrStr, size_t index);
03079 
03099 EXTERNXML int rtXmlpDecAnyElem (OSCTXT* pctxt, const OSUTF8CHAR** pvalue);
03100 
03126 EXTERNXML int rtXmlpDecBase64Str (OSCTXT* pctxt, OSOCTET* pvalue,
03127    OSUINT32* pnocts, OSINT32 bufsize);
03128 
03152 EXTERNXML int rtXmlpDecBigInt (OSCTXT* pctxt, const OSUTF8CHAR** pvalue);
03153 
03170 EXTERNXML int rtXmlpDecBitString
03171 (OSCTXT* pctxt, OSOCTET* pvalue, OSUINT32* pnbits, OSUINT32 bufsize);
03172 
03185 EXTERNXML int rtXmlpDecBool (OSCTXT* pctxt, OSBOOL* pvalue);
03186 
03199 EXTERNXML int rtXmlpDecDate (OSCTXT* pctxt, OSXSDDateTime* pvalue);
03200 
03213 EXTERNXML int rtXmlpDecDateTime (OSCTXT* pctxt, OSXSDDateTime* pvalue);
03214 
03233 EXTERNXML int rtXmlpDecDecimal (OSCTXT* pctxt, OSREAL* pvalue,
03234    int totalDigits, int fractionDigits);
03235 
03248 EXTERNXML int rtXmlpDecDouble (OSCTXT* pctxt, OSREAL* pvalue);
03249 
03268 EXTERNXML int rtXmlpDecDynBase64Str (OSCTXT* pctxt, OSDynOctStr* pvalue);
03269 
03283 EXTERNXML int rtXmlpDecDynBitString (OSCTXT* pctxt, OSDynOctStr* pvalue);
03284 
03302 EXTERNXML int rtXmlpDecDynHexStr (OSCTXT* pctxt, OSDynOctStr* pvalue);
03303 
03321 EXTERNXML int rtXmlpDecDynUnicodeStr
03322 (OSCTXT* pctxt, const OSUNICHAR** ppdata, OSUINT32* pnchars);
03323 
03337 EXTERNXML int rtXmlpDecDynUTF8Str (OSCTXT* pctxt, const OSUTF8CHAR** outdata);
03338 
03339 
03353 EXTERNXML int rtXmlpDecUTF8Str
03354 (OSCTXT* pctxt, OSUTF8CHAR* out, size_t max_len);
03355 
03368 EXTERNXML int rtXmlpDecGDay (OSCTXT* pctxt, OSXSDDateTime* pvalue);
03369 
03382 EXTERNXML int rtXmlpDecGMonth (OSCTXT* pctxt, OSXSDDateTime* pvalue);
03383 
03396 EXTERNXML int rtXmlpDecGMonthDay (OSCTXT* pctxt, OSXSDDateTime* pvalue);
03397 
03410 EXTERNXML int rtXmlpDecGYear (OSCTXT* pctxt, OSXSDDateTime* pvalue);
03411 
03424 EXTERNXML int rtXmlpDecGYearMonth (OSCTXT* pctxt, OSXSDDateTime* pvalue);
03425 
03450 EXTERNXML int rtXmlpDecHexStr
03451 (OSCTXT* pctxt, OSOCTET* pvalue, OSUINT32* pnocts, OSINT32 bufsize);
03452 
03465 EXTERNXML int rtXmlpDecInt (OSCTXT* pctxt, OSINT32* pvalue);
03466 
03480 EXTERNXML int rtXmlpDecInt8 (OSCTXT* pctxt, OSINT8* pvalue);
03481 
03494 EXTERNXML int rtXmlpDecInt16 (OSCTXT* pctxt, OSINT16* pvalue);
03495 
03508 EXTERNXML int rtXmlpDecInt64 (OSCTXT* pctxt, OSINT64* pvalue);
03509 
03526 EXTERNXML int rtXmlpDecNamedBits
03527 (OSCTXT* pctxt, const OSBitMapItem* pBitMap,
03528  OSOCTET* pvalue, OSUINT32* pnbits, OSUINT32 bufsize);
03529 
03546 EXTERNXML int rtXmlpDecStrList (OSCTXT* pctxt, OSRTDList* plist);
03547 
03566 EXTERNXML int rtXmlpDecTime (OSCTXT* pctxt, OSXSDDateTime* pvalue);
03567 
03580 EXTERNXML int rtXmlpDecUInt (OSCTXT* pctxt, OSUINT32* pvalue);
03581 
03595 EXTERNXML int rtXmlpDecUInt8 (OSCTXT* pctxt, OSOCTET* pvalue);
03596 
03609 EXTERNXML int rtXmlpDecUInt16 (OSCTXT* pctxt, OSUINT16* pvalue);
03610 
03623 EXTERNXML int rtXmlpDecUInt64 (OSCTXT* pctxt, OSUINT64* pvalue);
03624 
03641 EXTERNXML int rtXmlpDecXmlStr (OSCTXT* pctxt, OSXMLSTRING* outdata);
03642 
03659 EXTERNXML int rtXmlpDecXmlStrList (OSCTXT* pctxt, OSRTDList* plist);
03660 
03679 EXTERNXML int rtXmlpDecXSIAttr
03680 (OSCTXT* pctxt, const OSXMLNameFragments* attrName);
03681 
03703 EXTERNXML int rtXmlpDecXSITypeAttr
03704 (OSCTXT* pctxt, const OSXMLNameFragments* attrName,
03705  const OSUTF8CHAR** ppAttrValue);
03706 
03730 EXTERNXML int rtXmlpGetAttributeID
03731 (const OSXMLStrFragment* attrName, OSINT16 nsidx,
03732  size_t nAttr, const OSXMLAttrDescr attrNames[], OSUINT32 attrPresent[]);
03733 
03746 EXTERNXML int rtXmlpGetNextElem
03747 (OSCTXT* pctxt, OSXMLElemDescr* pElem, OSINT32 level);
03748 
03764 EXTERNXML int rtXmlpGetNextElemID
03765 (OSCTXT* pctxt, const OSXMLElemIDRec* tab, size_t nrows, OSINT32 level,
03766  OSBOOL continueParse);
03767 
03777 EXTERNXML int rtXmlpMarkLastEventActive (OSCTXT* pctxt);
03778 
03794 EXTERNXML int rtXmlpMatchStartTag
03795    (OSCTXT* pctxt, const OSUTF8CHAR* elemLocalName, OSINT16 nsidx);
03796 
03807 EXTERNXML int rtXmlpMatchEndTag (OSCTXT* pctxt, OSINT32 level);
03808 
03819 EXTERNXML OSBOOL rtXmlpHasAttributes (OSCTXT* pctxt);
03820 
03829 EXTERNXML int rtXmlpGetAttributeCount (OSCTXT* pctxt);
03830 
03849 EXTERNXML int rtXmlpSelectAttribute
03850 (OSCTXT* pctxt, OSXMLNameFragments* pAttr,  OSINT16* nsidx, size_t index);
03851 
03858 EXTERNXML OSINT32 rtXmlpGetCurrentLevel (OSCTXT* pctxt);
03859 
03870 EXTERNXML void rtXmlpSetWhiteSpaceMode
03871    (OSCTXT* pctxt, OSXMLWhiteSpaceMode whiteSpaceMode);
03872 
03880 EXTERNXML OSBOOL rtXmlpSetMixedContentMode
03881    (OSCTXT* pctxt, OSBOOL mixedContentMode);
03882 
03888 EXTERNXML void rtXmlpSetListMode (OSCTXT* pctxt);
03889 
03898 EXTERNXML OSBOOL rtXmlpListHasItem (OSCTXT* pctxt);
03899 
03909 EXTERNXML void rtXmlpCountListItems (OSCTXT* pctxt, OSUINT32* itemCnt);
03910 
03926 EXTERNXML int rtXmlpGetNextSeqElemID
03927 (OSCTXT* pctxt, const OSXMLElemIDRec* tab, const OSXMLGroupDesc* pGroup,
03928  int curID, int lastMandatoryID, OSBOOL groupMode);
03929 
03945 EXTERNXML int rtXmlpGetNextAllElemID
03946 (OSCTXT* pctxt, const OSXMLElemIDRec* tab, size_t nrows,
03947  const OSUINT8* pOrder, OSUINT32 nOrder, OSUINT32 maxOrder, int anyID);
03948 
03965 EXTERNXML int rtXmlpGetNextAllElemID16
03966 (OSCTXT* pctxt, const OSXMLElemIDRec* tab, size_t nrows,
03967  const OSUINT16* pOrder, OSUINT32 nOrder, OSUINT32 maxOrder, int anyID);
03968 
03976 EXTERNXML void rtXmlpSetNamespaceTable
03977 (OSCTXT* pctxt, const OSUTF8CHAR* namespaceTable[], size_t nmNamespaces);
03978 
03987 EXTERNXML int rtXmlpCreateReader (OSCTXT* pctxt);
03988 
03995 EXTERNXML void rtXmlpHideAttributes (OSCTXT* pctxt);
03996 
04005 EXTERNXML OSBOOL rtXmlpNeedDecodeAttributes (OSCTXT* pctxt);
04006 
04012 EXTERNXML void rtXmlpMarkPos (OSCTXT* pctxt);
04013 
04019 EXTERNXML void rtXmlpRewindToMarkedPos (OSCTXT* pctxt);
04020 
04026 EXTERNXML void rtXmlpResetMarkedPos (OSCTXT* pctxt);
04027 
04044 EXTERNXML int rtXmlpGetXSITypeAttr
04045 (OSCTXT* pctxt, const OSUTF8CHAR** ppAttrValue, OSINT16* nsidx,
04046  size_t* pLocalOffs);
04047 
04058 EXTERNXML int rtXmlpGetXmlnsAttrs (OSCTXT* pctxt, OSRTDList* pNSAttrs);
04059 
04069 EXTERNXML int rtXmlpDecXSIAttrs (OSCTXT* pctxt);
04070 
04079 EXTERNXML OSBOOL rtXmlpIsEmptyElement (OSCTXT* pctxt);
04080 
04089 EXTERNXML int rtXmlEncAttrC14N (OSCTXT* pctxt);
04090 
04099 EXTERNXML OSBOOL rtXmlpIsLastEventDone (OSCTXT* pctxt);
04100 
04112 EXTERNXML int rtXmlpGetXSITypeIndex
04113 (OSCTXT* pctxt, const OSXMLItemDescr typetab[], size_t typetabsiz);
04114 
04128 EXTERNXML int rtXmlpLookupXSITypeIndex
04129 (OSCTXT* pctxt, const OSUTF8CHAR* pXsiType, OSINT16 xsiTypeIdx,
04130  const OSXMLItemDescr typetab[], size_t typetabsiz);
04131 
04139 EXTERNXML void rtXmlpForceDecodeAsGroup (OSCTXT* pctxt);
04140 
04149 EXTERNXML OSBOOL rtXmlpIsDecodeAsGroup (OSCTXT* pctxt);
04150 
04160 EXTERNXML OSBOOL rtXmlpIsUTF8Encoding (OSCTXT* pctxt);
04161 
04166 #ifdef __cplusplus
04167 }
04168 #endif
04169 
04170 #endif