Files correlati : Commento : - Creazione nuova cartella per contenere tutte le librerie esterne - Aggiunta nuova libreria sqlapi per interfacciare campo a vari DB git-svn-id: svn://10.65.10.50/branches/R_10_00@24149 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			189 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			189 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* Copyright (c) 2003, 2009, Oracle and/or its affiliates.
 | 
						|
All rights reserved. */
 | 
						|
 
 | 
						|
/* 
 | 
						|
   NAME 
 | 
						|
     ocixml.h - OCIXMLType functions 
 | 
						|
 | 
						|
   DESCRIPTION 
 | 
						|
     This file contains all OCIXMLType functions defined in ocixml.c 
 | 
						|
 | 
						|
 | 
						|
     ****************************IMPORTANT***********************************
 | 
						|
     *** If you change the signatures of any fucntions in this file, make sure
 | 
						|
     *** to make same changes to Windows OSD file ociclnt.c. Otherwise, users
 | 
						|
     *** of OCI instant client like ODP.NET will have build issues or crashes
 | 
						|
     ****************************IMPORTANT***********************************
 | 
						|
 | 
						|
   PUBLIC FUNCTION(S) 
 | 
						|
     OCIXMLTypeNew()
 | 
						|
     OCIXMLTypeCreateFromSrc()
 | 
						|
     OCIXMLTypeCreateFromSrcWithSchema()
 | 
						|
     OCIXMLTypeTransform()
 | 
						|
     OCIXMLTypeExtract()
 | 
						|
     OCIXMLTypeIsSchemaBased()
 | 
						|
     OCIXMLTypeValidate()
 | 
						|
     OCIXMLTypeExists()
 | 
						|
     OCIXMLTypeGetDOM()
 | 
						|
     OCIXMLTypeGetFromDOM()
 | 
						|
     OCIDOMFree()
 | 
						|
     OCIXMLSEMutexAcq()
 | 
						|
     OCIXMLSEMutexRel()
 | 
						|
     OCIXMLUpdateNodeValues()
 | 
						|
 | 
						|
   INTERNAL FUNCTION(S)
 | 
						|
 | 
						|
   EXAMPLES
 | 
						|
 | 
						|
   NOTES
 | 
						|
 | 
						|
   MODIFIED   (MM/DD/YY)
 | 
						|
   spetride    03/02/09 - add isdoc to OCIXMLTypeCreateFromSrc*
 | 
						|
   bsthanik    01/17/07 - 5753599: wrappers for service mutex acq/rel
 | 
						|
   bkhaladk    05/10/06 - add setpicklepref 
 | 
						|
   nitgupta    01/30/06 - add signatures for OCIBinXMl*
 | 
						|
   dmukhin     06/16/05 - ANSI prototypes; miscellaneous cleanup 
 | 
						|
   dmukhin     06/14/05 - ANSI prototypes; miscellaneous cleanup 
 | 
						|
   ataracha    12/04/03 - convert public oci api to ansi
 | 
						|
   ataracha    01/21/03 - ataracha_uni_capi_cleanup
 | 
						|
   ataracha    01/08/03 - Creation
 | 
						|
 | 
						|
*/
 | 
						|
#ifndef OCI_ORACLE
 | 
						|
# include <oci.h>
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef XML0_ORACLE
 | 
						|
# include <xml0.h>
 | 
						|
#endif
 | 
						|
 | 
						|
#ifndef OCIXML_ORACLE
 | 
						|
# define OCIXML_ORACLE
 | 
						|
 | 
						|
/*---------------------------------------------------------------------------
 | 
						|
                     PUBLIC TYPES AND CONSTANTS
 | 
						|
  ---------------------------------------------------------------------------*/
 | 
						|
 | 
						|
/* parameters for OCIXMLUpdateNodeValues */
 | 
						|
struct OCIXMLunv
 | 
						|
{
 | 
						|
  void * xpth_OCIXMLunv;               /* xpath expression */
 | 
						|
  void * val_OCIXMLunv;                /* value - string literal or xmltype */
 | 
						|
  ub4    xpthL_OCIXMLunv;              /* length of xpath expression string */
 | 
						|
  ub4    valL_OCIXMLunv;               /* length of value string */
 | 
						|
  ub1    tp_OCIXMLunv;                 /* type of value - xmltype of string */
 | 
						|
  
 | 
						|
#define OCIXMLUNV_XTP    0x00          /* param is xmltype */
 | 
						|
#define OCIXMLUNV_STP    0x01          /* param is string literal */
 | 
						|
#define OCIXMLUNV_STM    0x02          /* param is a stream (kghsstream *) */
 | 
						|
#define OCIXMLUNV_CLOB   0x03          /* param is a CLOB locator (kolblc *) */
 | 
						|
#define OCIXMLUNV_BLOB   0x04          /* param is a BLOB locator (kolblc *) */
 | 
						|
};
 | 
						|
typedef struct OCIXMLunv OCIXMLunv;
 | 
						|
 | 
						|
/*---------------------------------------------------------------------------
 | 
						|
                     PRIVATE TYPES AND CONSTANTS
 | 
						|
  ---------------------------------------------------------------------------*/
 | 
						|
 | 
						|
 | 
						|
/*---------------------------------------------------------------------------
 | 
						|
                           EXPORT FUNCTIONS
 | 
						|
  ---------------------------------------------------------------------------*/
 | 
						|
sword  OCIXMLTypeNew(OCISvcCtx *svchp, OCIError *errhp, OCIDuration dur,
 | 
						|
                     OraText *elname, ub4 elname_Len,
 | 
						|
                     OraText *schemaURL, ub4 schemaURL_Len,
 | 
						|
                     OCIXMLType **retInstance);
 | 
						|
 | 
						|
sword  OCIXMLTypeCreateFromSrc(OCISvcCtx *svchp, OCIError *errhp,
 | 
						|
                               OCIDuration dur, ub1 src_type, void  *src_ptr,
 | 
						|
                               sb4 ind, OCIXMLType **retInstance, ub4 csid);
 | 
						|
sword  OCIXMLTypeCreateFromSrcInt(OCISvcCtx *svchp, OCIError *errhp,
 | 
						|
                               OCIDuration dur, ub1 src_type, void  *src_ptr,
 | 
						|
                               sb4 ind, OCIXMLType **retInstance, ub4 csid,
 | 
						|
                               boolean isdoc);
 | 
						|
 | 
						|
sword  OCIXMLTypeCreateFromSrcWithSchema(OCISvcCtx *svchp, OCIError *errhp,
 | 
						|
                     OCIDuration dur, ub1 src_type, void  *src_ptr,
 | 
						|
                     sb4 ind, OraText *schemaURL, ub4 schemaURL_Len,
 | 
						|
                     boolean wellformed, boolean valid,
 | 
						|
                     OCIXMLType **retInstance, ub4 csid);
 | 
						|
sword  OCIXMLTypeCreateFromSrcWithSchemaInt(OCISvcCtx *svchp, OCIError *errhp,
 | 
						|
                     OCIDuration dur, ub1 src_type, void  *src_ptr,
 | 
						|
                     sb4 ind, OraText *schemaURL, ub4 schemaURL_Len,
 | 
						|
                     boolean wellformed, boolean valid,
 | 
						|
                     OCIXMLType **retInstance, ub4 csid,
 | 
						|
                     boolean isdoc);
 | 
						|
 | 
						|
sword OCIXMLTypeExtract(OCIError *errhp,
 | 
						|
              OCIXMLType *doc, OCIDuration dur,
 | 
						|
              OraText *xpathexpr, ub4 xpathexpr_Len,
 | 
						|
              OraText *nsmap, ub4 nsmap_Len,
 | 
						|
              OCIXMLType **retDoc);
 | 
						|
 | 
						|
sword OCIXMLTypeTransform(OCIError *errhp, OCIDuration dur,
 | 
						|
               OCIXMLType *doc, OCIXMLType *xsldoc,
 | 
						|
               OCIXMLType **retDoc);
 | 
						|
 | 
						|
/* Note: xpathexpr is case sensitive */
 | 
						|
sword OCIXMLTypeExists(OCIError *errhp, OCIXMLType *doc,
 | 
						|
                 OraText *xpathexpr, ub4 xpathexpr_Len,
 | 
						|
                 OraText *nsmap, ub4 nsmap_Len,
 | 
						|
                 boolean *retval);
 | 
						|
 | 
						|
sword OCIXMLTypeIsSchemaBased(OCIError *errhp,
 | 
						|
                              OCIXMLType *doc, boolean *retval);
 | 
						|
 | 
						|
sword OCIXMLTypeIsFragment(OCIError *errhp, OCIXMLType *doc, boolean *retval);
 | 
						|
 | 
						|
sword OCIXMLTypeGetSchema(OCIError *errhp, OCIXMLType *doc,
 | 
						|
             OCIXMLType **schemadoc,
 | 
						|
             OraText **schemaURL, ub4 *schemaURL_Len,
 | 
						|
             OraText **rootelem, ub4 *rootelem_Len);
 | 
						|
 | 
						|
sword OCIXMLTypeValidate(OCIError *errhp, OCIXMLType *doc,
 | 
						|
                   OraText *schemaURL, ub4 schemaURL_Len, boolean *retval);
 | 
						|
 | 
						|
sword OCIXMLTypeGetDOM(OCIError *errhp, OCIXMLType *doc, OCIDuration dur,
 | 
						|
                       OCIDOMDocument **retDom);
 | 
						|
 | 
						|
sword OCIXMLTypeGetFromDOM(OCIError *errhp, OCIDOMDocument *domdoc,
 | 
						|
                           OCIXMLType **retXMLType);
 | 
						|
 | 
						|
sword OCIXMLTypeGetNS(OCIError *errhp, OCIXMLType *domdoc,
 | 
						|
                      OraText **ns, ub4 *ns_len);
 | 
						|
 | 
						|
sword OCIDOMFree(OCIError *errhp, OCIDOMDocument *domdoc);
 | 
						|
 | 
						|
sword OCIBinXmlCreateReposCtxFromConn(OCIEnv *env, OCISvcCtx *svcctx,
 | 
						|
                                      OCIError *err, OCIBinXmlReposCtx **ctx);
 | 
						|
sword OCIBinXmlCreateReposCtxFromCPool(OCIEnv *env, OCICPool *cpool,
 | 
						|
                                       OCIError *err, OCIBinXmlReposCtx **ctx);
 | 
						|
sword OCIBinXmlSetReposCtxForConn(OCISvcCtx *dataconn,
 | 
						|
                                  OCIBinXmlReposCtx *reposctx);
 | 
						|
 | 
						|
#define OCIXML_FORMATTYPE_TEXT   0
 | 
						|
#define OCIXML_FORMATTYPE_BINXML 1
 | 
						|
 | 
						|
sword OCIBinXmlSetFormatPref(xmldocnode *doc, ub4 format);
 | 
						|
 | 
						|
/* OCI Wrapper to acquire mutex associated with service handle and 
 | 
						|
 * env handle 
 | 
						|
 */
 | 
						|
sword OCIXMLSEMutexAcq(OCISvcCtx *svchp, OCIError *errhp);
 | 
						|
 | 
						|
/* release wrapper corresponding to OCIXMLSEMutexAcq */
 | 
						|
sword OCIXMLSEMutexRel(OCISvcCtx *svchp, OCIError *errhp);
 | 
						|
 | 
						|
/* acquires OCI svc and env mutexes, updates values of nodes pointed to by
 | 
						|
 * given XPATH locations, and releases mutexes.
 | 
						|
 */
 | 
						|
sword OCIXMLUpdateNodeValues(OCISvcCtx *svchp, OCIError *errhp, OCIXMLType 
 | 
						|
              **docp, struct OCIXMLunv *values, ub4 numvalues, oratext *nsmap, 
 | 
						|
                ub4 nsmapl);
 | 
						|
/*---------------------------------------------------------------------------
 | 
						|
                          INTERNAL FUNCTIONS
 | 
						|
  ---------------------------------------------------------------------------*/
 | 
						|
 | 
						|
 | 
						|
#endif                                              /* OCIXML_ORACLE */
 |