SaxonC 12.4
Saxon Processor library for C/C++, PHP and Python
Loading...
Searching...
No Matches
XQueryProcessor.h
1
2// Copyright (c) 2022 - 2023 Saxonica Limited.
3// This Source Code Form is subject to the terms of the Mozilla Public License,
4// v. 2.0. If a copy of the MPL was not distributed with this file, You can
5// obtain one at http://mozilla.org/MPL/2.0/. This Source Code Form is
6// "Incompatible With Secondary Licenses", as defined by the Mozilla Public
7// License, v. 2.0.
9
10#ifndef SAXON_XQUERY_H
11#define SAXON_XQUERY_H
12
13#include "SaxonProcessor.h"
14#include <string>
15
16class SaxonProcessor;
18class XdmValue;
19class XdmItem;
20
25public:
28
30
34 XQueryProcessor(SaxonProcessor *p, std::string cwd = "");
35
40 XQueryProcessor(const XQueryProcessor &other);
41
47
49
51
55 void setContextItem(XdmItem *value);
56
60 void setOutputFile(const char *outfile);
61
65 void setContextItemFromFile(const char *filename);
66
75 void setParameter(const char *name, XdmValue *value);
76
78
83 void setLanguageVersion(const char *version);
84
86
96 void setStreaming(bool option);
97
99
106 bool isStreaming();
107
109
114 bool removeParameter(const char *name);
115
117
127 void setProperty(const char *name, const char *value);
128
130
136 void clearParameters(bool deleteValues = false);
137
139 void clearProperties();
140
142
151 void setUpdating(bool updating);
152
154
164 void executeQueryToFile(const char *infilename, const char *ofilename,
165 const char *query, const char *encoding = nullptr);
166
168
176 XdmValue *executeQueryToValue(const char *infilename, const char *query,
177 const char *encoding = nullptr);
178
180
188 const char *executeQueryToString(const char *infilename, const char *query,
189 const char *encoding = nullptr);
190
192
199
207 const char *runQueryToString();
208
210
216 void runQueryToFile();
217
219
236 void declareNamespace(const char *prefix, const char *uri);
237
239
242 std::map<std::string, XdmValue *> &getParameters();
243
245
248 std::map<std::string, std::string> &getProperties();
249
251
254 void setQueryFile(const char *filename);
255
257
260 void setQueryContent(const char *content);
261
263
267 void setQueryBaseURI(const char *baseURI);
268
272 void setcwd(const char *cwd);
273
275
279 const char *checkException();
280
287 bool exceptionOccurred();
288
290 void exceptionClear();
291
293
297 const char *getErrorMessage();
298
300
305 const char *getErrorCode();
306
308
314
315private:
316 void createException(const char *message = nullptr);
317 bool streaming;
318 std::string cwdXQ;
319 SaxonProcessor *proc;
320
321 int64_t cppXQ;
322 std::map<std::string, XdmValue *>
323 parameters;
325 std::map<std::string, std::string>
326 properties;
328 SaxonApiException *exception;
329};
330
331#endif /* SAXON_XQUERY_H */
Definition SaxonApiException.h:23
Definition SaxonProcessor.h:117
Definition XQueryProcessor.h:24
void setOutputFile(const char *outfile)
Definition XQueryProcessor.cpp:139
void setcwd(const char *cwd)
Definition XQueryProcessor.cpp:206
void executeQueryToFile(const char *infilename, const char *ofilename, const char *query, const char *encoding=nullptr)
Perform the Query to file.
Definition XQueryProcessor.cpp:225
void setQueryBaseURI(const char *baseURI)
Set the static base URI for the query.
Definition XQueryProcessor.cpp:212
void clearParameters(bool deleteValues=false)
Clear parameter values set.
Definition XQueryProcessor.cpp:183
void setQueryFile(const char *filename)
Compile a query supplied as a file name.
Definition XQueryProcessor.cpp:323
const char * checkException()
Check for exception thrown.
Definition XQueryProcessor.cpp:374
void setStreaming(bool option)
Say whether the query should be compiled and evaluated to use streaming.
Definition XQueryProcessor.cpp:328
bool exceptionOccurred()
Definition XQueryProcessor.cpp:356
void setParameter(const char *name, XdmValue *value)
Definition XQueryProcessor.cpp:146
void runQueryToFile()
Execute the Query cached to file.
Definition XQueryProcessor.cpp:319
const char * getErrorCode()
Get the first error code if there are any errors.
Definition XQueryProcessor.cpp:360
void declareNamespace(const char *prefix, const char *uri)
Declare a namespace binding.
Definition XQueryProcessor.cpp:108
void setContextItem(XdmItem *value)
Set the initial context item for the query.
Definition XQueryProcessor.cpp:101
const char * executeQueryToString(const char *infilename, const char *query, const char *encoding=nullptr)
Perform the Query to a string representation.
Definition XQueryProcessor.cpp:283
XdmValue * runQueryToValue()
Execute the Query cached.
Definition XQueryProcessor.cpp:315
std::map< std::string, std::string > & getProperties()
Get all properties as a std::map.
Definition XQueryProcessor.cpp:93
void clearProperties()
Clear property values set.
Definition XQueryProcessor.cpp:201
void exceptionClear()
Clear any exception thrown.
Definition XQueryProcessor.cpp:348
void setLanguageVersion(const char *version)
Set XQuery language version.
Definition XQueryProcessor.cpp:339
XdmValue * executeQueryToValue(const char *infilename, const char *query, const char *encoding=nullptr)
Perform the Query to a XdmValue representation.
Definition XQueryProcessor.cpp:253
void setProperty(const char *name, const char *value)
Set a property specific to the processor in use.
Definition XQueryProcessor.cpp:170
void setUpdating(bool updating)
Say whether the query is allowed to be updating.
Definition XQueryProcessor.cpp:216
const char * runQueryToString()
Definition XQueryProcessor.cpp:311
std::map< std::string, XdmValue * > & getParameters()
Get all parameters as a std::map.
Definition XQueryProcessor.cpp:88
void setContextItemFromFile(const char *filename)
Definition XQueryProcessor.cpp:132
void setQueryContent(const char *content)
Compile a query supplied as a string.
Definition XQueryProcessor.cpp:343
bool isStreaming()
Ask whether the streaming option has been set.
Definition XQueryProcessor.cpp:337
bool removeParameter(const char *name)
Remove a parameter (name, value) pair.
Definition XQueryProcessor.cpp:164
const char * getErrorMessage()
Get the first error message if there are any errors.
Definition XQueryProcessor.cpp:367
SaxonApiException * getException()
Get the SaxonApiException object created when we have an error.
Definition XQueryProcessor.cpp:383
XQueryProcessor()
Default constructor.
Definition XQueryProcessor.cpp:14
XQueryProcessor * clone()
Definition XQueryProcessor.cpp:83
Definition XdmItem.h:30
Definition XdmValue.h:42