SaxonC 12.7.0
Saxon Processor library for C/C++, PHP and Python
Loading...
Searching...
No Matches
Xslt30Processor.h
1
2// Copyright (c) 2022 - 2025 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_XSLT30_H
11#define SAXON_XSLT30_H
12
13#include "saxonc_export.h"
14#include "saxonc/SaxonProcessor.h"
15//#include "XdmValue.h"
16#include <string>
17
18class SaxonProcessor;
20class XsltExecutable;
21class XdmValue;
22class XdmItem;
23class XdmNode;
24
29class SAXONC_EXPORT Xslt30Processor {
30
31 friend class XsltExecutable;
32
33public:
40
47 Xslt30Processor(SaxonProcessor *proc, std::string cwd = "");
48
53 Xslt30Processor(const Xslt30Processor &other);
54
56
62
71 void setcwd(const char *cwd);
72
73
80 const char * getcwd();
81
91 void setBaseOutputURI(const char *baseURI);
92
110 void setJustInTimeCompilation(bool jit);
111
119 bool getJustInTimeCompilation();
120
126 void setTargetEdition(const char *edition);
127
136 void setXsltLanguageVersion(const char *version);
137
154 void setFastCompilation(bool fast);
155
163 void setRelocatable(bool relocatable);
164
177 void setParameter(const char *name, XdmValue *value);
178
184 XdmValue *getParameter(const char *name);
185
192 bool removeParameter(const char *name);
193
201 std::map<std::string, XdmValue *> &getParameters();
202
210 void clearParameters(bool deleteValues = false);
211
212
216 char **createCharArray(int len) { return (new char *[len]); }
217
224 void deleteXdmValueArray(XdmValue **arr, int len) {
225 delete[] arr;
226 }
227
237 void transformFileToFile(const char *sourcefile, const char *stylesheetfile,
238 const char *outputfile);
239
251 const char *transformFileToString(const char *sourcefile,
252 const char *stylesheetfile);
253
263 XdmValue *transformFileToValue(const char *sourcefile,
264 const char *stylesheetfile);
265
275 void importPackage(const char *packageFile);
276
289 XsltExecutable *compileFromFile(const char *stylesheet);
290
305 XsltExecutable *compileFromString(const char *stylesheet,
306 const char *encoding = nullptr);
307
320 XsltExecutable *compileFromAssociatedFile(const char *sourceFile);
321
330 void compileFromStringAndSave(const char *stylesheet, const char *filename,
331 const char *encoding = nullptr);
332
340 void compileFromFileAndSave(const char *xslFilename, const char *filename);
341
349 void compileFromXdmNodeAndSave(XdmNode *node, const char *filename);
350
363 XsltExecutable *compileFromXdmNode(XdmNode *node);
364
371 bool exceptionOccurred();
372
380 SaxonApiException *getException();
381
386 void exceptionClear();
387
394 const char *getErrorMessage();
395
403 const char *getErrorCode();
404
405private:
406 void createException(const char *message = nullptr);
407
417 void setProperty(const char *name, const char *value);
418
423 std::map<std::string, std::string> &getProperties();
424
428 void clearProperties();
429
430 SaxonProcessor *proc;
431 int64_t cppXT;
432 int64_t importPackageValue;
433 std::string cwdXT;
434 bool jitCompilation;
435 std::map<std::string, XdmValue *>
436 parameters;
438 std::map<std::string, std::string>
439 properties;
441 SaxonApiException *exception;
442};
443
444#endif /* SAXON_XSLT30_H */
SAXONC_EXPORT void setParameter(sxnc_parameter **parameters, int *parLen, int *parCap, const char *name, sxnc_value *value)
Set a parameter.
Definition SaxonCGlue.c:160
SAXONC_EXPORT int64_t getParameter(sxnc_parameter *parameters, int parLen, const char *name)
Get a parameter from the list.
Definition SaxonCGlue.c:136
SAXONC_EXPORT void setProperty(sxnc_property **properties, int *propLen, int *propCap, const char *name, const char *value)
Set a property.
Definition SaxonCGlue.c:186
EXTERN_SAXONC SAXONC_EXPORT const char * version(sxnc_environment *environi, sxnc_processor *proc)
Get the Saxon version.
Definition SaxonCProcessor.c:6
SaxonApiException.
Definition SaxonApiException.h:24
The SaxonProcessor class acts as a factory for generating XQuery, XPath, Schema and XSLT compilers.
Definition SaxonProcessor.h:117
The class XdmItem represents an item in a sequence, as defined by the XDM data model.
Definition XdmItem.h:31
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
char ** createCharArray(int len)
Utility method for working with SaxonC on Python - internal use only.
Definition Xslt30Processor.h:216
SaxonProcessor * getSaxonProcessor()
Get the SaxonProcessor object.
Definition Xslt30Processor.h:61
void deleteXdmValueArray(XdmValue **arr, int len)
Utility method for Python API - internal use only.
Definition Xslt30Processor.h:224
An XsltExecutable represents the compiled form of a stylesheet.
Definition XsltExecutable.h:30