Robert Sanderson wrote:
> It's a SOAP fault. You wouldn't send a diagnostic for a malformed HTTP
> Get request or broken TCP/IP package, you allow the underlying
> transport mechanisms to take care of it, so we don't send a diagnostic
> for a malformed SOAP package.
I see your point that the application layer in many frameworks never
will get the chance to handle a SOAP fault.
I forgot that I am one of the rare breed handconding the stuff .. buuut ..
>
> Secondly, if the soap package is malformed, most toolkits will reject it
> before it ends up at the application layer, so many implementers would
> not be able to return the diagnostic anyway.
But there is a profound difference: if a client makes a HTTP request
error, the usual HTTP error mechanisms apply, and HTTP status codes will
be send back.
So far so good. Buuut .. but then I am out of luck:
If I want to make a SRU server which handles GET/POST/SOAP together,
I have at the application layer to decide what to do right after a
sucessfull HTTP GET/POST
In case of a HTTP GET request, it must be SRU GET, no doubt, so I expect
url-encoded parameters, and parse them, issuing usual diagnostics, if
need be.
In case of a HTTP POST request, I need to open the POST'ed data, to see
what I should do - and that's application logic!
1) if I get POST'ed url-encoded data, it must be SRU/POST, and I proceed
exactly as by SRU/GET
2) if i get valid XML, _and_ a valid SOAP envelope in the XML, it must
be SRU/SOAP, and I parse my XML request packages, and issue diagnostics
if need be.
BUT
3) if I get something else in the POST'ed data - I do what ??
possible errors are:
- not mimetype urlencode or XML
- XML not proper XML
- proper XML. but no proper SOAP envelope
So, in the case of a SRU GET/POST/SOAP server, my server _has_ to deal
with these possible errors in my application layer.
Then what ??
How should the server respond ??
My proposal is to be kind, send an explain response, with some suitable
diagnostic.
Better proposals for what to do ??
>
> Finally, the server couldn't tell which SRU response would to give to
> encapsulate the diagnostic when it can't parse the request.
>
Explain response, what else ??
If no valid operation is parsed (due to empty parameter SRU GET list),
explain is assumed anyhow ..
Marc
> Rob
>
> On Fri, 18 Aug 2006, marc wrote:
>
>> Diagnostic missing for SRU SOAP malformed packages ??
>>
>> Upgrading a SRU GET/SOAP implementation from PHP4 to PHP5 for a
>> customer, I detect sometimes SRU SOAP posted XML packages, which
>>
>> - either are not XML at all
>> - or miss the correct SOAP envelopes
>>
>> Looking at the diagnostic list at
>>
>> http://www.loc.gov/standards/sru/diagnostics-list.html
>> (by the way - why is there no link from the frontpage
>> http://www.loc.gov/standards/sru/
>> to this useful page ?? You have to go over
>> "Additional Information", "Info URi's",
>> "Diagnostic Reference" to get there ..
>> )
>>
>> I can not find any error/diagnostic that fits. I suggest the addition of a
>>
>> number 9 "SOAP envelope XML coding error"
>>
>> in the general section (or a similar thing).
>>
>> And it strikes me that a similar diagnostic for wrong URL encoding of
>> GET/POST parameters might be a good thing also ??
>>
>> Marc
>>
>>
>>
>>
>> --
>>
>> Marc Cromme, cand. polyt, Ph.D
>> Senior Developer, Project Manager
>>
>> Index Data Aps
>> Købmagergade 43, 2
>> 1150 Copenhagen K.
>> Denmark
>>
>> tel: +45 3341 0100
>> fax: +45 3341 0101
>>
>> http://www.indexdata.com
>>
>> INDEX DATA Means Business
>> for Open Source and Open Standards
>>
>
--
Marc Cromme, cand. polyt, Ph.D
Senior Developer, Project Manager
Index Data Aps
Købmagergade 43, 2
1150 Copenhagen K.
Denmark
tel: +45 3341 0100
fax: +45 3341 0101
http://www.indexdata.com
INDEX DATA Means Business
for Open Source and Open Standards
|