123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269 |
- /*
- +----------------------------------------------------------------------+
- | Copyright (c) The PHP Group |
- +----------------------------------------------------------------------+
- | This source file is subject to version 3.01 of the PHP license, |
- | that is bundled with this package in the file LICENSE, and is |
- | available through the world-wide-web at the following url: |
- | https://www.php.net/license/3_01.txt |
- | If you did not receive a copy of the PHP license and are unable to |
- | obtain it through the world-wide-web, please send a note to |
- | license@php.net so we can mail you a copy immediately. |
- +----------------------------------------------------------------------+
- | Authors: Brad Lafountain <rodif_bl@yahoo.com> |
- | Shane Caraveo <shane@caraveo.com> |
- | Dmitry Stogov <dmitry@php.net> |
- +----------------------------------------------------------------------+
- */
- #ifndef PHP_SDL_H
- #define PHP_SDL_H
- #define XSD_WHITESPACE_COLLAPSE 1
- #define XSD_WHITESPACE_PRESERVE 1
- #define XSD_WHITESPACE_REPLACE 1
- typedef enum _sdlBindingType {
- BINDING_SOAP = 1,
- BINDING_HTTP = 2
- } sdlBindingType;
- typedef enum _sdlEncodingStyle {
- SOAP_RPC = 1,
- SOAP_DOCUMENT = 2
- } sdlEncodingStyle;
- typedef enum _sdlRpcEncodingStyle {
- SOAP_ENCODING_DEFAULT = 0,
- SOAP_ENCODING_1_1 = 1,
- SOAP_ENCODING_1_2 = 2
- } sdlRpcEncodingStyle;
- typedef enum _sdlEncodingUse {
- SOAP_ENCODED = 1,
- SOAP_LITERAL = 2
- } sdlEncodingUse;
- typedef enum _sdlTransport {
- SOAP_TRANSPORT_HTTP = 1
- } sdlTransport;
- struct _sdl {
- HashTable functions; /* array of sdlFunction */
- HashTable *types; /* array of sdlTypesPtr */
- HashTable *elements; /* array of sdlTypesPtr */
- HashTable *encoders; /* array of encodePtr */
- HashTable *bindings; /* array of sdlBindings (key'd by name) */
- HashTable *requests; /* array of sdlFunction (references) */
- HashTable *groups; /* array of sdlTypesPtr */
- char *target_ns;
- char *source;
- bool is_persistent;
- };
- typedef struct sdlCtx {
- sdlPtr sdl;
- HashTable docs; /* array of xmlDocPtr */
- HashTable messages; /* array of xmlNodePtr */
- HashTable bindings; /* array of xmlNodePtr */
- HashTable portTypes; /* array of xmlNodePtr */
- HashTable services; /* array of xmlNodePtr */
- HashTable *attributes; /* array of sdlAttributePtr */
- HashTable *attributeGroups; /* array of sdlTypesPtr */
- php_stream_context *context;
- zval old_header;
- } sdlCtx;
- struct _sdlBinding {
- char *name;
- char *location;
- sdlBindingType bindingType;
- void *bindingAttributes; /* sdlSoapBindingPtr */
- };
- /* Soap Binding Specific stuff */
- struct _sdlSoapBinding {
- sdlEncodingStyle style;
- sdlTransport transport; /* not implemented yet */
- };
- typedef struct _sdlSoapBindingFunctionHeader {
- char *name;
- char *ns;
- sdlEncodingUse use;
- sdlTypePtr element;
- encodePtr encode;
- sdlRpcEncodingStyle encodingStyle; /* not implemented yet */
- HashTable *headerfaults; /* array of sdlSoapBindingFunctionHeaderPtr */
- } sdlSoapBindingFunctionHeader, *sdlSoapBindingFunctionHeaderPtr;
- typedef struct _sdlSoapBindingFunctionFault {
- char *ns;
- sdlEncodingUse use;
- sdlRpcEncodingStyle encodingStyle; /* not implemented yet */
- } sdlSoapBindingFunctionFault, *sdlSoapBindingFunctionFaultPtr;
- struct _sdlSoapBindingFunctionBody {
- char *ns;
- sdlEncodingUse use;
- sdlRpcEncodingStyle encodingStyle; /* not implemented yet */
- HashTable *headers; /* array of sdlSoapBindingFunctionHeaderPtr */
- };
- struct _sdlSoapBindingFunction {
- char *soapAction;
- sdlEncodingStyle style;
- sdlSoapBindingFunctionBody input;
- sdlSoapBindingFunctionBody output;
- };
- struct _sdlRestrictionInt {
- int value;
- char fixed;
- };
- struct _sdlRestrictionChar {
- char *value;
- char fixed;
- };
- struct _sdlRestrictions {
- HashTable *enumeration; /* array of sdlRestrictionCharPtr */
- sdlRestrictionIntPtr minExclusive;
- sdlRestrictionIntPtr minInclusive;
- sdlRestrictionIntPtr maxExclusive;
- sdlRestrictionIntPtr maxInclusive;
- sdlRestrictionIntPtr totalDigits;
- sdlRestrictionIntPtr fractionDigits;
- sdlRestrictionIntPtr length;
- sdlRestrictionIntPtr minLength;
- sdlRestrictionIntPtr maxLength;
- sdlRestrictionCharPtr whiteSpace;
- sdlRestrictionCharPtr pattern;
- };
- typedef enum _sdlContentKind {
- XSD_CONTENT_ELEMENT,
- XSD_CONTENT_SEQUENCE,
- XSD_CONTENT_ALL,
- XSD_CONTENT_CHOICE,
- XSD_CONTENT_GROUP_REF,
- XSD_CONTENT_GROUP,
- XSD_CONTENT_ANY
- } sdlContentKind;
- typedef struct _sdlContentModel sdlContentModel, *sdlContentModelPtr;
- struct _sdlContentModel {
- sdlContentKind kind;
- int min_occurs;
- int max_occurs;
- union {
- sdlTypePtr element; /* pointer to element */
- sdlTypePtr group; /* pointer to group */
- HashTable *content; /* array of sdlContentModel for sequnce,all,choice*/
- char *group_ref; /* reference to group */
- } u;
- };
- typedef enum _sdlTypeKind {
- XSD_TYPEKIND_SIMPLE,
- XSD_TYPEKIND_LIST,
- XSD_TYPEKIND_UNION,
- XSD_TYPEKIND_COMPLEX,
- XSD_TYPEKIND_RESTRICTION,
- XSD_TYPEKIND_EXTENSION
- } sdlTypeKind;
- typedef enum _sdlUse {
- XSD_USE_DEFAULT,
- XSD_USE_OPTIONAL,
- XSD_USE_PROHIBITED,
- XSD_USE_REQUIRED
- } sdlUse;
- typedef enum _sdlForm {
- XSD_FORM_DEFAULT,
- XSD_FORM_QUALIFIED,
- XSD_FORM_UNQUALIFIED
- } sdlForm;
- struct _sdlType {
- sdlTypeKind kind;
- char *name;
- char *namens;
- char nillable;
- HashTable *elements; /* array of sdlTypePtr */
- HashTable *attributes; /* array of sdlAttributePtr */
- sdlRestrictionsPtr restrictions;
- encodePtr encode;
- sdlContentModelPtr model;
- char *def;
- char *fixed;
- char *ref;
- sdlForm form;
- };
- struct _sdlParam {
- int order;
- sdlTypePtr element;
- encodePtr encode;
- char *paramName;
- };
- typedef struct _sdlFault {
- char *name;
- HashTable *details; /* array of sdlParamPtr */
- void *bindingAttributes; /* sdlSoapBindingFunctionFaultPtr */
- } sdlFault, *sdlFaultPtr;
- struct _sdlFunction {
- char *functionName;
- char *requestName;
- char *responseName;
- HashTable *requestParameters; /* array of sdlParamPtr */
- HashTable *responseParameters; /* array of sdlParamPtr (this should only be one) */
- struct _sdlBinding *binding;
- void *bindingAttributes; /* sdlSoapBindingFunctionPtr */
- HashTable *faults; /* array of sdlFaultPtr */
- };
- typedef struct _sdlExtraAttribute {
- char *ns;
- char *val;
- } sdlExtraAttribute, *sdlExtraAttributePtr;
- struct _sdlAttribute {
- char *name;
- char *namens;
- char *ref;
- char *def;
- char *fixed;
- sdlForm form;
- sdlUse use;
- HashTable *extraAttributes; /* array of sdlExtraAttribute */
- encodePtr encode;
- };
- sdlPtr get_sdl(zval *this_ptr, char *uri, zend_long cache_wsdl);
- encodePtr get_encoder_from_prefix(sdlPtr sdl, xmlNodePtr data, const xmlChar *type);
- encodePtr get_encoder(sdlPtr sdl, const char *ns, const char *type);
- encodePtr get_encoder_ex(sdlPtr sdl, const char *nscat, int len);
- sdlBindingPtr get_binding_from_type(sdlPtr sdl, sdlBindingType type);
- sdlBindingPtr get_binding_from_name(sdlPtr sdl, char *name, char *ns);
- void delete_sdl(void *handle);
- void delete_sdl_impl(void *handle);
- void sdl_set_uri_credentials(sdlCtx *ctx, char *uri);
- void sdl_restore_uri_credentials(sdlCtx *ctx);
- #endif
|