Home > Support > Documentation

osrtxml.h

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