Didier PH Martin wrote:
>
> Hello Paul,
>
> Paul said:
> > One important thing to note: SOAP calls are not in any way guaranteed to
> > be idempotent.
>
> Didier replies:
> And an HTTP GET also. If you access the Moreover service with an HTTP GET
> and a URI containing parameters, then it is not idempotent[1]
That's a bug in Moreover. The very basis of standardization is ascribing
blame. If Microsoft's browser crashes when I give it an xml:space
attribute then I don't take the xml:space attribute out of my page, I
submit a but report to Microsoft. (or I do both, if I can't afford to
wait for their fix)
GET allows you to clearly ascribe blame for non side-effect-free URLs.
Of the millions or billions of URLs in the world, the
side-effect-causing (buggy!) subset are probably less than 1%.
> Paul said:
> > Because XSLT is a declarative, not procedural language,
> > you do not necessarily know how many times your XSLT will call the
> > method.
>
> Didier replies:
> It depends on how the protocol handler is implemented. If it is synchronous,
> then it will wait that the document is delivered to provide the result to
> the client (either a browser or an XSLT processor).
I don't see how your sentence above has anything to do with my sentence
above. Given the XSLT fragment:
<xsl:for-each select="/foo">
<xsl:apply-templates select="document('soap://..../func1')"/>
<xsl:apply-templates select="document('soap://..../func2')"/>
</xsl:for-each>
Suppose there are six foo elements. First, func1 may get called six
times. But it may also get called once. Or twice. The XSLT specification
does not say.
Second, func2 may or may not get called after func1. It might get called
*before* func1 if the XSLT implementation had some reason for thinking
that would be optimal. The XSLT specification does not say.
>... Also, I am not sure if
> this is what you mean and your comment confused me but for a given SOAP
> call, if I invoke a SOAP server with the same URI I get the same result.
Not really! You'd be pretty annoyed if every time you called
getStockQuote you got back the same result.
>...
> For instance the Merkaat service[2] will send you back different documents
> based on the "_fl" parameter. This parameter can takes at least 6 values.
> Then the following two URLs lead to a different result but may be
> interpreted as an interaction with the same abstract resource (dependent on
> you mental model about what is a resource).
> a) http://meerkat.oreillynet.com/?_fl=rss
> b) http://meerkat.oreillynet.com/?_fl=xml
You're talking about something unrelated. Those are two completely
different URLs.
Paul Prescod