Groups | Blog | Home
all groups > dotnet xml > august 2007 >

dotnet xml : Decoding XML response in VB .NET


Jonathan Attree
8/28/2007 7:40:00 AM
The following is the SOAP response from my customer 's intranet based web
service. From my VB app I call:
Response = getOrdersForDateRange(94, #8/28/2007#, #8/29/2007#) and this is
what comes back:
<soapenv:Envelope>
<soapenv:Body
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<getOrdersForDateRangeResponse>
<FilteredOrders href="#id0"/>
</getOrdersForDateRangeResponse>

<multiRef id="id0" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns1829687187:FormatBFilter">
<ns1829687187:filterId xsi:type="xsd:int">94</ns1829687187:filterId>
<ns1829687187:Orders href="#id5"/>
</multiRef>

<multiRef id="id5" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns1829687187:FormatBOrder">
<ns1829687187:orderNum xsi:type="xsd:string">097294</ns1829687187:orderNum>
<ns1829687187:buildDate
xsi:type="xsd:dateTime">2007-07-10T23:00:00.000Z</ns1829687187:buildDate>
<ns1829687187:buildSeq xsi:type="xsd:long">179</ns1829687187:buildSeq>
<ns1829687187:vehicleLine
xsi:type="xsd:string">TLS</ns1829687187:vehicleLine>
<ns1829687187:offlineDate xsi:type="xsd:dateTime" xsi:nil="true"/>
<ns1829687187:Part href="#id910"/>
<ns1829687187:Part href="#id911"/>
</multiRef>

<multiRef id="id910" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns1829687187:FormatBPart">
<ns1829687187:prefix xsi:type="xsd:string">XH42</ns1829687187:prefix>
<ns1829687187:base xsi:type="xsd:string">017B22</ns1829687187:base>
<ns1829687187:suffix xsi:type="xsd:string">AA</ns1829687187:suffix>
<ns1829687187:partDesc xsi:type="xsd:string">SHLD VEH IDENT
LBL</ns1829687187:partDesc>
<ns1829687187:freeTextField xsi:type="xsd:string">VIN STAMP CLEAR
COVER</ns1829687187:freeTextField>
<ns1829687187:qty xsi:type="xsd:double">1.0</ns1829687187:qty>
<ns1829687187:supplier xsi:type="xsd:string">L7MTA</ns1829687187:supplier>
<ns1829687187:lineFeedLoc1 xsi:type="xsd:string" xsi:nil="true"/>
<ns1829687187:lineFeedLoc2 xsi:type="xsd:string" xsi:nil="true"/>
<ns1829687187:lineFeedLoc3 xsi:type="xsd:string" xsi:nil="true"/>
<ns1829687187:lineFeedLoc4 xsi:type="xsd:string" xsi:nil="true"/>
</multiRef>
<multiRef id="id911" soapenc:root="0"
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
xsi:type="ns1829687187:FormatBPart">
<ns1829687187:prefix xsi:type="xsd:string">XB42</ns1829687187:prefix>
<ns1829687187:base xsi:type="xsd:string">16G847</ns1829687187:base>
<ns1829687187:suffix xsi:type="xsd:string">BA</ns1829687187:suffix>
<ns1829687187:partDesc xsi:type="xsd:string">SHLD VEH IDENT
LBL</ns1829687187:partDesc>
<ns1829687187:freeTextField xsi:type="xsd:string">VIN STAMP CLEAR
COVER</ns1829687187:freeTextField>
<ns1829687187:qty xsi:type="xsd:double">1.0</ns1829687187:qty>
<ns1829687187:supplier xsi:type="xsd:string">L7MTA</ns1829687187:supplier>
<ns1829687187:lineFeedLoc1 xsi:type="xsd:string" xsi:nil="true"/>
<ns1829687187:lineFeedLoc2 xsi:type="xsd:string" xsi:nil="true"/>
<ns1829687187:lineFeedLoc3 xsi:type="xsd:string" xsi:nil="true"/>
<ns1829687187:lineFeedLoc4 xsi:type="xsd:string" xsi:nil="true"/>
</multiRef>

</soapenv:Body>
</soapenv:Envelope>

What is the best way to decode this data for entry onto a database?
Any help much appreciated.

Jonathan Attree
8/28/2007 8:32:07 AM


[quoted text, click to view]

Hi John
Thanks for the reply.
I've done a few 'Walkthroughs' from Help etc so know how the Add Web
Reference thing works.
My problem is that the web service is on my customers intranet so I can't
access it from my development machine so I can't create a web reference to
access its objects. All I do have is the .wsdl and .xsd files. Can I find out
what objects are returned from these?

Jonathan Attree

Jonathan Attree
8/28/2007 9:00:04 AM
[quoted text, click to view]
Thanks again.
That was the first thing I tried and it added the web reference fine but I
still can't access the service's methods. The service name is 'obom' and when
I type:
Dim ws As New obom.Service
it says 'Type obom.Service is not defined'

John Saunders [MVP]
8/28/2007 10:46:45 AM
"Jonathan Attree" <JonathanAttree@discussions.microsoft.com> wrote in
message news:58DC8A04-1107-4DC1-9734-2F90602CABBA@microsoft.com...
[quoted text, click to view]


Jonathan, did you try creating proxy classes using Add Web Reference? That
way, the proxy classes would take care of any deserializing, and you'd have
nice objects to use in your code (and to persist to your database).
--
John Saunders [MVP]
John Saunders [MVP]
8/28/2007 11:36:32 AM
"Jonathan Attree" <JonathanAttree@discussions.microsoft.com> wrote in
message news:DAB58928-B3EE-4154-83C7-1FB2F2B1676F@microsoft.com...
[quoted text, click to view]

In the Add Web Reference dialog, simply point to the .WSDL file. You don't
need the actual service. In fact, all the actual service does it return the
WSDL and schemas.
--
John Saunders [MVP]
John Saunders [MVP]
8/28/2007 4:13:35 PM
"Jonathan Attree" <JonathanAttree@discussions.microsoft.com> wrote in
message news:AD5C3D32-3DD8-4EE3-B0D8-C11C88E7667F@microsoft.com...
[quoted text, click to view]

This class is usually in a namespace with the same name as the web service
host. So, for instance, if you called the host "services", you should look
for services.obom.Service.
--
John Saunders [MVP]
AddThis Social Bookmark Button