30#ifndef _XQUERY_C_API_H
31#define _XQUERY_C_API_H
41#define XQC_VERSION_NUMBER 1
108 unsigned int (*
read)(XQC_InputStream *stream,
void *buffer,
unsigned int length);
116 void (*
free)(XQC_InputStream *stream);
157 const char *error_localname,
const char *description, XQC_Sequence *error_object);
245 const XQC_StaticContext *context, XQC_Expression **expression);
267 const XQC_StaticContext *context, XQC_Expression **expression);
291 const XQC_StaticContext *context, XQC_Expression **expression);
302 const char *string, XQC_Sequence **sequence);
305 FILE *file, XQC_Sequence **sequence);
308 XQC_InputStream *stream, XQC_Sequence **sequence);
318 XQC_Sequence **sequence);
321 XQC_Sequence **sequence);
323 const char *values[],
unsigned int count,
324 XQC_Sequence **sequence);
326 int values[],
unsigned int count,
327 XQC_Sequence **sequence);
329 double values[],
unsigned int count,
330 XQC_Sequence **sequence);
343 void *(*get_interface)(
const XQC_Implementation *implementation,
const char *name);
351 void (*
free)(XQC_Implementation *implementation);
435 (*
declare_ns)(XQC_StaticContext *context,
const char *prefix,
const char *uri);
449 (*
get_ns_by_prefix)(XQC_StaticContext *context,
const char *prefix,
const char **result_ns);
657 (*
set_base_uri)(XQC_StaticContext *context,
const char *base_uri);
669 (*
get_base_uri)(XQC_StaticContext *context,
const char **base_uri);
683 void *(*get_interface)(
const XQC_StaticContext *context,
const char *name);
691 void (*
free)(XQC_StaticContext *context);
738 XQC_Error (*
execute)(
const XQC_Expression *expression,
const XQC_DynamicContext *context, XQC_Sequence **sequence);
749 void *(*get_interface)(
const XQC_Expression *expression,
const char *name);
757 void (*
free)(XQC_Expression *expression);
780 XQC_Sequence *value);
783 XQC_Sequence **value);
826 void *(*get_interface)(
const XQC_DynamicContext *context,
const char *name);
834 void (*
free)(XQC_DynamicContext *context);
958 void *(*get_interface)(
const XQC_Sequence *sequence,
const char *name);
966 void (*
free)(XQC_Sequence *sequence);
XQC_Error(* get_implicit_timezone)(const XQC_DynamicContext *context, int *timezone)
Definition xqc.h:812
XQC_Error(* get_variable)(const XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence **value)
Definition xqc.h:782
XQC_Error(* set_error_handler)(XQC_DynamicContext *context, XQC_ErrorHandler *handler)
Definition xqc.h:814
XQC_Error(* get_context_item)(const XQC_DynamicContext *context, XQC_Sequence **value)
Definition xqc.h:804
XQC_Error(* set_variable)(XQC_DynamicContext *context, const char *uri, const char *name, XQC_Sequence *value)
Sets the external variable to the value given.
Definition xqc.h:779
void(* free)(XQC_DynamicContext *context)
Called to free the resources associated with the XQC_DynamicContext.
Definition xqc.h:834
XQC_Error(* get_error_handler)(const XQC_DynamicContext *context, XQC_ErrorHandler **handler)
Definition xqc.h:815
XQC_Error(* set_implicit_timezone)(XQC_DynamicContext *context, int timezone)
The timezone given must be between -840 and +840 minutes (-14 and +14 hours).
Definition xqc.h:811
XQC_Error(* set_context_item)(XQC_DynamicContext *context, XQC_Sequence *value)
Sets the context item to the current item of the XQC_Sequence given.
Definition xqc.h:802
The XQC_ErrorHandler struct is designed to be populated by users for the purpose of collecting more d...
Definition xqc.h:131
void * user_data
Can be used for user specific purposes.
Definition xqc.h:136
void(* error)(XQC_ErrorHandler *handler, XQC_Error error, const char *error_uri, const char *error_localname, const char *description, XQC_Sequence *error_object)
The function called when an error occurs.
Definition xqc.h:156
The XQC_Expression struct represents a prepared query, and allows the user to execute that query any ...
Definition xqc.h:707
XQC_Error(* create_context)(const XQC_Expression *expression, XQC_DynamicContext **context)
Creates a dynamic context suitable for use in the execute() function.
Definition xqc.h:720
void(* free)(XQC_Expression *expression)
Called to free the resources associated with the XQC_Expression.
Definition xqc.h:757
XQC_Error(* execute)(const XQC_Expression *expression, const XQC_DynamicContext *context, XQC_Sequence **sequence)
Executes the query represented by the XQC_Expression object using the values in the XQC_DynamicContex...
Definition xqc.h:738
The XQC_Implementation struct provides factory functions for preparing queries.
Definition xqc.h:207
XQC_Error(* create_double_sequence)(XQC_Implementation *implementation, double values[], unsigned int count, XQC_Sequence **sequence)
Definition xqc.h:328
XQC_Error(* parse_document_file)(XQC_Implementation *implementation, FILE *file, XQC_Sequence **sequence)
XQC_PARSE_ERROR.
Definition xqc.h:304
XQC_Error(* prepare_stream)(XQC_Implementation *implementation, XQC_InputStream *stream, const XQC_StaticContext *context, XQC_Expression **expression)
Prepares a query from an XQC_InputStream, returning an XQC_Expression object.
Definition xqc.h:290
void(* free)(XQC_Implementation *implementation)
Called to free the resources associated with the XQC_Implementation.
Definition xqc.h:351
XQC_Error(* create_context)(XQC_Implementation *implementation, XQC_StaticContext **context)
Creates a static context suitable for use in the prepare(), prepare_file() and prepare_stream() funct...
Definition xqc.h:225
XQC_Error(* create_string_sequence)(XQC_Implementation *implementation, const char *values[], unsigned int count, XQC_Sequence **sequence)
Definition xqc.h:322
XQC_Error(* prepare_file)(XQC_Implementation *implementation, FILE *file, const XQC_StaticContext *context, XQC_Expression **expression)
Prepares a query from a FILE pointer, returning an XQC_Expression object.
Definition xqc.h:266
XQC_Error(* create_empty_sequence)(XQC_Implementation *implementation, XQC_Sequence **sequence)
Definition xqc.h:317
XQC_Error(* prepare)(XQC_Implementation *implementation, const char *string, const XQC_StaticContext *context, XQC_Expression **expression)
Prepares a query from a UTF-8 string, returning an XQC_Expression object.
Definition xqc.h:244
XQC_Error(* parse_document)(XQC_Implementation *implementation, const char *string, XQC_Sequence **sequence)
XQC_PARSE_ERROR.
Definition xqc.h:301
XQC_Error(* create_singleton_sequence)(XQC_Implementation *implementation, XQC_ItemType type, const char *value, XQC_Sequence **sequence)
Definition xqc.h:319
XQC_Error(* parse_document_stream)(XQC_Implementation *implementation, XQC_InputStream *stream, XQC_Sequence **sequence)
XQC_PARSE_ERROR.
Definition xqc.h:307
XQC_Error(* create_integer_sequence)(XQC_Implementation *implementation, int values[], unsigned int count, XQC_Sequence **sequence)
Definition xqc.h:325
void(* free)(XQC_Sequence *sequence)
Called to free the resources associated with the XQC_Sequence.
Definition xqc.h:966
XQC_Error(* string_value)(const XQC_Sequence *sequence, const char **value)
Returns the string value of the current item in the sequence - this is equivalent to calling fn:strin...
Definition xqc.h:901
XQC_Error(* next)(XQC_Sequence *sequence)
Moves the XQC_Sequence so that the current item is positioned at the next item in the sequence.
Definition xqc.h:854
XQC_Error(* item_type)(const XQC_Sequence *sequence, XQC_ItemType *type)
Returns an item type enumeration for the type of the current item.
Definition xqc.h:871
XQC_Error(* node_name)(const XQC_Sequence *sequence, const char **uri, const char **name)
Returns the name for the current node as a (URI, localname) pair.
Definition xqc.h:945
XQC_Error(* double_value)(const XQC_Sequence *sequence, double *value)
Returns the value of the current item in the sequence as a double - this is equivalent to calling fn:...
Definition xqc.h:929
XQC_Error(* integer_value)(const XQC_Sequence *sequence, int *value)
Returns the value of the current item in the sequence as an integer - this is equivalent to calling f...
Definition xqc.h:915
XQC_Error(* type_name)(const XQC_Sequence *sequence, const char **uri, const char **name)
Returns the type name for the current item as a (URI, localname) pair.
Definition xqc.h:886
The XQC_StaticContext struct provides a way to specify values for the static context of the query to ...
Definition xqc.h:404
XQC_Error(* set_default_element_and_type_ns)(XQC_StaticContext *context, const char *uri)
Sets the value of the default namespace for elements and types.
Definition xqc.h:461
XQC_Error(* set_boundary_space_policy)(XQC_StaticContext *context, XQC_BoundarySpaceMode mode)
Sets the boundary space policy to either XQC_PRESERVE_SPACE or XQC_STRIP_SPACE.
Definition xqc.h:606
XQC_Error(* set_default_function_ns)(XQC_StaticContext *context, const char *uri)
Sets the default namespace for functions.
Definition xqc.h:484
XQC_Error(* set_default_order_empty_sequences)(XQC_StaticContext *context, XQC_OrderEmptyMode mode)
Sets the default order mode for empty sequences to either XQC_EMTPY_LEAST or XQC_EMPTY_GREATEST.
Definition xqc.h:581
XQC_Error(* get_default_element_and_type_ns)(XQC_StaticContext *context, const char **uri)
Definition xqc.h:472
XQC_Error(* get_base_uri)(XQC_StaticContext *context, const char **base_uri)
Returns the base uri that is set in the given static context.
Definition xqc.h:669
XQC_Error(* get_xpath_compatib_mode)(XQC_StaticContext *context, XQC_XPath1Mode *mode)
Returns the XPath 1.0 compatibility that is set in the given static context.
Definition xqc.h:520
XQC_Error(* get_default_function_ns)(XQC_StaticContext *context, const char **uri)
Returnsthe default namespace for functions set in this static context.
Definition xqc.h:496
XQC_Error(* create_child_context)(XQC_StaticContext *context, XQC_StaticContext **child_context)
Creates a child context of the given static context.
Definition xqc.h:421
XQC_Error(* get_ns_by_prefix)(XQC_StaticContext *context, const char *prefix, const char **result_ns)
Returns the namespace uri that belongs to the given prefix.
Definition xqc.h:449
XQC_Error(* get_copy_ns_mode)(XQC_StaticContext *context, XQC_PreserveMode *preserve, XQC_InheritMode *inherit)
Returns the copy namespace mode as a pair consisting of the preserve and the inherit mode.
Definition xqc.h:645
XQC_Error(* declare_ns)(XQC_StaticContext *context, const char *prefix, const char *uri)
Adds a (prefix, uri) pair to the set of statically known namespaces of the given context.
Definition xqc.h:435
XQC_Error(* get_construction_mode)(XQC_StaticContext *context, XQC_ConstructionMode *mode)
Returns the construction mode that is set in the given static context.
Definition xqc.h:544
XQC_Error(* set_construction_mode)(XQC_StaticContext *context, XQC_ConstructionMode mode)
Sets the construction mode to either XQC_PRESERVE_CONS or XQC_StaticContext.
Definition xqc.h:532
XQC_Error(* set_ordering_mode)(XQC_StaticContext *context, XQC_OrderingMode mode)
Sets the ordering mode to either XQC_ORDERED or XQC_UNORDERED.
Definition xqc.h:556
XQC_Error(* set_copy_ns_mode)(XQC_StaticContext *context, XQC_PreserveMode preserve, XQC_InheritMode inherit)
Sets the copy namespace mode which consists of the preserve and the inherit mode.
Definition xqc.h:631
XQC_Error(* get_error_handler)(const XQC_StaticContext *context, XQC_ErrorHandler **handler)
Definition xqc.h:672
XQC_Error(* get_boundary_space_policy)(XQC_StaticContext *context, XQC_BoundarySpaceMode *mode)
Returns the boundary space policy that is set in the given static context.
Definition xqc.h:618
XQC_Error(* set_error_handler)(XQC_StaticContext *context, XQC_ErrorHandler *handler)
Definition xqc.h:671
XQC_Error(* get_default_order_empty_sequences)(XQC_StaticContext *context, XQC_OrderEmptyMode *mode)
Returns the default order mode for empty sequences that is set in the given static context.
Definition xqc.h:594
XQC_Error(* get_ordering_mode)(XQC_StaticContext *context, XQC_OrderingMode *mode)
Returns the ordering mode that is set in the given static context.
Definition xqc.h:568
XQC_Error(* set_base_uri)(XQC_StaticContext *context, const char *base_uri)
Sets the base uri in the given static context.
Definition xqc.h:657
XQC_Error(* set_xpath_compatib_mode)(XQC_StaticContext *context, XQC_XPath1Mode mode)
Sets the XPath 1.0 compatibility mode to either XQC_XPATH1_0 or XQC_XPATH2_0.
Definition xqc.h:508
void(* free)(XQC_StaticContext *context)
Called to free the resources associated with the XQC_StaticContext.
Definition xqc.h:691
XQC_OrderingMode
Ordering mode as defined in http://www.w3.org/TR/xquery/#static_context.
Definition xqc.h:364
@ XQC_UNORDERED
Definition xqc.h:364
@ XQC_ORDERED
Definition xqc.h:364
XQC_PreserveMode
Preserve part of the Copy-namespace mode as defined in http://www.w3.org/TR/xquery/#static_context.
Definition xqc.h:382
@ XQC_PRESERVE_NS
Definition xqc.h:382
@ XQC_NO_PRESERVE_NS
Definition xqc.h:382
XQC_InheritMode
Inherit part of the Copy-namespace mode as defined in http://www.w3.org/TR/xquery/#static_context.
Definition xqc.h:376
@ XQC_NO_INHERIT_NS
Definition xqc.h:376
@ XQC_INHERIT_NS
Definition xqc.h:376
XQC_OrderEmptyMode
Default order for empty sequences as defined in http://www.w3.org/TR/xquery/#static_context.
Definition xqc.h:370
@ XQC_EMPTY_GREATEST
Definition xqc.h:370
@ XQC_EMPTY_LEAST
Definition xqc.h:370
XQC_BoundarySpaceMode
Boundary-space policy as defined in http://www.w3.org/TR/xquery/#static_context.
Definition xqc.h:387
@ XQC_STRIP_SPACE
Definition xqc.h:387
@ XQC_PRESERVE_SPACE
Definition xqc.h:387
XQC_ItemType
Definition xqc.h:160
@ XQC_G_YEAR_MONTH_TYPE
Definition xqc.h:186
@ XQC_PROCESSING_INSTRUCTION_TYPE
Definition xqc.h:167
@ XQC_BASE_64_BINARY_TYPE
Definition xqc.h:173
@ XQC_ELEMENT_TYPE
Definition xqc.h:164
@ XQC_DATE_TYPE
Definition xqc.h:175
@ XQC_DOUBLE_TYPE
Definition xqc.h:179
@ XQC_UNTYPED_ATOMIC_TYPE
Definition xqc.h:192
@ XQC_QNAME_TYPE
Definition xqc.h:189
@ XQC_TEXT_TYPE
Definition xqc.h:166
@ XQC_BOOLEAN_TYPE
Definition xqc.h:174
@ XQC_NOTATION_TYPE
Definition xqc.h:188
@ XQC_DAY_TIME_DURATION_TYPE
Definition xqc.h:177
@ XQC_STRING_TYPE
Definition xqc.h:190
@ XQC_DURATION_TYPE
Definition xqc.h:180
@ XQC_G_MONTH_DAY_TYPE
Definition xqc.h:184
@ XQC_G_YEAR_TYPE
Definition xqc.h:185
@ XQC_G_MONTH_TYPE
Definition xqc.h:183
@ XQC_ATTRIBUTE_TYPE
Definition xqc.h:165
@ XQC_DATE_TIME_TYPE
Definition xqc.h:176
@ XQC_EMPTY_TYPE
Definition xqc.h:161
@ XQC_YEAR_MONTH_DURATION_TYPE
Definition xqc.h:193
@ XQC_G_DAY_TYPE
Definition xqc.h:182
@ XQC_DOCUMENT_TYPE
Definition xqc.h:163
@ XQC_FLOAT_TYPE
Definition xqc.h:181
@ XQC_ANY_SIMPLE_TYPE
Definition xqc.h:171
@ XQC_DECIMAL_TYPE
Definition xqc.h:178
@ XQC_COMMENT_TYPE
Definition xqc.h:168
@ XQC_TIME_TYPE
Definition xqc.h:191
@ XQC_HEX_BINARY_TYPE
Definition xqc.h:187
@ XQC_NAMESPACE_TYPE
Definition xqc.h:169
@ XQC_ANY_URI_TYPE
Definition xqc.h:172
XQC_XPath1Mode
XPath 1.0 compatibility mode as defined in http://www.w3.org/TR/xquery/#static_context.
Definition xqc.h:359
@ XQC_XPATH1_0
Definition xqc.h:359
@ XQC_XPATH2_0
Definition xqc.h:359
XQC_Error
The error enumeration used by all XQC functions to designate error condition.
Definition xqc.h:55
@ XQC_INTERNAL_ERROR
An implementation specific error has occurred.
Definition xqc.h:63
@ XQC_DYNAMIC_ERROR
A dynamic error has occured while preparing or executing the query.
Definition xqc.h:73
@ XQC_UNRECOGNIZED_ENCODING
The encoding of the query has not been recognized, or is not supported by the implementation.
Definition xqc.h:69
@ XQC_PARSE_ERROR
Definition xqc.h:59
@ XQC_STATIC_ERROR
A static error has occured while preparing the query.
Definition xqc.h:71
@ XQC_NOT_NODE
Definition xqc.h:61
@ XQC_NOT_IMPLEMENTED
The implementation does not implement that function.
Definition xqc.h:64
@ XQC_INVALID_ARGUMENT
Definition xqc.h:60
@ XQC_NO_CURRENT_ITEM
Definition xqc.h:58
@ XQC_NO_ERROR
No error.
Definition xqc.h:56
@ XQC_SERIALIZATION_ERROR
A serialization error has occured while serializing the output of a query.
Definition xqc.h:74
@ XQC_END_OF_SEQUENCE
The end of the XQC_Sequence has been reached.
Definition xqc.h:57
@ XQC_TYPE_ERROR
A type error has occured while preparing or executing the query.
Definition xqc.h:72
XQC_ConstructionMode
Construction mode as defined in http://www.w3.org/TR/xquery/#static_context.
Definition xqc.h:392
@ XQC_PRESERVE_CONS
Definition xqc.h:392
@ XQC_STRIP_CONS
Definition xqc.h:392