General ------- - rename soapobject to soapclient - make sure soapvar and soapparam are really need - make sure soapserver.map(), soap_encode_to_xml() and soap_encode_to_zval() are really need - reimplement SoapObject::__getfunctions() and SoapObject::__gettypes() to return structures instead of strings SOAP ---- + SOAP versioning model + SOAP message must not contain a Document Type Declaration - SOAP message MUST NOT contain Processing Instructions (XML_PI_NODE) + SOAP 1.1 fault codes ("client","server"), SOAP 1.1 fault codes ("Sender","Receiver") + SOAP 1.1 Content-Type - "text/xml", SOAP 1.2 - "application/soap+xml" - support for SOAP 1.2 (ignore it???) - support for SOAP headers - actor attribute - mustUnderstend attribute - make sure soap 1.1 and 1.2 are supported fully Encoding -------- ? full support for standard simple types ( + anyType + anyURI, + QName, + NOTATION, + normalizedString, + token, ? language, (pattern: "[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*") ? NMTOKEN, (pattern: "\c+") (\c: [a-zA-Z0-9.\-_:]) ? NMTOKENS, (list: NMTOKEN, minLength: 1) ? Name, (pattern: "\i\c*") (\i: [a-zA-Z_:] ? NCName, (pattern: "[\i-[:]][\c-[:]]*") ? ID, (base: NCName) ? IDREF, (base: NCName) ? IDREFS, (list: IDREF; minLength: 1) ? ENTITY, (base: NCName) ? ENTITIES, (list: ENTITY; minLength: 1) ? duration, + unsignedLong) ? full support for standard date/time types ( ? dateTime, ? time, ? date, ? gYearMonth, ? gYear, ? gMonthDay, ? gDay, ? gMonth) ? proper encoding of standard hexBinary type ? proper encoding of standard base64Binary type ? full support for arrays - SOAP 1.1 encoding of arrays with holes (partially transmitted and sparse arrays) SOAP 1.2 doesn't support partially transmitted and sparse arrays - references to external resources ? support for "nillable" and "nil" - default values - root attribute ? provide schema 1999/2001 support??? ? make internal refrences for soap encoding (use seralization logic)??? ? provide user space overriding of serialization certin objects and types??? WSDL ---- + wsdl and schema import + support for message/part element attribute + support for portType operation input/output name attribute + support for without - support for portType operation parameterOrder attribute - support for binding operation input/output name attribute (part of overloading) - support for + support for style "rpc"/"document" encoding (client part) - support for style "rpc"/"document" encoding (server part) How to get function name from request? May be SoapAction HTTP header? + support for "encoded"/"literal" encoding ? arrayType and "literal" encoding - function/method overloading/redeclaration (test(int); test(string)) - wsdl caching - wsdl auto generation ? SOAP binding - parts attribute - - and - HTTP GET/POST binding - MIME binding - SOAP 1.2 bindings??? Schema ------ - ? support for user defined simple types ? restiction + base ? enumeration ? length (for string, anyURI, hexBinary, base64Binary and derived) list??? ? minLength (for string, hexBinary, base64Binary and derived) list??? ? maxLength (for string, hexBinary, base64Binary and derived) list??? + whiteSpace (preserve, replace [#x9,#xA,#xD=>#x20], collapse [replace+?]) - pattern - minExclusive (for numeric, date types) - minInclusive (for numeric, date types) - maxExclusive (for numeric, date types) - maxInclusive (for numeric, date types) - totalDigits (for decimal) - fractionDigits (for decimal) ? list ? union ? support for user defined complex types ? full support for content model encoding/decoding Error Handling -------------- - ??? Transport --------- + support for https:// + support for persistent HTTP connections (keep_alive) - support for HTTP compression (gzip,x-gzip,defalte) + support for HTTP authentication + HTTP Cookies support - support for HTTP proxies - transport abstraction layer + SoapAction HTTP header field ? HTTP status codes ? HTTP chunked Transfer-Encoding UDDI ---- - ??? Interop Testing --------------- - more rounds/groups - ???