<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>
the IID is the Interface ID, and uniquely identifies a COM interface. If you are coding in C++\ATL, then you know that you can find the IID
in your projects IDL file. If you only code in VB, you may never even heard of an IID. Fear not !, OleView which ships with many Microsoft tools
(including the platform SDK & the NT/2000 resource kits), can show you this information. Here's how
From my time on the SOAP mailing list, it appears that lots of people want to transport arbitrary XML over SOAP. Whilst I think in general that this somewhat misses the point, here's a couple of examples of how you would do this using a component exposed through 4S4C.
We'll create a simple ActiveX DLL VB project, called tutorial, with a single class called someXMLOption Explicit
Public Function GetOrderStatus1() As String
    GetOrderStatus1 = "<order><num>43210</num><orderdate>2000-08-10</orderdate><shipdate>2000-08-12</shipdate></order>"
End Function
Public Function GetOrderStatus2() As String
    Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    rs.Fields.Append "num", adInteger
    rs.Fields.Append "orderdate", adDate
    rs.Fields.Append "shipdate", adDate
    
    rs.Open
    rs.AddNew
    rs("num").Value = "43210"
    rs("orderdate").Value = #8/10/2000#
    rs("shipdate").Value = #8/12/2000#
    
    Dim s As ADODB.Stream
    Set s = New ADODB.Stream
    rs.Save s, adPersistXML
    
    s.Position = 0
    GetOrderStatus2 = s.ReadText
End Function
Build the project, remembering to add a reference to Microsoft ADO 2.5.<mapping methodURI='http://simon.fell.com/xml' progid='tutorial.someXML' iid='{765A1C98-FA42-41E5-BDD1-604474D2F1B2}' />
Now you can run the tutorial client, in this case its an IE5 page that uses MSXML at the client, to parse the returned SOAP message. you can
open the client, and try it out.