| 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;