diff options
Diffstat (limited to 'ext/soap/php_sdl.h')
-rw-r--r-- | ext/soap/php_sdl.h | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/ext/soap/php_sdl.h b/ext/soap/php_sdl.h new file mode 100644 index 0000000000..66a2520bfb --- /dev/null +++ b/ext/soap/php_sdl.h @@ -0,0 +1,112 @@ +#ifndef PHP_SDL_H +#define PHP_SDL_H + +#define XSD_WHITESPACE_COLLAPSE 1 +#define XSD_WHITESPACE_PRESERVE 1 +#define XSD_WHITESPACE_REPLACE 1 + +struct _sdl +{ + xmlDocPtr doc; + HashTable *functions; //array of SoapFunctionsPtr + HashTable *types; //array of sdlTypesPtr + HashTable *encoders; //array of encodePtr + char *location; + char *target_ns; + char *source; +}; + +struct _sdlRestrictionInt +{ + int value; + char fixed; + char *id; +}; + +struct _sdlRestrictionChar +{ + char *value; + char fixed; + char *id; +}; + +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; +}; + +struct _sdlType +{ + char *name; + char *namens; + int nullable; + int min_occurs; + int max_occurs; + HashTable *elements; //array of sdlTypePtr + HashTable *attributes; //array of sdlAttributePtr + sdlRestrictionsPtr restrictions; + encodePtr encode; +}; + +struct _sdlParam +{ + int order; + encodePtr encode; + char *paramName; +}; + +struct _sdlFunction +{ + int enabled; + char *functionName; + char *requestName; + char *responseName; + HashTable *requestParameters; //array of sdlParamPtr + HashTable *responseParameters; //array of sdlParamPtr (this should only be one) + char *soapAction; +}; + +struct _sdlAttribute +{ + char *def; + char *fixed; + char *form; + char *id; + char *name; + char *ref; + char *type; + char *use; + HashTable *extraAttributes; +}; + +sdlPtr get_sdl(char *uri); +sdlPtr load_wsdl(char *struri); +int load_sdl(char *struri, int force_load); +int load_ms_sdl(char *struri, int force_load); + +encodePtr get_encoder_from_prefix(sdlPtr sdl, xmlNodePtr data, char *type); +encodePtr get_encoder(sdlPtr sdl, char *ns, char *type); +encodePtr get_encoder_ex(sdlPtr sdl, char *nscat); +encodePtr get_create_encoder(sdlPtr sdl, sdlTypePtr cur_type, char *ns, char *type); +encodePtr create_encoder(sdlPtr sdl, sdlTypePtr cur_type, char *ns, char *type); + +xmlNodePtr sdl_guess_convert_xml(encodeType enc, zval* data); + +xmlNodePtr sdl_to_xml_array(sdlTypePtr type, zval *data); +xmlNodePtr sdl_to_xml_object(sdlTypePtr type, zval *data); + +void delete_type(void *type); +void delete_attribute(void *attribute); +#endif + |