Strawman argument type definition language

Robert Olson olson at mcs.anl.gov
Mon Jul 28 17:14:38 CDT 2003


What if we could add the following declaration to a class that exports SOAP 
methods:

     soap_types = """

         struct Capability {
             string role;
             string type;
             dict parms;
             };

   	typedef string URIType;
        typedef base64 IconType;

     	struct clientProfile {
             string techSupportInformation;
             string profileType;
             string geoLocation;
             string email;
             string name;
             string phoneNumber;
             IconType icon;
             URIType uri;
             string publicId;
             string distinguishedName;
             Capability[] capabilities;
             };
	struct EnterReturn {
	     VenueState state;
	     string privateId;
	     StreamDescription[] streams;
	};
             """

And then, when we export a method, we say

     wsEnter.soap_export_as = "Enter"
     wsEnter.soap_argument_types = ["clientProfile"]
     wsEnter.soap_return_type = "EnterReturn"

This pretty much finishes the picture as far as completely defining what 
SOAP methods are, what their arguments are, and what they return. This 
syntax is easily parsable, can be used to auto-generate documentation, and 
could be used in the future to generate WSDL or schema defs, or 
interface/impl stub code.

--bob




More information about the ag-dev mailing list