summaryrefslogtreecommitdiff
path: root/ext/soap/TODO
blob: 9f83a91a4bce877e912144369c581fdcc4023a85 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
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-stylesheet ... ?> (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 <rpc:result> (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 <opperation> without <input>
- support for portType operation parameterOrder attribute
- support for binding operation input/output name attribute (part of overloading)
- support for <opperation> <fault>
+ 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
  - <soap:body> parts attribute
  - <soap:fault>
  - <soap:header> and <soap:headerfault>
- HTTP GET/POST binding
- MIME binding
- SOAP 1.2 bindings???

Schema
------
- <redefine>
? 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
- ???