From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=AWL autolearn=disabled version=3.1.3 Received: from discorde.inria.fr (discorde.inria.fr [192.93.2.38]) by yquem.inria.fr (Postfix) with ESMTP id 70F79BC0A for ; Wed, 16 May 2007 13:53:27 +0200 (CEST) Received: from furbychan.cocan.org (furbychan.cocan.org [80.68.91.176]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id l4GBrPuP006517 (version=TLSv1/SSLv3 cipher=EDH-RSA-DES-CBC3-SHA bits=168 verify=NO) for ; Wed, 16 May 2007 13:53:27 +0200 Received: from rich by furbychan.cocan.org with local (Exim 3.35 #1 (Debian)) id 1HoI49-0004IB-00; Wed, 16 May 2007 12:53:13 +0100 Date: Wed, 16 May 2007 12:53:13 +0100 To: Florian Hars Cc: caml-list Subject: Re: [Caml-list] OCSoap Schema Restrictions Message-ID: <20070516115311.GA15440@furbychan.cocan.org> References: <464AC9B6.4010308@bik-gmbh.de> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <464AC9B6.4010308@bik-gmbh.de> User-Agent: Mutt/1.5.9i From: Richard Jones X-Miltered: at discorde with ID 464AF0B5.001 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; 0200,:01 hars:01 submodules:01 mangling:01 wrote:01 caml-list:01 functions:01 defined:02 parse:02 florian:03 types:03 types:03 let:03 let:03 schemas:04 On Wed, May 16, 2007 at 11:07:02AM +0200, Florian Hars wrote: > I found this in the ocsoap source: > > type Types = [ > Documentation? > Schema (* Only allow a single schema here, even though the standard > * would allow multiple. > *) > ] > > Is there a deeper reason for this restriction? The silly web service I'd > need to connect to contains 8 schema elements here... Well, there's not really a deep reason, beyond the facts that (a) WSDL is a ridiculously complicated standard, and (b) OCSoap understands just about enough to be able to parse the Google AdWords schemas. The shallow reason is in wsdltointf.ml: let main () = let wsdl = wsdl_load filename in let schema = wsdl_schema wsdl in You'll probably want to make wsdl_schema return a list of schemas, then have this code iterate over them. Doing the right thing with the functions and types defined in each schema so that their names don't clash with each other might be a bit harder: you might consider putting them into separate submodules or just mangling the names. Rich. -- Richard Jones Red Hat