Oracle® XML API Reference 10g Release 1 (10.1) Part Number B10789-01 |
|
|
View PDF |
Table 2-1 lists all C datatypes and their descriptions.
Table 2-1 Summary of C Datatypes
Datatype | Purpose |
---|---|
xmlcmphow |
Constant used for DOM Range comparisons. |
xmlctx |
Context shared for all documents in an XML session. |
xmlerr |
Numeric error code returned by many functions. |
xmlistream |
Generic user-defined input stream. |
xmliter |
Control structure for DOM2 NodeIterator and TreeWalker . |
xmlnodetype |
The numeric type code of a node. |
xmlostream |
Generic user-defined output stream. |
xmlpoint |
XPointer point location. |
xmlrange |
Controls structure for DOM2 Range. |
xmlshowbits |
Bit flags used to select which node types to show. |
xmlurlacc |
This is an enumeration of the known access methods for retrieving data from a URL. |
xmlurlhdl |
This union contains the handle(s) needed to access URL data, be it a stream or stdio pointer, file descriptor(s), and so on. |
xmlurlpart |
This structure contains the sub-parts of a URL. |
xmlxptrloc |
XPointer location datatype. |
xmlxptrlocset |
XPointer location set datatype. |
xmlxslobjtype |
Type of XSLT object that may be returned. |
xmlxslomethod |
Type of output produced by the XSLT processor. |
xmlxvm |
An object of type xmlxvm is used for XML document transformation. |
xmlxvmcomp |
An object of type xmlxvmcomp is used for compiling XSL stylesheets. |
xmlxvmflags |
Control flags for the XSLT compiler. |
xmlxvmobjtype |
Type of XSLTVM object. |
xpctx |
XPath top-level context. |
xpexpr |
XPath expression. |
xpobj |
XPath object. |
xsdctx |
XMLSchema validator context. |
xslctx |
XSL top-level context. |
xvmobj |
XSLVM processor run-time object; contents are private and must not be accessed by users. |
Constant used for DOM Range comparisons.
typedef enum { XMLDOM_START_TO_START = 0, XMLDOM_START_TO_END = 1, XMLDOM_END_TO_END = 2, XMLDOM_END_TO_START = 3 } xmlcmphow;
Context shared for all documents in an XML session. Contains encoding information, low-level memory allocation function pointers, error message language/encoding and optional handler function, and so on. Required to load (parse) documents and create DOM, generate SAX, and so on.
struct xmlctx; typedef struct xmlctx xmlctx;
Numeric error code returned by many functions. A zero value indicates success; a nonzero value indicates error.
typedef enum { XMLERR_OK = 0, /* success return */ XMLERR_NULL_PTR = 1, /* NULL pointer */ XMLERR_NO_MEMORY = 2, /* out of memory */ XMLERR_HASH_DUP = 3, /* duplicate entry in hash table */ XMLERR_INTERNAL = 4, /* internal error */ XMLERR_BUFFER_OVERFLOW = 5, /* name/quoted string too long */ XMLERR_BAD_CHILD = 6, /* invalid child for parent */ XMLERR_EOI = 7, /* unexpected EndOfInformation */ XMLERR_BAD_MEMCB = 8, /* invalid memory callbacks */ XMLERR_UNICODE_ALIGN = 12, /* Unicode data misalignment */ XMLERR_NODE_TYPE = 13, /* wrong node type */ XMLERR_UNCLEAN = 14, /* context is not clean */ XMLERR_NESTED_STRINGS = 18, /* internal: nested open str */ XMLERR_PROP_NOT_FOUND = 19, /* property not found */ XMLERR_SAVE_OVERFLOW = 20, /* save output overflowed */ XMLERR_NOT_IMP = 21, /* feature not implemented */ XMLERR_NLS_MISMATCH = 50, /* specify lxglo/lxd or neither*/ XMLERR_NLS_INIT = 51, /* error at NLS initialization */ XMLERR_LEH_INIT = 52, /* error at LEH initialization */ XMLERR_LML_INIT = 53, /* error at LML initialization */ XMLERR_LPU_INIT = 54 /* error at LPU initialization */ } xmlerr;
Generic user-defined input stream. The three function pointers are required (but may be stubs). The context pointer is entirely user-defined; point it to whatever state information is required to manage the stream; it will be passed as first argument to the user functions.
typedef struct xmlistream { XML_STREAM_OPEN_F( (*open_xmlistream), xctx, sctx, path, parts, length); XML_STREAM_READ_F( (*read_xmlistream), xctx, sctx, path, dest, size, nraw, eoi); XML_STREAM_CLOSE_F( (*close_xmlistream), xctx, sctx); void *ctx_xmlistream; /* user's stream context */ } xmlistream;
Control structure for DOM 2 NodeIterator
and TreeWalker
.
struct xmliter { xmlnode *root_xmliter; /* root node of the iteration space */ xmlnode *cur_xmliter; /* current position iterator ref node */ ub4 show_xmliter; /* node filter mask */ void *filt_xmliter; /* node filter function */ boolean attach_xmliter; /* is iterator valid? */ boolean expan_xmliter; /* are external entities expanded? */ boolean before_xmliter; /* iter position before ref node? */ }; typedef struct xmliter xmliter; typedef struct xmliter xmlwalk;
The numeric type code of a node. 0
means invalid, 1-13 are the standard numberings from DOM 1.0, and higher numbers are for internal use only.
typedef enum { XMLDOM_NONE = 0, /* bogus node */ XMLDOM_ELEM = 1, /* element */ XMLDOM_ATTR = 2, /* attribute */ XMLDOM_TEXT = 3, /* char data not escaped by CDATA */ XMLDOM_CDATA = 4, /* char data escaped by CDATA */ XMLDOM_ENTREF = 5, /* entity reference */ XMLDOM_ENTITY = 6, /* entity */ XMLDOM_PI = 7, /* <?processing instructions?> */ XMLDOM_COMMENT = 8, /* <!-- Comments --> */ XMLDOM_DOC = 9, /* Document */ XMLDOM_DTD = 10, /* DTD */ XMLDOM_FRAG = 11, /* Document fragment */ XMLDOM_NOTATION = 12, /* notation */ /* Oracle extensions from here on */ XMLDOM_ELEMDECL = 13, /* DTD element declaration */ XMLDOM_ATTRDECL = 14, /* DTD attribute declaration */ /* Content Particles (nodes in element's Content Model) */ XMLDOM_CPELEM = 15, /* element */ XMLDOM_CPCHOICE = 16, /* choice (a|b) */ XMLDOM_CPSEQ = 17, /* sequence (a,b) */ XMLDOM_CPPCDATA = 18, /* #PCDATA */ XMLDOM_CPSTAR = 19, /* '*' (zero or more) */ XMLDOM_CPPLUS = 20, /* '+' (one or more) */ XMLDOM_CPOPT = 21, /* '?' (optional) */ XMLDOM_CPEND = 22 /* end marker */ } xmlnodetype;
Generic user-defined output stream. The three function pointers are required (but may be stubs). The context pointer is entirely user-defined; point it to whatever state information is required to manage the stream; it will be passed as first argument to the user functions.
typedef struct xmlostream { XML_STREAM_OPEN_F( (*open_xmlostream), xctx, sctx, path, parts, length); XML_STREAM_WRITE_F( (*write_xmlostream), xctx, sctx, path, src, size); XML_STREAM_CLOSE_F( (*close_xmlostream), xctx, sctx); void *ctx_xmlostream; /* user's stream context */ } xmlostream;
XPointer point location.
typedef struct xmlpoint xmlpoint;
Control structure for DOM 2 Range.
typedef struct xmlrange { xmlnode *startnode_xmlrange; /* start point container */ ub4 startofst_xmlrange; /* start point index */ xmlnode *endnode_xmlrange; /* end point container */ ub4 endofst_xmlrange; /* end point index */ xmlnode *doc_xmlrange; /* document node */ xmlnode *root_xmlrange; /* root node of the range */ boolean collapsed_xmlrange; /* is range collapsed? */ boolean detached_xmlrange; /* range invalid, invalidated?*/ } xmlrange;
Bit flags used to select which nodes types to show.
typedef ub4 xmlshowbits; #define XMLDOM_SHOW_ALL ~(ub4)0 #define XMLDOM_SHOW_BIT(ntype) ((ub4)1 << (ntype)) #define XMLDOM_SHOW_ELEM XMLDOM_SHOW_BIT(XMLDOM_ELEM) #define XMLDOM_SHOW_ATTR XMLDOM_SHOW_BIT(XMLDOM_ATTR) #define XMLDOM_SHOW_TEXT XMLDOM_SHOW_BIT(XMLDOM_TEXT) #define XMLDOM_SHOW_CDATA XMLDOM_SHOW_BIT(XMLDOM_CDATA) #define XMLDOM_SHOW_ENTREF XMLDOM_SHOW_BIT(XMLDOM_ENTREF) #define XMLDOM_SHOW_ENTITY XMLDOM_SHOW_BIT(XMLDOM_ENTITY) #define XMLDOM_SHOW_PI XMLDOM_SHOW_BIT(XMLDOM_PI) #define XMLDOM_SHOW_COMMENT XMLDOM_SHOW_BIT(XMLDOM_COMMENT) #define XMLDOM_SHOW_DOC XMLDOM_SHOW_BIT(XMLDOM_DOC) #define XMLDOM_SHOW_DTD XMLDOM_SHOW_BIT(XMLDOM_DTD) #define XMLDOM_SHOW_FRAG XMLDOM_SHOW_BIT(XMLDOM_FRAG) #define XMLDOM_SHOW_NOTATION XMLDOM_SHOW_BIT(XMLDOM_NOTATION) #define XMLDOM_SHOW_DOC_TYPE XMLDOM_SHOW_BIT(XMLDOM_DOC_TYPE)
This is an enumeration of the known access methods for retrieving data from a URL. Open/read/close functions may be plugged in to override the default behavior.
typedef enum { XML_ACCESS_NONE = 0, /* not specified */ XML_ACCESS_UNKNOWN = 1, /* specified but unknown */ XML_ACCESS_FILE = 2, /* filesystem access */ XML_ACCESS_HTTP = 3, /* HTTP */ XML_ACCESS_FTP = 4, /* FTP */ XML_ACCESS_GOPHER = 5, /* Gopher */ XML_ACCESS_ORADB = 6, /* Oracle DB */ XML_ACCESS_STREAM = 7 /* user-defined stream */ } xmlurlacc;
This union contains the handle(s) needed to access URL data, be it a stream or stdio pointer, file descriptor(s), and so on.
typedef union xmlurlhdl { void *ptr_xmlurlhdl; /* generic stream/file/... handle */ struct { sb4 fd1_xmlurlhdl; /* file descriptor(s) [FTP needs all 3!] */ sb4 fd2_xmlurlhdl; sb4 fd3_xmlurlhdl; } fds_lpihdl; } xmlurlhdl;
This structure contains the sub-parts of a URL. The original URL is parsed and the pieces copies (NULL
-terminated) to a working buffer, then this structure is filled in to point to the parts. Given URL http://user:pwd@baz.com:8080/pub/baz.html;quux=1?huh#fraggy
, the example component part from this URL will be shown.
typedef struct xmlurlpart { xmlurlacc access_xmlurlpart; /* access method code, XMLACCESS_HTTP */ oratext *accbuf_xmlurlpart; /* access method name: "http" */ oratext *host_xmlurlpart; /* hostname: "baz.com" */ oratext *dir_xmlurlpart; /* directory: "pub" */ oratext *file_xmlurlpart; /* filename: "baz.html" */ oratext *uid_xmlurlpart; /* userid/username: "user" */ oratext *passwd_xmlurlpart; /* password: "pwd" */ oratext *port_xmlurlpart; /* port (as string): "8080" */ oratext *frag_xmlurlpart; /* fragment: "fraggy" */ oratext *query_xmlurlpart; /* query: "huh" */ oratext *param_xmlurlpart; /* parameter: "quux=1" */ ub2 portnum_xmlurlpart; /* port (as number): 8080 */ ub1 abs_xmlurlpart; /* absolute path? TRUE */ } xmlurlpart;
XPointer location data type.
typedef struct xmlxptrloc xmlxptrloc;
XPointer location set data type.
typedef struct xmlxptrlocset xmlxptrlocset;
Type of XSLT object that may be returned.
typedef enum xmlxslobjtype { XMLXSL_TYPE_UNKNOWN = 0, /* Not a defined type */ XMLXSL_TYPE_NDSET = 1, /* Node-set */ XMLXSL_TYPE_BOOL = 2, /* Boolean value */ XMLXSL_TYPE_NUM = 3, /* Numeric value (double) */ XMLXSL_TYPE_STR = 4, /* String */ XMLXSL_TYPE_FRAG = 5 /* Document Fragment */ } xmlxslobjtype;
Type of output to be produced by the XSLT processor.
typedef enum xmlxslomethod { XMLXSL_OUTPUT_UNKNOWN = 0, /* Not defined */ XMLXSL_OUTPUT_XML = 1, /* Produce a Document Fragment */ XMLXSL_OUTPUT_STREAM = 2, /* Stream out formatted result */ XMLXSL_OUTPUT_HTML = 3 /* Stream out HTML formatted result */ } xmlxslomethod;
An object of type xmlxvm
is used for XML documents transformation. The contents of xmlxvm
are private and must not be accessed by users.
struct xmlxvm; typedef struct xmlxvm xmlxvm;
An object of type xmlxvmcomp
is used for compiling XSL stylesheets. The contents of xmlxvmcomp
are private and must not be accessed by users.
struct xmlxvmcomp; typedef struct xmlxvmcomp xmlxvmcomp;
Control flags for the XSLT compiler.
XMLXVM_DEBUG
forces compiler to insert debug information into the bytecode.
XMLXVM_STRIPSPACE
forces the same behavior as xsl:strip-space elements="*"
typedef ub4 xmlxvmflag; #define XMLXVM_NOFLAG 0x00 #define XMLXVM_DEBUG 0x01 /* insert debug info into bytecode */ #define XMLXVM_STRIPSPACE 0x02 /* same as xsl:strip-space elements="*" */
Type of XSLTVM object.
typedef enum xmlxvmobjtype { XMLXVM_TYPE_UNKNOWN = 0, XMLXVM_TYPE_NDSET = 1, XMLXVM_TYPE_BOOL = 2, XMLXVM_TYPE_NUM = 3, XMLXVM_TYPE_STR = 4, XMLXVM_TYPE_FRAG = 5 } xmlxvmobjtype;
XPath top-level context.
struct xpctx; typedef struct xpctx xpctx;
XPath expression.
struct xpexpr; typedef struct xpexpr xpexpr;
Xpath object.
struct xpobj;typedef struct xpobj xpobj;
XML Schema validator context, created by XmlSchemaCreate
and passed to most Schema functions.
# define XSDCTX_DEFINED struct xsdctx; typedef struct xsdctx xsdctx;
XSL top-level context.
struct xslctx; typedef struct xslctx xslctx;
XSLVM processor run-time object; content is private and must not be accessed by users.
struct xvmobj; typedef struct xvmobj xvmobj;