Starting with 4S4C v1.2, the SOAP/COM dispatcher can be controlled via a configuration file. This makes it easy to write completely generic listeners. The file defines a list of COM Components and Interfaces to be exposed via SOAP and the namespaces that should be associated with them.
Config.xml is structured as follows
<mappings>
<mapping methodURI='http://simon.fell.com/calc' progid='Demo_server.calc' iid='{BC0E4845-B3F3-4080-B914-3F29FF8A06DF}' />
<mapping methodURI='http://simon.fell.com/strings' progid='Demo_server.calc' iid='{2F4178E5-8627-4930-942A-1EFBB3F4F54E}' />
<mapping methodURI='http://simon.fell.com/structs' progid='Demo_server.calc' iid='{63B54535-8599-4f3c-8718-59177D56F928}' />
<mapping methodURI='http://simon.fell.com/dual' progid='Demo_server.dualtest' iid='{E4482471-6E9D-429C-B33E-9D48E0010F03}' />
<mapping methodURI='http://simon.fell.com/addressbook' clsid='{5803B782-DF93-49E4-9105-ED31AB530511}' iid='{91D32B9C-8837-4D08-8F02-945A209E4DB1}' />
<mapping methodURI='http://simon.fell.com/trickyTypes' progid='Demo_server.calc' iid='{02A1A326-4489-4b28-A6A9-91F1727672F3}' />
</mappings>
each mapping entry specifies a methodURI, this is the namespace URI for the methodName element, for example to if you want to call the Calc
functions in the demo server (mapping entry 1), your SOAP request would look like
<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/' xmlns:enc='http://schemas.xmlsoap.org/soap/encoding/'> <env:Body> <m:Add xmlns:m='http://simon.fell.com/calc'> <a>9</a> <b>4</b> </m:Add> </env:Body> </env:Envelope>See how the Add element specifies the relevant namespace URI.