diff options
Diffstat (limited to 'ext/soap/php_encoding.h')
-rw-r--r-- | ext/soap/php_encoding.h | 225 |
1 files changed, 225 insertions, 0 deletions
diff --git a/ext/soap/php_encoding.h b/ext/soap/php_encoding.h new file mode 100644 index 000000000..8e728ac1f --- /dev/null +++ b/ext/soap/php_encoding.h @@ -0,0 +1,225 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 5 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2004 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 3.0 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: | + | http://www.php.net/license/3_0.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@zend.com> | + +----------------------------------------------------------------------+ +*/ +/* $Id: php_encoding.h,v 1.35.2.2 2005/03/22 10:18:47 dmitry Exp $ */ + +#ifndef PHP_ENCODING_H +#define PHP_ENCODING_H + +#define XSD_1999_NAMESPACE "http://www.w3.org/1999/XMLSchema" +#define XSD_1999_TIMEINSTANT 401 +#define XSD_1999_TIMEINSTANT_STRING "timeInstant" + +#define SOAP_1_1_ENV_NAMESPACE "http://schemas.xmlsoap.org/soap/envelope/" +#define SOAP_1_1_ENV_NS_PREFIX "SOAP-ENV" + +#define SOAP_1_2_ENV_NAMESPACE "http://www.w3.org/2003/05/soap-envelope" +#define SOAP_1_2_ENV_NS_PREFIX "env" + +#define SOAP_1_1_ENC_NAMESPACE "http://schemas.xmlsoap.org/soap/encoding/" +#define SOAP_1_1_ENC_NS_PREFIX "SOAP-ENC" + +#define SOAP_1_2_ENC_NAMESPACE "http://www.w3.org/2003/05/soap-encoding" +#define SOAP_1_2_ENC_NS_PREFIX "enc" + +#define SCHEMA_NAMESPACE "http://www.w3.org/2001/XMLSchema" +#define XSD_NAMESPACE "http://www.w3.org/2001/XMLSchema" +#define XSD_NS_PREFIX "xsd" +#define XSI_NAMESPACE "http://www.w3.org/2001/XMLSchema-instance" +#define XSI_NS_PREFIX "xsi" +#define XML_NAMESPACE "http://www.w3.org/XML/1998/namespace" +#define XML_NS_PREFIX "xml" + +#define XSD_STRING 101 +#define XSD_STRING_STRING "string" +#define XSD_BOOLEAN 102 +#define XSD_BOOLEAN_STRING "boolean" +#define XSD_DECIMAL 103 +#define XSD_DECIMAL_STRING "decimal" +#define XSD_FLOAT 104 +#define XSD_FLOAT_STRING "float" +#define XSD_DOUBLE 105 +#define XSD_DOUBLE_STRING "double" +#define XSD_DURATION 106 +#define XSD_DURATION_STRING "duration" +#define XSD_DATETIME 107 +#define XSD_DATETIME_STRING "dateTime" +#define XSD_TIME 108 +#define XSD_TIME_STRING "time" +#define XSD_DATE 109 +#define XSD_DATE_STRING "date" +#define XSD_GYEARMONTH 110 +#define XSD_GYEARMONTH_STRING "gYearMonth" +#define XSD_GYEAR 111 +#define XSD_GYEAR_STRING "gYear" +#define XSD_GMONTHDAY 112 +#define XSD_GMONTHDAY_STRING "gMonthDay" +#define XSD_GDAY 113 +#define XSD_GDAY_STRING "gDay" +#define XSD_GMONTH 114 +#define XSD_GMONTH_STRING "gMonth" +#define XSD_HEXBINARY 115 +#define XSD_HEXBINARY_STRING "hexBinary" +#define XSD_BASE64BINARY 116 +#define XSD_BASE64BINARY_STRING "base64Binary" +#define XSD_ANYURI 117 +#define XSD_ANYURI_STRING "anyURI" +#define XSD_QNAME 118 +#define XSD_QNAME_STRING "QName" +#define XSD_NOTATION 119 +#define XSD_NOTATION_STRING "NOTATION" +#define XSD_NORMALIZEDSTRING 120 +#define XSD_NORMALIZEDSTRING_STRING "normalizedString" +#define XSD_TOKEN 121 +#define XSD_TOKEN_STRING "token" +#define XSD_LANGUAGE 122 +#define XSD_LANGUAGE_STRING "language" +#define XSD_NMTOKEN 123 +#define XSD_NMTOKEN_STRING "NMTOKEN" +#define XSD_NAME 124 +#define XSD_NAME_STRING "Name" +#define XSD_NCNAME 125 +#define XSD_NCNAME_STRING "NCName" +#define XSD_ID 126 +#define XSD_ID_STRING "ID" +#define XSD_IDREF 127 +#define XSD_IDREF_STRING "IDREF" +#define XSD_IDREFS 128 +#define XSD_IDREFS_STRING "IDREFS" +#define XSD_ENTITY 129 +#define XSD_ENTITY_STRING "ENTITY" +#define XSD_ENTITIES 130 +#define XSD_ENTITIES_STRING "ENTITIES" +#define XSD_INTEGER 131 +#define XSD_INTEGER_STRING "integer" +#define XSD_NONPOSITIVEINTEGER 132 +#define XSD_NONPOSITIVEINTEGER_STRING "nonPositiveInteger" +#define XSD_NEGATIVEINTEGER 133 +#define XSD_NEGATIVEINTEGER_STRING "negativeInteger" +#define XSD_LONG 134 +#define XSD_LONG_STRING "long" +#define XSD_INT 135 +#define XSD_INT_STRING "int" +#define XSD_SHORT 136 +#define XSD_SHORT_STRING "short" +#define XSD_BYTE 137 +#define XSD_BYTE_STRING "byte" +#define XSD_NONNEGATIVEINTEGER 138 +#define XSD_NONNEGATIVEINTEGER_STRING "nonNegativeInteger" +#define XSD_UNSIGNEDLONG 139 +#define XSD_UNSIGNEDLONG_STRING "unsignedLong" +#define XSD_UNSIGNEDINT 140 +#define XSD_UNSIGNEDINT_STRING "unsignedInt" +#define XSD_UNSIGNEDSHORT 141 +#define XSD_UNSIGNEDSHORT_STRING "unsignedShort" +#define XSD_UNSIGNEDBYTE 142 +#define XSD_UNSIGNEDBYTE_STRING "unsignedByte" +#define XSD_POSITIVEINTEGER 143 +#define XSD_POSITIVEINTEGER_STRING "positiveInteger" +#define XSD_NMTOKENS 144 +#define XSD_NMTOKENS_STRING "NMTOKENS" +#define XSD_ANYTYPE 145 +#define XSD_ANYTYPE_STRING "anyType" +#define XSD_UR_TYPE 146 +#define XSD_UR_TYPE_STRING "ur-type" + +#define XSD_ANYXML 147 + +#define APACHE_NAMESPACE "http://xml.apache.org/xml-soap" +#define APACHE_MAP 200 +#define APACHE_MAP_STRING "Map" + +#define SOAP_ENC_ARRAY 300 +#define SOAP_ENC_ARRAY_STRING "Array" +#define SOAP_ENC_OBJECT 301 +#define SOAP_ENC_OBJECT_STRING "Struct" + +#define WSDL_NAMESPACE "http://schemas.xmlsoap.org/wsdl/" +#define WSDL_NS_PREFIX "wsdl" + +#define WSDL_SOAP11_NAMESPACE "http://schemas.xmlsoap.org/wsdl/soap/" +#define WSDL_SOAP12_NAMESPACE "http://schemas.xmlsoap.org/wsdl/soap12/" +#define RPC_SOAP12_NAMESPACE "http://www.w3.org/2003/05/soap-rpc" +#define RPC_SOAP12_NS_PREFIX "rpc" + +#define WSDL_HTTP11_NAMESPACE "http://schemas.xmlsoap.org/wsdl/http/" +#define WSDL_HTTP12_NAMESPACE "http://www.w3.org/2003/05/soap/bindings/HTTP/" +#define WSDL_HTTP_NS_PREFIX "http" + +#define WSDL_HTTP_TRANSPORT "http://schemas.xmlsoap.org/soap/http" + +#define WSDL_MIME_NAMESPACE "http://schemas.xmlsoap.org/wsdl/mime/" + +#define WSDL_DIME_NAMESPACE "http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/" +#define WSDL_DIME_OPEN "http://schemas.xmlsoap.org/ws/2002/04/dime/open-layout" +#define WSDL_DIME_CLOSED "http://schemas.xmlsoap.org/ws/2002/04/dime/closed-layout" + +#define UNKNOWN_TYPE 999998 +#define END_KNOWN_TYPES 999999 + +struct _encodeType { + int type; + char *type_str; + char *ns; + sdlTypePtr sdl_type; + soapMappingPtr map; +}; + +struct _encode { + encodeType details; + zval *(*to_zval)(encodeTypePtr type, xmlNodePtr data); + xmlNodePtr (*to_xml)(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); + + xmlNodePtr (*to_zval_before)(encodeTypePtr type, xmlNodePtr data, int style); + zval *(*to_zval_after)(encodeTypePtr type, zval *data); + + zval *(*to_xml_before)(encodeTypePtr type, zval *data); + xmlNodePtr (*to_xml_after)(encodeTypePtr type, xmlNodePtr data, int style); +}; + +/* Master functions all encode/decode should be called thur these functions */ +xmlNodePtr master_to_xml(encodePtr encode, zval *data, int style, xmlNodePtr parent); +zval *master_to_zval(encodePtr encode, xmlNodePtr data); + +#ifdef HAVE_PHP_DOMXML +/* user defined mapping */ +zval *to_xml_before_user(encodeTypePtr type, zval *data); +xmlNodePtr to_xml_user(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); +xmlNodePtr to_xml_after_user(encodeTypePtr type, xmlNodePtr node, int style); +xmlNodePtr to_zval_before_user(encodeTypePtr type, xmlNodePtr node, int style); +zval *to_zval_user(encodeTypePtr type, xmlNodePtr node); +zval *to_zval_after_user(encodeTypePtr type, zval *data); +#endif + +void whiteSpace_replace(char* str); +void whiteSpace_collapse(char* str); + +xmlNodePtr sdl_guess_convert_xml(encodeTypePtr enc, zval* data, int style, xmlNodePtr parent); +zval *sdl_guess_convert_zval(encodeTypePtr enc, xmlNodePtr data); + +void encode_reset_ns(); +xmlNsPtr encode_add_ns(xmlNodePtr node, const char* ns); + +encodePtr get_conversion(int encode); + +void delete_encoder(void *handle); + +extern encode defaultEncoding[]; + +#endif |