Archive of UserLand's first discussion group, started October 5, 1998.

Re: WDDX Annotated DTD

Posted:1/17/1999; 10:52:32 PM
Topic:WDDX Annotated DTD
Msg #:2196 (In response to 2103)
Prev/Next:2194 / 2199

My first proposal above combines some of the existing elements of XML-RPC with a WDDX packet containing the method arguments. The problem with this approach is that one would have to change existing XML-RPC implementations to work with a WDDX serialization/deserialization module.

IMHO, your first option:


is the most logical.

The only problem (which you have identified) is really a non-issue, as far I can see.

Every xml-rpc request begins with:

   POST /RPC2 HTTP/1.0
   User-Agent: Frontier/5.1.2 (WinNT)
   Content-Type: text/xml
   Content-length: 181

foo ...

which immediately identifies the message 'handler' (here RPC2) which expects the current XML-RPC. Requests to _this_ handler don't have to change. 'RPC2' can happily go on processing requests.

Betty responders (i.e. the 'methods') also remain _unaffected_, since by the time they are invoked, the RPC data (i.e. its parameters) have been unmarshalled to native Frontier data. This means that none of the betty rpcHandlers will be affected.

Thus, your first proposal could look like:

   User-Agent: Frontier/5.1.2 (WinNT)
   Content-Type: text/xml
   Content-length: 181

examples.getStateName ...

where the 'handler' is distinguished as "RPC_XE", meaning RPC using 'X' Encoding, where the encoding is identified by the 'encoding' attribute of element.

Considering the flexibility gained, the fact that the handler gains information regarding the encoding of the _data_ at the element is (imo) insignificant. In fact, logically, it is appropriate for the RPC handler to gain the information at this point since it has not yet begun the 'unmarshalling' of RPC data: its parameters! (This also has the side benefit of encouraging modular implementations on the reciever's side.)


There are responses to this message:

This page was archived on 6/13/2001; 4:47:20 PM.

© Copyright 1998-2001 UserLand Software, Inc.