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 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 + arrayType attribute + offset attribute + position attribute + multidimensional arrays + arrays of arrays - SOAP 1.2 array encoding/decoding (itemType, arraySize) - SOAP 1.1 - arrayType="xsd:ur-type[]", SOAP 1.2 - itemType="xsd:anyType" - SOAP 1.1 encoding of arrays with holes (partially transmitted and sparse arrays) SOAP 1.2 doesn't support partially transmitted and sparse arrays - full support for structures??? + references (id,href) - references to external resources - 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 without + 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 ? support for "nillable" and "nil" - support for user defined simple types - restiction + base + enumeration + length (for string, anyURI, hexBinary, base64Binary and derived) + minLength (for string, hexBinary, base64Binary and derived) + maxLength (for string, hexBinary, base64Binary and derived) + 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 - simpleContent extension + base - group - name - all - choice - sequence - all - element - choice - element - group - choice - sequence - any ??? - sequence - element - group - choice - sequence - any ??? - attribute - function/method overloading/redeclaration (test(int); test(string)) - wsdl caching - wsdl auto generation ? SOAP binding ? - "parts" - - and - HTTP GET/POST binding - MIME binding 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 - ???