[Zope] XML-RPC vs External method?
Ender
kthangavelu@earthlink.net
Wed, 01 Nov 2000 13:37:08 -0800
if the xml format is simple you could just do it dtml, it would end up
with some extra white space but it would still be valid.
a dtml method akin to
<?xml version="1.0"?>
<dtml-in mysqlretrieve>
<item>
<content><dtml-var content></content>
<squishy><dtml-var squishy></content>
</item>
</dtml-in>
kapil
Irene Barg wrote:
>
> Hello all,
>
> I have setup a query form to query a small MySQL database using
> Zope. It consists of:
>
> 1. ZMySQL Database Connection (ZMySQLDA)
> 2. ZSQL method
> 3. A search interface.
>
> Now, what I want is the user to have the option of viewing the
> results in HTML or raw XML. I think there can be two approaches
> to this: 1. External method, or 2. XML-RPC.
>
> 1. External method: Replaces the ZMySQL database connection
> with an external Python function called 'mysqldb_XML', pieces
> of which follow:
>
> def mysqldb_XML(self,query):
> """
> Use a MySQL SAX driver to map relational data to XML.
> Hacked from PyXML saxdemo.py. The MySQL driver is a modified
> version of Sean McGrath's drv_mysql.py ("XML Processing with
> Python").
> """
> from xml.sax import saxexts, saxlib, saxutils, writer
> import sys,urllib
>
> #Our MySQLdb XML driver;
> driver="xml.sax.drivers.drv_mysqldb"
> .....
> out = sys.stdout;
> p=saxexts.make_parser(driver)
> dh=writer.PrettyPrinter(out,dtdinfo=info)
> try:
> p.setDocumentHandler(dh)
> return p.parse(query)
> except IOError,e:
> return in_sysID+": "+str(e)
> except saxlib.SAXException,e:
> return str(e)
>
> Inside Zope, I get the ZSQL 'query' and do something like:
>
> <dtml-call "RESPONSE.setHeader('content-type','text/xml')">
> <dtml-in "mysqldb_XML(query)">
> <dtml-var sequence-item>
> </dtml-in>
>
> 2. XML-RPC: It seems to me XML-RPC could do this too, but
> I don't know how one would print out the raw XML response.
> Could I have a Zope client request the ZSQL method above,
> but instead of sending it to my output DTML method, I just
> print the raw-XML stream? Examples would be helpful:-)
>
> It seems to me if XML-RPC already produces an XML formatted
> stream, it would be more efficient to just use it (unless
> there is yet another way in Zope I'm not aware of). Is it
> possible? Is there any reason to want to use the external
> method instead?
>
> Thanks for your comments,
>
> --irene
>
> ------------------------------------------------------------------
> Irene Barg Email: ibarg@as.arizona.edu
> Steward Observatory Phone: 520-621-2602
> 933 N. Cherry Ave.
> University of Arizona FAX: 520-621-1891
> Tucson, AZ 85721 http://nickel.as.arizona.edu/~barg
> ------------------------------------------------------------------
>
> _______________________________________________
> Zope maillist - Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> ** No cross posts or HTML encoding! **
> (Related lists -
> http://lists.zope.org/mailman/listinfo/zope-announce
> http://lists.zope.org/mailman/listinfo/zope-dev )