2
+----------------------------------------------------------------------+
4
+----------------------------------------------------------------------+
5
| Copyright (c) 1997-2009 The PHP Group |
6
+----------------------------------------------------------------------+
7
| This source file is subject to version 3.01 of the PHP license, |
8
| that is bundled with this package in the file LICENSE, and is |
9
| available through the world-wide-web at the following url: |
10
| http://www.php.net/license/3_01.txt |
11
| If you did not receive a copy of the PHP license and are unable to |
12
| obtain it through the world-wide-web, please send a note to |
13
| license@php.net so we can mail you a copy immediately. |
14
+----------------------------------------------------------------------+
15
| Authors: Brad Lafountain <rodif_bl@yahoo.com> |
16
| Shane Caraveo <shane@caraveo.com> |
17
| Dmitry Stogov <dmitry@zend.com> |
18
+----------------------------------------------------------------------+
20
/* $Id: php_sdl.h,v 1.37.2.3.2.2.2.2 2008/12/31 11:15:43 sebastian Exp $ */
25
#define XSD_WHITESPACE_COLLAPSE 1
26
#define XSD_WHITESPACE_PRESERVE 1
27
#define XSD_WHITESPACE_REPLACE 1
29
typedef enum _sdlBindingType {
34
typedef enum _sdlEncodingStyle {
39
typedef enum _sdlRpcEncodingStyle {
40
SOAP_ENCODING_DEFAULT = 0,
41
SOAP_ENCODING_1_1 = 1,
43
} sdlRpcEncodingStyle;
45
typedef enum _sdlEncodingUse {
50
typedef enum _sdlTransport {
51
SOAP_TRANSPORT_HTTP = 1
55
HashTable functions; /* array of sdlFunction */
56
HashTable *types; /* array of sdlTypesPtr */
57
HashTable *elements; /* array of sdlTypesPtr */
58
HashTable *encoders; /* array of encodePtr */
59
HashTable *bindings; /* array of sdlBindings (key'd by name) */
60
HashTable *requests; /* array of sdlFunction (references) */
61
HashTable *groups; /* array of sdlTypesPtr */
64
zend_bool is_persistent;
67
typedef struct sdlCtx {
70
HashTable docs; /* array of xmlDocPtr */
72
HashTable messages; /* array of xmlNodePtr */
73
HashTable bindings; /* array of xmlNodePtr */
74
HashTable portTypes; /* array of xmlNodePtr */
75
HashTable services; /* array of xmlNodePtr */
77
HashTable *attributes; /* array of sdlAttributePtr */
78
HashTable *attributeGroups; /* array of sdlTypesPtr */
84
sdlBindingType bindingType;
85
void *bindingAttributes; /* sdlSoapBindingPtr */
88
/* Soap Binding Specfic stuff */
89
struct _sdlSoapBinding {
90
sdlEncodingStyle style;
91
sdlTransport transport; /* not implemented yet */
94
typedef struct _sdlSoapBindingFunctionHeader {
100
sdlRpcEncodingStyle encodingStyle; /* not implemented yet */
101
HashTable *headerfaults; /* array of sdlSoapBindingFunctionHeaderPtr */
102
} sdlSoapBindingFunctionHeader, *sdlSoapBindingFunctionHeaderPtr;
104
typedef struct _sdlSoapBindingFunctionFault {
107
sdlRpcEncodingStyle encodingStyle; /* not implemented yet */
108
} sdlSoapBindingFunctionFault, *sdlSoapBindingFunctionFaultPtr;
110
struct _sdlSoapBindingFunctionBody {
113
sdlRpcEncodingStyle encodingStyle; /* not implemented yet */
114
HashTable *headers; /* array of sdlSoapBindingFunctionHeaderPtr */
117
struct _sdlSoapBindingFunction {
119
sdlEncodingStyle style;
121
sdlSoapBindingFunctionBody input;
122
sdlSoapBindingFunctionBody output;
125
struct _sdlRestrictionInt {
130
struct _sdlRestrictionChar {
135
struct _sdlRestrictions {
136
HashTable *enumeration; /* array of sdlRestrictionCharPtr */
137
sdlRestrictionIntPtr minExclusive;
138
sdlRestrictionIntPtr minInclusive;
139
sdlRestrictionIntPtr maxExclusive;
140
sdlRestrictionIntPtr maxInclusive;
141
sdlRestrictionIntPtr totalDigits;
142
sdlRestrictionIntPtr fractionDigits;
143
sdlRestrictionIntPtr length;
144
sdlRestrictionIntPtr minLength;
145
sdlRestrictionIntPtr maxLength;
146
sdlRestrictionCharPtr whiteSpace;
147
sdlRestrictionCharPtr pattern;
150
typedef enum _sdlContentKind {
152
XSD_CONTENT_SEQUENCE,
155
XSD_CONTENT_GROUP_REF,
161
typedef struct _sdlContentModel sdlContentModel, *sdlContentModelPtr;
163
struct _sdlContentModel {
168
sdlTypePtr element; /* pointer to element */
169
sdlTypePtr group; /* pointer to group */
170
HashTable *content; /* array of sdlContentModel for sequnce,all,choice*/
171
char *group_ref; /* reference to group */
175
typedef enum _sdlTypeKind {
179
XSD_TYPEKIND_COMPLEX,
180
XSD_TYPEKIND_RESTRICTION,
181
XSD_TYPEKIND_EXTENSION
184
typedef enum _sdlUse {
191
typedef enum _sdlForm {
202
HashTable *elements; /* array of sdlTypePtr */
203
HashTable *attributes; /* array of sdlAttributePtr */
204
sdlRestrictionsPtr restrictions;
206
sdlContentModelPtr model;
220
typedef struct _sdlFault {
222
HashTable *details; /* array of sdlParamPtr */
223
void *bindingAttributes; /* sdlSoapBindingFunctionFaultPtr */
224
} sdlFault, *sdlFaultPtr;
226
struct _sdlFunction {
230
HashTable *requestParameters; /* array of sdlParamPtr */
231
HashTable *responseParameters; /* array of sdlParamPtr (this should only be one) */
232
struct _sdlBinding *binding;
233
void *bindingAttributes; /* sdlSoapBindingFunctionPtr */
234
HashTable *faults; /* array of sdlFaultPtr */
237
typedef struct _sdlExtraAttribute {
240
} sdlExtraAttribute, *sdlExtraAttributePtr;
242
struct _sdlAttribute {
250
HashTable *extraAttributes; /* array of sdlExtraAttribute */
255
sdlPtr get_sdl(zval *this_ptr, char *uri, long cache_wsdl TSRMLS_DC);
257
encodePtr get_encoder_from_prefix(sdlPtr sdl, xmlNodePtr data, const xmlChar *type);
258
encodePtr get_encoder(sdlPtr sdl, const char *ns, const char *type);
259
encodePtr get_encoder_ex(sdlPtr sdl, const char *nscat, int len);
261
sdlBindingPtr get_binding_from_type(sdlPtr sdl, int type);
262
sdlBindingPtr get_binding_from_name(sdlPtr sdl, char *name, char *ns);
264
void delete_sdl(void *handle);
265
void delete_sdl_impl(void *handle);