|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-api
[Xen-API] Typing in XML-RPC
 
One of the first things I noticed is that the spec defines some extended 
types.  This is a bit challenging in XML-RPC.  It's unclear to me how 64 
bit integer is represented (since XML-RPC only defines 32 bit 
integers).  Also, defining void to an empty string is understandable but 
requires some special casing that really shouldn't be necessary.
Here's what I propose:
 As a convention, we never use <struct>'s on the wire to directly 
represent structures.  By convention, structs always appear as:
<struct>
  
<member><name>kind</name><value><string>[typename]</string></value></member>
 <member><name>value</name><value>[typevalue]</value></member>
</struct>
 Where typename is the string representation of the type and typevalue is 
the type-specific value.
Some common types would be:
 struct - use this to represent actual structs.  typevalue is the normal 
encoding of a struct
long - 64 bit representation of struct.  typevalue is the string 
representation
void - use to represent None.  typevalue is ignored.
 What's nice about this sort of consistent approach is that we can write 
a marshalling/unmarshalling wrapper for Python that automagically does 
this conversion.  Furthermore, if we did decide to support objects (as 
the current spec does), we could automagically marshal/unmarshal these 
over the wire.
 The general idea here is that this is an extensible typing system for 
XML-RPC.
 Another thing to consider is having a type of exception.  I like 
exception based APIs (i'll say that for another email) however the 
format of the standard XML-RPC exception leaves a lot to be desired.
Thoughts?
Regards,
Anthony Liguori
_______________________________________________
xen-api mailing list
xen-api@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-api
 
 |   
 
| <Prev in Thread] | 
Current Thread | 
[Next in Thread>
 |  
- [Xen-API] Typing in XML-RPC,
Anthony Liguori <=
 
 
 |  
  
 | 
    | 
  
  
    |   | 
    |