SOAP questions
Emmett
emmettwa at onebox.com
Sat Oct 19 01:05:18 EDT 2002
> Now from within the GUI IDE, which is a Delphi application, I can do runtime
> access of the SOAP service _provider_ with some calls to a Python script
> that performs the SOAP XML code generation and submission, and then parses
> the resulting XML document returned from the service provider. The sticking
> point occurs here: as far as I know the only way I can parse the XML
> document returned from the SOAP call is via some process or CGI script that
> is run by the web server, right?
I'm a bit hazy on this but here's what I flash on ...
I recommend that you don't build much in terms of CGI scripts on
your own to parse the XML. And I'd recommend that you use readily
available tools to parse the XML.
It sounds to me that you need a parser that can read the stream
and create the Delphi equivalent to a Java JDOM or DOM representation
of the results. Then your tool should chain XSL transformations
as needed to provide data for the gui.
Again, if possible use the fact that everything is in XML and stay with
XSLT solutions as much as possible. Stay away from building a lot
of code from scratch.
>
> A more concrete example. The user decides to put a search of the SOAP
> provider's product inventory on their web page, and the results are shown in
> a list box on the web page. I let them build and test this functionality
> from within the GUI IDE, by using the python interface script. Now when I
> generate the the web page to actual HTML/XML code, I know I can include the
> needed SOAP call packaged up as an embedded XML fragment in the web page.
> The problem is, and I'd love to be wrong here as far as my current
> understanding of SOAP goes, the web server running the users web page will
> have no idea what to do with the XML document returned by the SOAP call,
> correct?
>
I'm puzzled. The user either codes in XHTML, HTML, XSLT, or XML.
But not HTML/XML. Now, XSLT which generates XHTML can be made to look
very XHTML like. You'd hardly recognize the XSLT was XHTML except for
<xsl:***> statements.
You need to do something which will do a post to the SOAP server,
create a Delphi XML representation (equivalent to JDOM or DOM)
which is then transformed with chained XSLTs to fill in the
HTML/XML. To do that I'd think you'd want the HTML/XML to be XSLT
which looks like XHTML.
> My desire is to make the generated pages to be as portable as possible
> across multiple web servers. But I'm guessing that at least at first, I'll
> have target the biggest web server package, currently Apache, and develop
> some sort of module for it that handles the returned SOAP calls and then
> probably does some HTML template code processing where I fill in variables
> with the SOAP results. I'm already worried about what kind of collisions
> might occur between my module and any other SOAP modules the host site
> manager might have installed. Also, I guess I'll have to then create other
> modules for each platform I wish to support (IIS, etc.), correct?
>
I'm puzzled about the collisionsl you're worried about.
The SOAP protocol has something in it which lets you identify state
and the equivalent of a http session variable, right?
As to your target. I'm puzzled. Are you writing a Delphi application
or an Apache plug in? Or both? Both I guess. Well, if you go with
Apache you're commiting to building everything in C. My inclination
would be to go with a technology better suited to XML - like tomcat -
and hope that all the servers you want to support can handle Java
servlets. With servlets you can take an http request
object and it into JDOM or DOM and post to a SOAP server -
where the payload is the JDOM element written to the
server stream.
> If anyone has any great ideas on how to do this simpler please let me know.
> Also, anywhere my knowledge is incorrect, again, please let me know.
> Lastly, if XML-RPC would be any easier or better, please tell me what the
> differences might be. I'm assuming it would have the same incoming XML SOAP
> doc processing problems that SOAP does.
>
SOAP should have fewer doc processing problems than XML-RPC.
> thx
If Delphi doesn't have something like JDOM or DOM, and if you aren't
using Delphi because Borland is paying for it, then consider a Java
solution.
By the way you should be able to find some examples where XML is
embedded in an HTML file and javascript creates a DOM, parses the
XML and formats it nicely. If you can't find an example of that
I've got one around if you can't find one.
More information about the Python-list
mailing list