summaryrefslogtreecommitdiff
path: root/ext/soap/TODO
blob: 3438b3ed3d4e2a9efb5301007f72818c5adaba61 (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
138
139
140
141
142
143
144
145
146
147
148
149
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

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)
- 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
  ? duration, 
  ? anyURI, 
  ? QName, 
  ? NOTATION,
  + normalizedString, 
  ? token, 
  ? language, 
  ? NMTOKEN, 
  ? Name, 
  ? NCName, 
  ? ID, 
  ? IDREF,
  ? IDREFS, 
  ? ENTITY, 
  ? ENTITIES, 
  + 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
  - encoding of arrays with holes
- 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 <opperation> without <input>
+ 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
  ? <soap:body>
    - "parts"
  - <soap:fault>
  - <soap:header> and <soap:headerfault>
- 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
- ???