10#ifndef SAXON_PROCESSOR_H
11#define SAXON_PROCESSOR_H
13#if defined __linux__ || defined __APPLE__
20#define LoadLibrary(x) dlopen(x, RTLD_LAZY)
21#define GetProcAddress(x, y) dlsym(x, y)
28#define CVERSION_API_NO 1210
37#include "saxonc_export.h"
38#include "saxonc/DocumentBuilder.h"
39#include "saxonc/SaxonApiException.h"
42#include "saxonc/SchemaValidator.h"
43#include "saxonc/XPathProcessor.h"
44#include "saxonc/XQueryProcessor.h"
45#include "saxonc/Xslt30Processor.h"
46#include "saxonc/XsltExecutable.h"
56static std::vector<void *> myAlloc;
58void *newImpl(std::size_t sz,
char const *file,
int line);
60void *
operator new(std::size_t sz,
char const *file,
int line);
62void *
operator new[](std::size_t sz,
char const *file,
int line);
64void operator delete(
void *ptr)
noexcept;
66void operator delete(
void *, std::size_t)
noexcept;
98typedef enum eXdmType {
100 XDM_ATOMIC_VALUE = 1,
104 XDM_FUNCTION_ITEM = 5,
194 const char *getErrorMessage();
237 void setExtensionLibrary(
const char * libraryName);
247 const char *encoding =
nullptr);
257 const char *encoding =
nullptr);
314 XdmAtomicValue *makeAtomicValue(
const char *type,
const char *value);
323 XdmArray *makeArray(
char **input,
int length);
332 XdmArray *makeArray(
short *input,
int length);
341 XdmArray *makeArray(
int *input,
int length);
350 XdmArray *makeArray(
long long *input,
int length);
359 XdmArray *makeArray(
bool *input,
int length);
371 static void * makeInternalArray(
void **inputs,
int length);
380 XdmMap *makeMap(std::map<XdmAtomicValue *, XdmValue *> dataMap);
389 static XdmMap *makeMap2(std::map<std::string, XdmValue *> dataMap);
412 const char *clarkNameToEQName(
const char *name);
421 const char *EQNameToClarkName(
const char *name);
441 XdmNode *parseXmlFromString(
const char *source,
442 const char *encoding =
nullptr,
454 XdmNode *parseXmlFromFile(
const char *source,
466 XdmNode *parseXmlFromUri(
const char *source,
477 XdmValue *parseJsonFromString(
const char *source,
478 const char *encoding = NULL);
488 XdmValue *parseJsonFromFile(
const char *source);
495 int getNodeKind(int64_t obj);
502 bool isSchemaAwareProcessor();
509 bool exceptionOccurred();
517 void exceptionClear();
530 void deleteXdmValueArray(
XdmValue **arr,
int len);
558 static const char * encodeString(
const char * stringValue,
const char * toCharSetName);
563 static void release();
568 static void attachCurrentThread();
573 static void detachCurrentThread();
579 void setcwd(
const char *cwd);
585 const char *getcwd();
591 const char *getResourcesDirectory();
597 void setResourcesDirectory(
const char *dir);
628 void clearConfigurationProperties();
643 const char * getSaxonEdition();
664 if (data !=
nullptr) {
665 operator delete((
char *)data);
673 void createHeapDump(
bool live);
686 std::map<std::string, XdmValue *>
707 void initialize(
bool l);
709 void applyConfigurationProperties();
713 createParameterJArray(std::map<std::string, XdmValue *> parameters,
714 std::map<std::string, std::string> properties,
718 createParameterJArray2(std::map<std::string, XdmValue *> parameters);
720 static int64_t createJArray(
XdmValue **values,
int length);
722 static XdmValue *makeXdmValueFromRef(int64_t valueRef);
724 static XdmItem *makeXdmItemFromRef(int64_t valueRef);
726 static const char *checkException();
731 static void destroyHandle(int64_t handleRef);
736 static void getInfo();
This C header file contains a number of factory functions for running SaxonC C/C++ APIs,...
EXTERN_SAXONC SAXONC_EXPORT const char * version(sxnc_environment *environi, sxnc_processor *proc)
Get the Saxon version.
Definition SaxonCProcessor.c:6
SAXONC_EXPORT void setCatalog(sxnc_environment *environi, sxnc_processor *proc, char *cwd, char *catalogFileName)
Set a catalog file to be used in Saxon.
Definition SaxonCProcessor.c:49
SAXONC_EXPORT void setCatalogFiles(sxnc_environment *environi, sxnc_processor *proc, char *cwd, char **catalogFileName, int length)
Set multiple catalog files to be used in Saxon.
Definition SaxonCProcessor.c:67
SAXONC_EXPORT void setConfigurationProperty(sxnc_environment *environi, sxnc_processor *proc, char *name, char *value)
Set a configuration property specific to the processor in use.
Definition SaxonCProcessor.c:38
SaxonCXPath.h provides the C API for XPath processing. This file contains a set of functions to compi...
SAXONC_EXPORT const char * getStringValue(sxnc_environment *environi, sxnc_value value)
Get the string value of the item.
Definition SaxonCXPath.c:223
A document builder holds properties controlling how a Saxon document tree should be built,...
Definition DocumentBuilder.h:35
SaxonApiException.
Definition SaxonApiException.h:24
The SaxonProcessor class acts as a factory for generating XQuery, XPath, Schema and XSLT compilers.
Definition SaxonProcessor.h:117
std::string cwdV
Definition SaxonProcessor.h:683
static sxnc_environment * sxn_environ
Definition SaxonProcessor.h:655
std::map< std::string, XdmValue * > parameters
Definition SaxonProcessor.h:687
XdmValue ** createXdmValueArray(int len)
Utility method for working with SaxonC on Python - internal use only.
Definition SaxonProcessor.h:522
XdmAtomicValue ** createXdmAtomicValueArray(int len)
Utility method for working with SaxonC on Python - internal use only.
Definition SaxonProcessor.h:535
std::string cwd
Definition SaxonProcessor.h:657
std::string versionStr
Definition SaxonProcessor.h:685
bool licensei
Definition SaxonProcessor.h:692
static void deleteString(const char *data)
Utility method required for the python and PHP extensions to delete a string created in the C++ code-...
Definition SaxonProcessor.h:663
SaxonApiException * exception
Definition SaxonProcessor.h:701
static int jvmCreatedCPP
Definition SaxonProcessor.h:652
int64_t procRef
Definition SaxonProcessor.h:695
Definition SchemaValidator.h:26
An XPathProcessor represents a factory to compile, load and execute XPath expressions.
Definition XPathProcessor.h:64
An XQueryProcessor represents a factory to compile, load and execute queries.
Definition XQueryProcessor.h:25
An array in the XDM data model.
Definition XdmArray.h:27
The class XdmAtomicValue represents an item in an XPath sequence that is an atomic value.
Definition XdmAtomicValue.h:27
The class XdmFunctionItem represents a function item.
Definition XdmFunctionItem.h:26
The class XdmItem represents an item in a sequence, as defined by the XDM data model.
Definition XdmItem.h:31
A map in the XDM data model.
Definition XdmMap.h:30
This class represents a node in the XDM data model.
Definition XdmNode.h:57
An XdmValue represents a value in the XDM data model.
Definition XdmValue.h:43
An Xslt30Processor represents a factory to compile, load and execute stylesheets.
Definition Xslt30Processor.h:29
An XsltExecutable represents the compiled form of a stylesheet.
Definition XsltExecutable.h:30
sxnc_environment.
Definition SaxonCGlue.h:80