Annotation of embedaddon/php/ext/soap/php_sdl.h, revision 1.1.1.1
1.1 misho 1: /*
2: +----------------------------------------------------------------------+
3: | PHP Version 5 |
4: +----------------------------------------------------------------------+
5: | Copyright (c) 1997-2012 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: +----------------------------------------------------------------------+
19: */
20: /* $Id: php_sdl.h 321634 2012-01-01 13:15:04Z felipe $ */
21:
22: #ifndef PHP_SDL_H
23: #define PHP_SDL_H
24:
25: #define XSD_WHITESPACE_COLLAPSE 1
26: #define XSD_WHITESPACE_PRESERVE 1
27: #define XSD_WHITESPACE_REPLACE 1
28:
29: typedef enum _sdlBindingType {
30: BINDING_SOAP = 1,
31: BINDING_HTTP = 2
32: } sdlBindingType;
33:
34: typedef enum _sdlEncodingStyle {
35: SOAP_RPC = 1,
36: SOAP_DOCUMENT = 2
37: } sdlEncodingStyle;
38:
39: typedef enum _sdlRpcEncodingStyle {
40: SOAP_ENCODING_DEFAULT = 0,
41: SOAP_ENCODING_1_1 = 1,
42: SOAP_ENCODING_1_2 = 2
43: } sdlRpcEncodingStyle;
44:
45: typedef enum _sdlEncodingUse {
46: SOAP_ENCODED = 1,
47: SOAP_LITERAL = 2
48: } sdlEncodingUse;
49:
50: typedef enum _sdlTransport {
51: SOAP_TRANSPORT_HTTP = 1
52: } sdlTransport;
53:
54: struct _sdl {
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 */
62: char *target_ns;
63: char *source;
64: zend_bool is_persistent;
65: };
66:
67: typedef struct sdlCtx {
68: sdlPtr sdl;
69:
70: HashTable docs; /* array of xmlDocPtr */
71:
72: HashTable messages; /* array of xmlNodePtr */
73: HashTable bindings; /* array of xmlNodePtr */
74: HashTable portTypes; /* array of xmlNodePtr */
75: HashTable services; /* array of xmlNodePtr */
76:
77: HashTable *attributes; /* array of sdlAttributePtr */
78: HashTable *attributeGroups; /* array of sdlTypesPtr */
79: php_stream_context *context;
80: zval *old_header;
81: } sdlCtx;
82:
83: struct _sdlBinding {
84: char *name;
85: char *location;
86: sdlBindingType bindingType;
87: void *bindingAttributes; /* sdlSoapBindingPtr */
88: };
89:
90: /* Soap Binding Specfic stuff */
91: struct _sdlSoapBinding {
92: sdlEncodingStyle style;
93: sdlTransport transport; /* not implemented yet */
94: };
95:
96: typedef struct _sdlSoapBindingFunctionHeader {
97: char *name;
98: char *ns;
99: sdlEncodingUse use;
100: sdlTypePtr element;
101: encodePtr encode;
102: sdlRpcEncodingStyle encodingStyle; /* not implemented yet */
103: HashTable *headerfaults; /* array of sdlSoapBindingFunctionHeaderPtr */
104: } sdlSoapBindingFunctionHeader, *sdlSoapBindingFunctionHeaderPtr;
105:
106: typedef struct _sdlSoapBindingFunctionFault {
107: char *ns;
108: sdlEncodingUse use;
109: sdlRpcEncodingStyle encodingStyle; /* not implemented yet */
110: } sdlSoapBindingFunctionFault, *sdlSoapBindingFunctionFaultPtr;
111:
112: struct _sdlSoapBindingFunctionBody {
113: char *ns;
114: sdlEncodingUse use;
115: sdlRpcEncodingStyle encodingStyle; /* not implemented yet */
116: HashTable *headers; /* array of sdlSoapBindingFunctionHeaderPtr */
117: };
118:
119: struct _sdlSoapBindingFunction {
120: char *soapAction;
121: sdlEncodingStyle style;
122:
123: sdlSoapBindingFunctionBody input;
124: sdlSoapBindingFunctionBody output;
125: };
126:
127: struct _sdlRestrictionInt {
128: int value;
129: char fixed;
130: };
131:
132: struct _sdlRestrictionChar {
133: char *value;
134: char fixed;
135: };
136:
137: struct _sdlRestrictions {
138: HashTable *enumeration; /* array of sdlRestrictionCharPtr */
139: sdlRestrictionIntPtr minExclusive;
140: sdlRestrictionIntPtr minInclusive;
141: sdlRestrictionIntPtr maxExclusive;
142: sdlRestrictionIntPtr maxInclusive;
143: sdlRestrictionIntPtr totalDigits;
144: sdlRestrictionIntPtr fractionDigits;
145: sdlRestrictionIntPtr length;
146: sdlRestrictionIntPtr minLength;
147: sdlRestrictionIntPtr maxLength;
148: sdlRestrictionCharPtr whiteSpace;
149: sdlRestrictionCharPtr pattern;
150: };
151:
152: typedef enum _sdlContentKind {
153: XSD_CONTENT_ELEMENT,
154: XSD_CONTENT_SEQUENCE,
155: XSD_CONTENT_ALL,
156: XSD_CONTENT_CHOICE,
157: XSD_CONTENT_GROUP_REF,
158: XSD_CONTENT_GROUP,
159: XSD_CONTENT_ANY
160: } sdlContentKind;
161:
162:
163: typedef struct _sdlContentModel sdlContentModel, *sdlContentModelPtr;
164:
165: struct _sdlContentModel {
166: sdlContentKind kind;
167: int min_occurs;
168: int max_occurs;
169: union {
170: sdlTypePtr element; /* pointer to element */
171: sdlTypePtr group; /* pointer to group */
172: HashTable *content; /* array of sdlContentModel for sequnce,all,choice*/
173: char *group_ref; /* reference to group */
174: } u;
175: };
176:
177: typedef enum _sdlTypeKind {
178: XSD_TYPEKIND_SIMPLE,
179: XSD_TYPEKIND_LIST,
180: XSD_TYPEKIND_UNION,
181: XSD_TYPEKIND_COMPLEX,
182: XSD_TYPEKIND_RESTRICTION,
183: XSD_TYPEKIND_EXTENSION
184: } sdlTypeKind;
185:
186: typedef enum _sdlUse {
187: XSD_USE_DEFAULT,
188: XSD_USE_OPTIONAL,
189: XSD_USE_PROHIBITED,
190: XSD_USE_REQUIRED
191: } sdlUse;
192:
193: typedef enum _sdlForm {
194: XSD_FORM_DEFAULT,
195: XSD_FORM_QUALIFIED,
196: XSD_FORM_UNQUALIFIED
197: } sdlForm;
198:
199: struct _sdlType {
200: sdlTypeKind kind;
201: char *name;
202: char *namens;
203: char nillable;
204: HashTable *elements; /* array of sdlTypePtr */
205: HashTable *attributes; /* array of sdlAttributePtr */
206: sdlRestrictionsPtr restrictions;
207: encodePtr encode;
208: sdlContentModelPtr model;
209: char *def;
210: char *fixed;
211: char *ref;
212: sdlForm form;
213: };
214:
215: struct _sdlParam {
216: int order;
217: sdlTypePtr element;
218: encodePtr encode;
219: char *paramName;
220: };
221:
222: typedef struct _sdlFault {
223: char *name;
224: HashTable *details; /* array of sdlParamPtr */
225: void *bindingAttributes; /* sdlSoapBindingFunctionFaultPtr */
226: } sdlFault, *sdlFaultPtr;
227:
228: struct _sdlFunction {
229: char *functionName;
230: char *requestName;
231: char *responseName;
232: HashTable *requestParameters; /* array of sdlParamPtr */
233: HashTable *responseParameters; /* array of sdlParamPtr (this should only be one) */
234: struct _sdlBinding *binding;
235: void *bindingAttributes; /* sdlSoapBindingFunctionPtr */
236: HashTable *faults; /* array of sdlFaultPtr */
237: };
238:
239: typedef struct _sdlExtraAttribute {
240: char *ns;
241: char *val;
242: } sdlExtraAttribute, *sdlExtraAttributePtr;
243:
244: struct _sdlAttribute {
245: char *name;
246: char *namens;
247: char *ref;
248: char *def;
249: char *fixed;
250: sdlForm form;
251: sdlUse use;
252: HashTable *extraAttributes; /* array of sdlExtraAttribute */
253: encodePtr encode;
254: };
255:
256:
257: sdlPtr get_sdl(zval *this_ptr, char *uri, long cache_wsdl TSRMLS_DC);
258:
259: encodePtr get_encoder_from_prefix(sdlPtr sdl, xmlNodePtr data, const xmlChar *type);
260: encodePtr get_encoder(sdlPtr sdl, const char *ns, const char *type);
261: encodePtr get_encoder_ex(sdlPtr sdl, const char *nscat, int len);
262:
263: sdlBindingPtr get_binding_from_type(sdlPtr sdl, int type);
264: sdlBindingPtr get_binding_from_name(sdlPtr sdl, char *name, char *ns);
265:
266: void delete_sdl(void *handle);
267: void delete_sdl_impl(void *handle);
268:
269: void sdl_set_uri_credentials(sdlCtx *ctx, char *uri TSRMLS_DC);
270: void sdl_restore_uri_credentials(sdlCtx *ctx TSRMLS_DC);
271:
272: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>