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 */
 |