Annotation of embedaddon/php/ext/soap/php_sdl.h, revision 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>