diff options
Diffstat (limited to 'wsdl2c/wsdl2c.c')
-rwxr-xr-x | wsdl2c/wsdl2c.c | 51 |
1 files changed, 39 insertions, 12 deletions
diff --git a/wsdl2c/wsdl2c.c b/wsdl2c/wsdl2c.c index 43d0a3c..5b744e7 100755 --- a/wsdl2c/wsdl2c.c +++ b/wsdl2c/wsdl2c.c @@ -1,3 +1,26 @@ +/****************************************************************** + * $Id: wsdl2c.c,v 1.5 2004/06/03 08:53:34 snowdrop Exp $ + * + * CSOAP Project: A SOAP client/server library in C + * Copyright (C) 2003 Ferhat Ayaz + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Email: ayaz@jprogrammer.net + */ #include <libxml/xpath.h> #include <xsd2c/xsd2c.h> #include <xsd2c/util.h> /* parseNS */ @@ -176,7 +199,7 @@ void handleInputParameters(xmlDocPtr doc, const char *name) xmlNodePtr node; xmlNodePtr cur; - xmlChar *var_name, *var_type, *var_element; + xmlChar *var_name, *var_type; parseNS(name, ns, message_name); /* check why to pase ns? */ @@ -208,24 +231,20 @@ void handleInputParameters(xmlDocPtr doc, const char *name) } var_type = xmlGetProp(cur, "type"); - if (var_type != NULL) { - fprintf(stdout, "\t\t(type:%s,%s)\n", (const char*)var_type, (const char*)var_name); - xmlFree(var_name); - xmlFree(var_type); - cur = cur->next; - continue; + if (var_type == NULL) { + var_type = xmlGetProp(cur, "element"); } - var_element = xmlGetProp(cur, "element"); - if (var_element == NULL) { + if (var_type == NULL) { fprintf(stderr, "ERROR: Found <part> without attrbute 'type' or 'element'! (message:'%s')\n", message_name); xmlFree(var_name); cur = cur->next; continue; - } + } + - fprintf(stdout, "\t\t(element:%s,%s)\n", (const char*)var_element, (const char*)var_name); + fprintf(stdout, "\t\t(%s,%s)\n", trXSD2C((const char*)var_type), (const char*)var_name); xmlFree(var_name); xmlFree(var_type); @@ -491,7 +510,14 @@ int main(int argc, char *argv[]) xmlNewDocProp(doc, "xmlns", "http://schemas.xmlsoap.org/wsdl/"); } + if (!xsdInitTrModule(xsdRoot)) + return 1; + + if (!xsdInitObjModule(xsdRoot)) + return 1; + + if (xsdEngineRun(xsdRoot, outDir)) { fprintf(stderr, "xsd2c engine error\n"); return 1; @@ -512,4 +538,5 @@ static void usage(const char* execname) { fprintf(stderr, "usage: %s -d dest <wsdl file>\n", execname); -}
\ No newline at end of file +} + |