B
ben curthoys
Suppose I have a webservice "WidgetWS.asmx", that exposes
one WebMethod that takes an
object "WidgetSearchParameters" as a parameter and returns
an array of "Widget" objects.
If I write a dotNET client for this webservice, and add a
WebReference to my
WebService, then the VS.NET2003 IDE very helpfully creates
a bunch of proxy
classes in the client that represent the public properties
of the
"WidgetSearchParameters" and "Widget" objects.
I can call the method, and manually go through all my
proxy classes and
create output, using code not entirely unlike this:
WidgetWS.WidgetWS AEWS = new WidgetWS.WidgetWS();
WidgetWS.WidgetSearchParameters WSearchParam = new
WidgetWS.WidgetSearchParameters();
WSearchParam .WidgetTypeId = int.Parse
(txtWidgetTypeId.Text);;
WidgetWS.Widget[] Ws = AEWS.GetWidgets(WSearchParam);
foreach (WidgetWS.Widget W in Ws)
{
TableRow r = new TableRow();
TableCell c = new TableCell();
c.Text = W.WidgetName;
r.Cells.Add(c);
c = new TableCell();
c.Text = W.WidgetType();
r.Cells.Add(c);
tblWidgets.Rows.Add(r);
}
and this is very useful and absolutely necessary.
but in certain circumstances, I don't want to go to all
this trouble. What
I'd like to go is get the actual raw XML respose that I
see in my browser
when I hit the "Invoke" button on the standard
autogenerated WebService info
pages, and simply transform it with an XSL and squirt the
result directly at
the user without writing any asp code.
And I can't for the life of me work out how to do this. It
seems that once
you've allowed the Microsoft WebService classes to hide
come of the
complexity of calling a webservice from you, you're never
allowed back to
the raw XML.
Please note that I don't want the WebService to return an
XMLnode or
XMLdocument object - in general I want it to do the proxy
class thing, and
it's just a few cases that it would be cool to use the
XML+XSL to create the
user output.
Thanks in advance.
Ben.
one WebMethod that takes an
object "WidgetSearchParameters" as a parameter and returns
an array of "Widget" objects.
If I write a dotNET client for this webservice, and add a
WebReference to my
WebService, then the VS.NET2003 IDE very helpfully creates
a bunch of proxy
classes in the client that represent the public properties
of the
"WidgetSearchParameters" and "Widget" objects.
I can call the method, and manually go through all my
proxy classes and
create output, using code not entirely unlike this:
WidgetWS.WidgetWS AEWS = new WidgetWS.WidgetWS();
WidgetWS.WidgetSearchParameters WSearchParam = new
WidgetWS.WidgetSearchParameters();
WSearchParam .WidgetTypeId = int.Parse
(txtWidgetTypeId.Text);;
WidgetWS.Widget[] Ws = AEWS.GetWidgets(WSearchParam);
foreach (WidgetWS.Widget W in Ws)
{
TableRow r = new TableRow();
TableCell c = new TableCell();
c.Text = W.WidgetName;
r.Cells.Add(c);
c = new TableCell();
c.Text = W.WidgetType();
r.Cells.Add(c);
tblWidgets.Rows.Add(r);
}
and this is very useful and absolutely necessary.
but in certain circumstances, I don't want to go to all
this trouble. What
I'd like to go is get the actual raw XML respose that I
see in my browser
when I hit the "Invoke" button on the standard
autogenerated WebService info
pages, and simply transform it with an XSL and squirt the
result directly at
the user without writing any asp code.
And I can't for the life of me work out how to do this. It
seems that once
you've allowed the Microsoft WebService classes to hide
come of the
complexity of calling a webservice from you, you're never
allowed back to
the raw XML.
Please note that I don't want the WebService to return an
XMLnode or
XMLdocument object - in general I want it to do the proxy
class thing, and
it's just a few cases that it would be cool to use the
XML+XSL to create the
user output.
Thanks in advance.
Ben.