Saxon/C  1.2.1
Saxon Processor library for C/C++, PHP and Python
php_saxon.h
1 // Copyright (c) 2014 Saxonica Limited.
3 // This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
4 // If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
5 // This Source Code Form is "Incompatible With Secondary Licenses", as defined by the Mozilla Public License, v. 2.0.
7 
8 #ifndef PHP_SAXON_H
9 #define PHP_SAXON_H
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15  #include "php.h"
16  #include "php_ini.h"
17  #include "ext/standard/info.h"
18  #include "Zend/zend_exceptions.h"
19 
20 
21 
22 #include "zend_interfaces.h"
23 #include "zend_ini.h"
24 #include "zend_closures.h"
25 #include "SAPI.h"
26 #ifdef PHP_WIN32
27  #define _ALLOW_KEYWORD_MACROS
28 #endif
29 
30 #ifdef PHP_WIN32
31  #define PHP_SAXON_API __declspec(dllexport)
32  #define PHP_SAXON __declspec(dllimport)
33 //#elif define(__GNUC__) && __GNUC__ >= 4
34 //#define PHP_SAXON __attribute__ ((visibility("default")))
35 //#else
36 //#define PHP_SAXON_API
37 #endif
38 
39 #ifdef ZTS
40 #include "TSRM.h"
41 #endif
42 #ifdef __cplusplus
43 }
44 #endif
45 #include "SaxonProcessor.h"
46 #include "XdmValue.h"
47 #include "XdmItem.h"
48 #include "XdmNode.h"
49 #include "XdmAtomicValue.h"
50 /*class SaxonProcessor;
51 class XQueryProcessor;
52 class XsltProcessor;
53 class XdmValue;*/
54 
55 extern zend_module_entry saxon_module_entry;
56 #define phpext_saxon_ptr &saxon_module_entry;
57 
58 #ifdef PHP_WIN32
59 # define PHP_SAXON_API __declspec(dllexport)
60 #elif defined(__GNUC__) && __GNUC__ >= 4
61 # define PHP_SAXON_API __attribute__ ((visibility("default")))
62 #else
63 # define PHP_SAXON_API
64 #endif
65 
66 #define SAXON_G(v) ZEND_MODULE_GLOBALS_ACCESSOR(saxon, v)
67 
68 #if defined(ZTS) && defined(COMPILE_DL_SAXON)
69 ZEND_TSRMLS_CACHE_EXTERN()
70 #endif
71 
72 #if PHP_MAJOR_VERSION < 7
73 #define _ZVAL_STRING(str, len) ZVAL_STRING(str, len, 0)
74 #define _RETURN_STRING(str) RETURN_STRING(str, 0)
75 #else
76 #define _ZVAL_STRING(str, len) ZVAL_STRING(str, len)
77 #define _RETURN_STRING(str) RETURN_STRING(str)
78 #endif
79 
80 
81 
82 
83 struct zvalArr {
84  zval * _val;
85 };
86 
87 struct saxonProcessor_object {
88 
89  SaxonProcessor * saxonProcessor;
90  zend_object std;
91 };
92 
93 struct xsltProcessor_object {
94 
95  XsltProcessor *xsltProcessor;
96  zend_object std;
97 };
98 
100 
101  Xslt30Processor *xslt30Processor;
102  zend_object std;
103 };
104 
105 struct xqueryProcessor_object {
106  XQueryProcessor *xqueryProcessor;
107  zend_object std;
108 };
109 
110 struct xpathProcessor_object {
111 
112  XPathProcessor *xpathProcessor;
113  zend_object std;
114 };
115 
116 struct schemaValidator_object {
117 
118  SchemaValidator * schemaValidator;
119  zend_object std;
120 };
121 
122 struct xdmValue_object {
123 
124  XdmValue * xdmValue;
125  zend_object std;
126 };
127 
128 struct xdmItem_object {
129 
130  XdmItem * xdmItem;
131  zend_object std;
132 };
133 
134 struct xdmNode_object {
135 
136  XdmNode * xdmNode;
137  zend_object std;
138 };
139 
140 struct xdmAtomicValue_object {
141 
142  XdmAtomicValue * xdmAtomicValue;
143  zend_object std;
144 };
145 
146 
147 #define PHP_SAXON_EXTNAME "Saxon/C"
148 #define PHP_SAXON_EXTVER "1.2.0"
149 
150 /*
151  * Class: com_saxonica_functions_extfn_PhpCall_PhpFunctionCall
152  * Method: _phpCall
153  * Signature: ([Ljava/lang/String;[Ljava/lang/String;)Ljava/lang/Object;
154  */
155 
156 jobject JNICALL phpNativeCall
157  (JNIEnv *env, jobject object, jstring funcName, jobjectArray arguments, jobjectArray arrayTypes);
158 
159  PHP_MSHUTDOWN_FUNCTION(saxon);
160  PHP_MINFO_FUNCTION(saxon);
161  PHP_MINIT_FUNCTION(saxon);
162 
163  PHP_METHOD(SaxonProcessor, __construct);
164  PHP_METHOD(SaxonProcessor, __destruct);
165 
166  PHP_METHOD(SaxonProcessor, createAtomicValue);
167  PHP_METHOD(SaxonProcessor, parseXmlFromString);
168  PHP_METHOD(SaxonProcessor, parseXmlFromFile);
169  PHP_METHOD(SaxonProcessor, setcwd);
170 // PHP_METHOD(SaxonProcessor, importDocument);
171  PHP_METHOD(SaxonProcessor, setResourcesDirectory);
172  PHP_METHOD(SaxonProcessor, setCatalog);
173  PHP_METHOD(SaxonProcessor, registerPHPFunctions);
174  // PHP_METHOD(SaxonProcessor, getXslMessages);
175  PHP_METHOD(SaxonProcessor, setConfigurationProperty);
176  PHP_METHOD(SaxonProcessor, newXsltProcessor);
177  PHP_METHOD(SaxonProcessor, newXslt30Processor);
178  PHP_METHOD(SaxonProcessor, newXQueryProcessor);
179  PHP_METHOD(SaxonProcessor, newXPathProcessor);
180  PHP_METHOD(SaxonProcessor, newSchemaValidator);
181  PHP_METHOD(SaxonProcessor, version);
182  PHP_METHOD(SaxonProcessor, isSchemaAware);
183  PHP_METHOD(SaxonProcessor, release);
184 
185 
186 
187 
188  //PHP_METHOD(XsltProcessor, __construct);
189  PHP_METHOD(XsltProcessor, __destruct);
190  PHP_METHOD(XsltProcessor, transformFileToFile);
191  PHP_METHOD(XsltProcessor, transformFileToString);
192  PHP_METHOD(XsltProcessor, transformFileToValue);
193  PHP_METHOD(XsltProcessor, transformToString);
194  PHP_METHOD(XsltProcessor, transformToValue);
195  PHP_METHOD(XsltProcessor, transformToFile);
196  PHP_METHOD(XsltProcessor, compileFromFile);
197  PHP_METHOD(XsltProcessor, compileFromValue);
198  PHP_METHOD(XsltProcessor, compileFromString);
199  PHP_METHOD(XsltProcessor, compileFromStringAndSave);
200  PHP_METHOD(XsltProcessor, compileFromFileAndSave);
201  PHP_METHOD(XsltProcessor, setOutputFile);
202  PHP_METHOD(XsltProcessor, setSourceFromFile);
203  PHP_METHOD(XsltProcessor, setSourceFromXdmValue);
204  PHP_METHOD(XsltProcessor, setJustInTimeCompilation);
205  PHP_METHOD(XsltProcessor, setParameter);
206  PHP_METHOD(XsltProcessor, setProperty);
207  PHP_METHOD(XsltProcessor, clearParameters);
208  PHP_METHOD(XsltProcessor, clearProperties);
209  PHP_METHOD(XsltProcessor, exceptionClear);
210  PHP_METHOD(XsltProcessor, exceptionOccurred);
211  PHP_METHOD(XsltProcessor, getErrorCode);
212  PHP_METHOD(XsltProcessor, getErrorMessage);
213  PHP_METHOD(XsltProcessor, getExceptionCount);
214  PHP_METHOD(XsltProcessor, getXslMessages);
215 
216 
217  PHP_METHOD(Xslt30Processor, __destruct);
218  PHP_METHOD(Xslt30Processor, callFunctionReturningValue);
219  PHP_METHOD(Xslt30Processor, callFunctionReturningString);
220  PHP_METHOD(Xslt30Processor, callFunctionReturningFile);
221  PHP_METHOD(Xslt30Processor, callTemplateReturningValue);
222  PHP_METHOD(Xslt30Processor, callTemplateReturningString);
223  PHP_METHOD(Xslt30Processor, callTemplateReturningFile);
224  PHP_METHOD(Xslt30Processor, applyTemplatesReturningValue);
225  PHP_METHOD(Xslt30Processor, applyTemplatesReturningString);
226  PHP_METHOD(Xslt30Processor, applyTemplatesReturningFile);
227  PHP_METHOD(Xslt30Processor, addPackages);
228  PHP_METHOD(Xslt30Processor, setInitialTemplateParameters);
229  PHP_METHOD(Xslt30Processor, setInitialMatchSelection);
230  PHP_METHOD(Xslt30Processor, setInitialMatchSelectionAsFile);
231  PHP_METHOD(Xslt30Processor, setGlobalContextItem);
232  PHP_METHOD(Xslt30Processor, setGlobalContextFromFile);
233  PHP_METHOD(Xslt30Processor, transformFileToFile);
234  PHP_METHOD(Xslt30Processor, transformFileToString);
235  PHP_METHOD(Xslt30Processor, transformFileToValue);
236  PHP_METHOD(Xslt30Processor, transformToString);
237  PHP_METHOD(Xslt30Processor, transformToValue);
238  PHP_METHOD(Xslt30Processor, transformToFile);
239  PHP_METHOD(Xslt30Processor, compileFromFile);
240  PHP_METHOD(Xslt30Processor, compileFromValue);
241  PHP_METHOD(Xslt30Processor, compileFromString);
242  PHP_METHOD(Xslt30Processor, compileFromStringAndSave);
243  PHP_METHOD(Xslt30Processor, compileFromFileAndSave);
244  PHP_METHOD(Xslt30Processor, compileFromAssociatedFile);
245  PHP_METHOD(Xslt30Processor, setOutputFile);
246  PHP_METHOD(Xslt30Processor, setJustInTimeCompilation);
247  PHP_METHOD(Xslt30Processor, setResultAsRawValue);
248  PHP_METHOD(Xslt30Processor, setParameter);
249  PHP_METHOD(Xslt30Processor, setProperty);
250  PHP_METHOD(Xslt30Processor, clearParameters);
251  PHP_METHOD(Xslt30Processor, clearProperties);
252  PHP_METHOD(Xslt30Processor, exceptionClear);
253  PHP_METHOD(Xslt30Processor, exceptionOccurred);
254  PHP_METHOD(Xslt30Processor, getErrorCode);
255  PHP_METHOD(Xslt30Processor, getErrorMessage);
256  PHP_METHOD(Xslt30Processor, getExceptionCount);
257  PHP_METHOD(Xslt30Processor, getXslMessages);
258 
259 
260 
261  // PHP_METHOD(XQueryProcesor, __construct);
262  PHP_METHOD(XQueryProcesor, __destruct);
263  PHP_METHOD(XQueryProcessor, setQueryContent);
264  PHP_METHOD(XQueryProcessor, setContextItem);
265  PHP_METHOD(XQueryProcessor, setContextItemFromFile);
266  PHP_METHOD(XQueryProcessor, setParameter);
267  PHP_METHOD(XQueryProcessor, setProperty);
268  PHP_METHOD(XQueryProcessor, clearParameters);
269  PHP_METHOD(XQueryProcessor, clearProperties);
270  // PHP_METHOD(XQueryProcessor, setOutputFile);
271  PHP_METHOD(XQueryProcessor, runQueryToValue);
272  PHP_METHOD(XQueryProcessor, runQueryToString);
273  PHP_METHOD(XQueryProcessor, runQueryToFile);
274  PHP_METHOD(XQueryProcessor, setQueryFile);
275  PHP_METHOD(XQueryProcessor, setQueryBaseURI);
276  PHP_METHOD(XQueryProcessor, declareNamespace);
277  PHP_METHOD(XQueryProcessor, exceptionClear);
278  PHP_METHOD(XQueryProcessor, exceptionOccurred);
279  PHP_METHOD(XQueryProcessor, getErrorCode);
280  PHP_METHOD(XQueryProcessor, getErrorMessage);
281  PHP_METHOD(XQueryProcessor, getExceptionCount);
282 
283  // PHP_METHOD(XPathProcessor, __construct);
284  PHP_METHOD(XPathProcessor, __destruct);
285  PHP_METHOD(XPathProcessor, setContextItem);
286  PHP_METHOD(XPathProcessor, setContextFile);
287  PHP_METHOD(XQueryProcessor, setBaseURI);
288  PHP_METHOD(XPathProcessor, effectiveBooleanValue);
289  PHP_METHOD(XPathProcessor, evaluate);
290  PHP_METHOD(XPathProcessor, evaluateSingle);
291  PHP_METHOD(XPathProcessor, declareNamespace);
292  PHP_METHOD(XPathProcessor, setBackwardsCompatible);
293  PHP_METHOD(XPathProcessor, setCaching);
294  PHP_METHOD(XPathProcessor, importSchemaNamespace);
295  PHP_METHOD(XPathProcessor, setParameter);
296  PHP_METHOD(XPathProcessor, setProperty);
297  PHP_METHOD(XPathProcessor, clearParameters);
298  PHP_METHOD(XPathProcessor, clearProperties);
299  PHP_METHOD(XPathProcessor, exceptionClear);
300  PHP_METHOD(XPathProcessor, exceptionOccurred);
301  PHP_METHOD(XPathProcessor, getErrorCode);
302  PHP_METHOD(XPathProcessor, getErrorMessage);
303  PHP_METHOD(XPathProcessor, getExceptionCount);
304 
305 
306  // PHP_METHOD(SchemaValidator, __construct);
307  PHP_METHOD(SchemaValidator, __destruct);
308  PHP_METHOD(SchemaValidator, setSourceNode);
309  PHP_METHOD(SchemaValidator, setOutputFile);
310  PHP_METHOD(SchemaValidator, registerSchemaFromFile);
311  PHP_METHOD(SchemaValidator, registerSchemaFromString);
312  PHP_METHOD(SchemaValidator, validate);
313  PHP_METHOD(SchemaValidator, validateToNode);
314  PHP_METHOD(SchemaValidator, getValidationReport);
315  PHP_METHOD(SchemaValidator, setParameter);
316  PHP_METHOD(SchemaValidator, setProperty);
317  PHP_METHOD(SchemaValidator, clearParameters);
318  PHP_METHOD(SchemaValidator, clearProperties);
319  PHP_METHOD(SchemaValidator, exceptionClear);
320  PHP_METHOD(SchemaValidator, exceptionOccurred);
321  PHP_METHOD(SchemaValidator, getErrorCode);
322  PHP_METHOD(SchemaValidator, getErrorMessage);
323  PHP_METHOD(SchemaValidator, getExceptionCount);
324 
325 
326 /* ============== PHP Interface of XdmValue =============== */
327 
328  PHP_METHOD(XdmValue, __construct);
329  PHP_METHOD(XdmValue, __destruct);
330  PHP_METHOD(XdmValue, __toString);
331  PHP_METHOD(XdmValue, getHead);
332  PHP_METHOD(XdmValue, itemAt);
333  PHP_METHOD(XdmValue, size);
334  PHP_METHOD(XdmValue, addXdmItem);
335 
336 
337 /* ============== PHP Interface of XdmItem =============== */
338 
339  PHP_METHOD(XdmItem, __construct);
340  PHP_METHOD(XdmItem, __destruct);
341  PHP_METHOD(XdmItem, __toString);
342  PHP_METHOD(XdmItem, getStringValue);
343  PHP_METHOD(XdmItem, isAtomic);
344  PHP_METHOD(XdmItem, isNode);
345  PHP_METHOD(XdmItem, getAtomicValue);
346  PHP_METHOD(XdmItem, getNodeValue);
347 
348 /* ============== PHP Interface of XdmNode =============== */
349 
350  PHP_METHOD(XdmNode, __construct);
351  PHP_METHOD(XdmNode, __destruct);
352  PHP_METHOD(XdmNode, __toString);
353  PHP_METHOD(XdmNode, getStringValue);
354  PHP_METHOD(XdmNode, getNodeKind);
355  PHP_METHOD(XdmNode, getNodeName);
356  PHP_METHOD(XdmNode, isAtomic);
357  PHP_METHOD(XdmNode, getChildCount);
358  PHP_METHOD(XdmNode, getAttributeCount);
359  PHP_METHOD(XdmNode, getChildNode);
360  PHP_METHOD(XdmNode, getParent);
361  PHP_METHOD(XdmNode, getAttributeNode);
362  PHP_METHOD(XdmNode, getAttributeValue);
363  PHP_METHOD(XdmNode, getTypedValue);
364 
365 
366 /* ============== PHP Interface of XdmAtomicValue =============== */
367 
368  PHP_METHOD(XdmAtomicValue, __construct);
369  PHP_METHOD(XdmAtomicValue, __destruct);
370  PHP_METHOD(XdmAtomicValue, __toString);
371  PHP_METHOD(XdmAtomicValue, getStringValue);
372  PHP_METHOD(XdmAtomicValue, getBooleanValue);
373  PHP_METHOD(XdmAtomicValue, getDoubleValue);
374  PHP_METHOD(XdmAtomicValue, getLongValue);
375  PHP_METHOD(XdmAtomicValue, getPrimitiveTypeName);
376  PHP_METHOD(XdmAtomicValue, isAtomic);
377 
378 
379 #endif /* PHP_SAXON_H */
380 
381 
382 
383 
384 
385 
386 
387 
388 
389 
390 
391 
392 
393 
394 
395 
396 
Definition: php5_saxon.h:78
Definition: XQueryProcessor.h:26
Definition: php5_saxon.h:98
Definition: XdmAtomicValue.h:20
Definition: php5_saxon.h:58
Definition: Xslt30Processor.h:24
Definition: XdmNode.h:21
Definition: php5_saxon.h:73
Definition: SchemaValidator.h:26
Definition: XdmValue.h:46
Definition: XsltProcessor.h:24
Definition: php5_saxon.h:54
Definition: SaxonProcessor.h:296
Definition: XdmItem.h:15
Definition: php5_saxon.h:93
Definition: php5_saxon.h:68
Definition: php5_saxon.h:83
Definition: XPathProcessor.h:26
Definition: php5_saxon.h:63
Definition: php5_saxon.h:88
Definition: php5_saxon.h:103